ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:1.22MB ,
资源ID:7730279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7730279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SSH总结.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SSH总结.docx

1、SSH总结Struts2总结 Hibernate总结 Struts2介绍 优点介绍 1 . 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。 2. Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。 3. Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底

2、层实现Bean Util注册类型转换器才行。 4. Struts2提供支持多种表现层技术,如:JSP、free Marker、Velocity等 5. Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。 6. 提供了全局范围、包范围和Action范围的国际化资源文件管理实现MVC模式与框架实现 什么是MVC模式 MVC组件与交互 实现MVC框架的要点Struts2工作流程与模型驱动模式 Struts2工作流程与架构 Struts2核心组件 第一个Struts2登录案例Struts2数据校验与类型转换 数据库校验概述 编程式校验 声名式校验 类型转换Struts2异常

3、处理 异常处理概述 配置局部异常处理 配置全局异常处理国际化 国际化概述Struts2拦截器与自定义拦截器 拦截器与拦截器栈 自定义拦截器Struts2标签 ONCL表达式 #、%、$符号的用法文件上传 案例Hibernate总结 持久化技术与DAO模式 数据持久化技术介绍 Dao模式介绍 重构DAO模式的要点 Hibernate完成CRUD ORM介绍 什么是MVC模式MVC(Model模型、View视图、Controller控制器)是一种架构模式。Model模型:应用程序的主体部分,用于表示业务数据、或者业务逻辑。如:JavaBean、EJB、WebService。View视图:应用程序中

4、用户界面相关的部分,是用户看到并与之交互的界面。如:JSP、HTML、freemarker等模板技术。Controller控制器:用于根据用户的输入、控制用户界面数据显示,更新Model对象状态。如:核心组件Servlet。(1)MVC手段与目标:第一步:从模型中分离表现。第二步:视图与控制器分离。主要目标:通过控制器解耦模型与视图,使不同表现(视图)可以共享相同的模型。MVC组件与交互实现MVC框架的要点决定哪些视图请求/用户操作交给框架处理。以后缀区分,如*.action,*.do 以目录名区分,如/services/*分离系统控制器与业务控制器。系统控制器中判断用户操作并调度业务控制器:

5、String path = request.getServletPath();String actionPath = path.substring(path.lastIndexOf(/) + 1, path.lastIndexOf(.);用接口来解耦合。用反射机制或工厂模式结合配置文件获取灵活性。要进行合理的抽象。Struts2工作流程与架构 Struts2架构Struts 2的请求是由FilterDispatcher来进行拦截的,当接收到用户的请求时,它会在Struts.xml中查找对应的请求映射配置,得到使用哪些拦截器Interceptos、Action类和返回结果Result的信息,然后

6、依次做如下操作:1)、请求通过一系列的拦截器:Interceptos是Struts 2中的一种过滤机制,它基于AOP的思想进行设计通常可以用于日志记录、权限限制等。拦截器和拦截器组可以按照不同的级别进行组合配置处理请求。它们为请求提供各种预处理和切面处理的应用功能。2)、调用Action:产生一个新的Action对象实例,并提供请求所调用的处理逻辑的方法,并调用Model层执行业务逻辑的操作,然后返回映射配置中指定的Result值。3)、业务处理:业务逻辑通常由JavaBean或EJB组件实现。4)、调用相应的Result:通过匹配处理Action方法之后的返回值,获取相应Result类,生成

7、并调用它的实例。处理Result可能产生的结果之一就是对UI模板(但并非一个)进行渲染,生成HTML。5)、响应被返回给用户:最后一步是将控制权交还给Servlet引擎,最常见的结果是吧渲染后的HTML返回给用户Struts2的核心组件 全局属性文件(struts.properties):保存了系统运行的一些参数变量,整个系统只有一个属性文件。 映射文件(struts.xml):用于配置请求映射的Action和拦截器,可以有多个映射文件。 业务控制器(Action):可以使用任意的POJO类,也可以继承ActionSupport,在该类中我们不仅可以取得表单数据,还可以取得上下文变量。第一个S

8、truts2登录案例1、 第一步创建登录界面: Form表单里,两个输入框(text),一个提交按钮(submit)。2、 创建Sturts2Action处理类package study.shop.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport private String username; private String pass; / 是从jsp页面获取username的值 public String getUsername() return

9、 username; / 相当于把其存入到request中 public void setUsername(String username) this.username = username; public String getPass() return pass; public void setPass(String pass) this.pass = pass; Override public String execute() throws Exception return SUCCESS; a) 创建其配置文件 /success.jsp 解释: package包对一类action的封装

10、extends继承了struts-default.xml文件中struts-default默认的包,其包提供了struts2基本处理(比如拦截器,文件上传下载,参数的处理等等)。Namespace问包提供一个访问的命名空间。 action从jsp页面中传递请求class指明的是该请求交给此类来处理,默认的情况交给此类中的execute方法处理 也可以通过method属性来指明该action由其某个方法处理 result代表以上类处理返回的结果 此结果可以由name属性指定其结果值 type指明其结果类型默认的是dispatcher类型(此类型是与jsp页面交互)。 通过发布此项目即可测试。通过

11、此项目简单了解struts2的处理流程如下: Jsp:发送请求 web.xml文件中的StrutsPrepareAndExecuteFilter:读取struts.xml 通过拦截器处理找到action name=”login” 通过此action对应类中的setXxx()和getXxx()方法保存并专递数据到jsp 执行此action类指明的方法默认是execute()方法并返回结果 根据处理的结果使用result name的属性进行匹配 然后根据其type属性类型执行结果集操作数据校验的概述Struts2的两种校验方法 编程式校验:继承ActionSupport类来编写校验函数Valida

12、te() 声明式校验:基于xword的Validator框架编程式校验 action需要继承ActionSupport,或者直接实现Validateable接口 ActionSupport类是一个工具类,它已经实现了Action接口,还实现了Validateable接口。 在Validateable接口中定义了一个validate()方法,重写该方法,就可以到表单进行校验。 validate()方法会在执行execute()方法之前执行。声名式校验基于XWork的Validator框架。通过定义配置文件来完成数据校验。校验器定义文件位于XWork的jar包的com.opensymphony.x

13、work2.validator.validators中利用正则表达式验证 true 必须输入名字 只能是字母和数组,长度615 true 必须输入密码 只能是字母和数组,长度615 1 150 年纪必须在1到150之间 1900-01-01 2050-02-21 年纪必须在$min到$max之间 类型转换 HTTP协议中传递的任何内容都是String类型的 。 Struts2内置了类型转换机制,VO属性是Struts2支持的类型的话,Struts2就会自动把字符类型转换成相应的类型。 Struts2的类型转换是基于OGNL表达式的,只要我们把HTML输入项(表单元素和其他GET/POET的参数

14、)命名为合法的OGNL表达式,就可以充分利用Struts2的转换机制。流程图Struts2异常处理概述 用配置文件来处理异常,快捷方便 可以作为亡羊补牢的措施配置局部异常处理例:在struts.xml中配置异常 /success.jsp /error.jsp /index.jsp /actionException.jsp 配置全局异常处理例:在struts.xml中配置全局异常出来 /globalException.jsp /success.jsp /error.jsp /index.jsp /actionException.jsp !- - 国际化概述(1)国际化常用类: java.util

15、.ResourceBundle /用于加载资源包 java.util.Locale /对应一个特定国家/区域/语言环境 java.text.MessageFormat /用于将消息格式化(2)国际化流程 Struts2支持国际化(简写为i18n) UI标签 Action/字段错误信息. i18n标签, 将资源包压入栈中, 允许使用除前面提到的继承链以外的资源包显示文本. 拦截器与拦截器栈1) 拦截器介绍 使用拦截器可以实现横切功能并使这些实现相对action甚至Struts2框架保持独立。 可以实现和使用自己所需的特性且不用修改框架的底层代码。 使用拦截器可以达到以下目的: 在调用Action

16、之前,提供预处理逻辑 与Action进行交互,提供执行信息,比如设置请求中的参数 在调用Action之后,提供后处理逻辑 修改返回的结果,进而修改呈现给用户的内容 捕获异常从而替换可执行的处理过程或返回一个不同结果2) 什么是拦截器栈 拦截器链(Interceptor Chain,在Struts 2中称为拦截器栈Interceptor Stack)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。 注意:某些截取器会中断栈/链/流程,因此顺序是十分重要。 不好确定拦截器顺序就使用现成的拦截器栈3) 实现原理44) 默认拦

17、截器自定义拦截器 大家在开始着手创建自定义拦截器前,切记以下原则:拦截器必须是无状态的,不要使用在API提供的ActionInvocation之外的任何东西。 要求拦截器是无状态的原因是Struts 2不能保证为每一个请求或者Action创建一个实例,所以如果拦截器带有状态,会引发并发问题。 所有的Struts 2的拦截器都直接或间接实现接口com.opensymphony.xwork2.interceptor.Interceptor或com.opensymphony.xwork2.interceptor.AbstractInterceptor。 com.opensymphony.xwork2

18、.interceptor.Interceptor该接口提供了三个方法:void init():在该拦截器被初始化之后,在该拦截器执行拦截之前,系统回调方法。每个拦截器只会执行一次。void destroy():该方法跟init()方法对应,在拦截器实例被销毁之前,系统将回调该方法。 String intercept(ActionInvocation invocation):该方法是用户需要实现的拦截动作,该方法会返回一个字符串作为逻辑视图。 com.opensymphony.xwork2.interceptor.AbstractInterceptor: 该抽象提供的init()和destroy

19、()方法的空实现,只需要实现intercept()方法。ONCL表达式 什么是ONCL表达式 ONGL是Struts2框架中使用的EL表达式,结合Struts2标签一起使用。 EL表达式可以方便获取各种来源的数据。 EL表达式调用方法。 EL表达式遍历整个对象结构图。Struts2支持的表达式 OGNL(Object Graph Navigation Language) :可以方便地操作对象属性的开源表达式语言(默认)。 JSTL(JSP Standard Tag Library):JSP 2.0集成的标准的表达式语言。 Groovy:基于Java平台的动态语言。 Velocity:严格来说不

20、是表达式语言,它是一种基于Java的模板匹配引擎,其性能要比JSP好。#、%、$符号的用途(1)“#”符号四种用途:“#”可以访问ONGL上下文和ActionContext,相当于ActionContext.getContext()ActionContext中属性列表:名称作用说明parameters 当前请求参数的Map #parameters.id0 相当于request.getParameter(id) request 当前请求属性的Map #request.userName相当于request.getAttribute(userName) session 包含当前HttpSession的属性的Map #session.userName相当于session.getAttribute(userName) application 包含当前ServletContext的属性的Map #application.uName等同application.getAttribute(uName) attr 用于按requestsession application顺序访问其属性#attr.userName相当于按顺序在以上三个范围内读取userName属性(2)“%”符号:主要用途是在标签的属性为字符串类型时,计算ONGL表达式的值。s:url value

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1