Struts2知识点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Struts2基础知识
Struts2概述
1.Struts2框架应用javaee三层结构中的web层框架。
2.Struts2框架在struts1和webwork基础之上发展的全新框架。
3.Struts2所解决的问题:
在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。
图解:
4.现在比较稳定的Struts2版本
struts-2.3.24-all.zip
5.web层常见框架
1.struts
2.springMVC
Struts2框架入门
1.导入jar包
1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring
包,是不能使用的,导入会导致程序不能运行。
2.到app目录里面复制案例的jar包是最好的方法。
2.创建action
3.配置action类的访问路径
1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,
位置必须在src下面,名称为struts.xml 。
2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即
可。
3.action的配置
*注意访问路径:
http://域名/端口号/项目名/action名.action
注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。
4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴
即可。
Struts2执行过程
图解:
Struts2配置
1.是一种常量标签
2.修改Struts2的默认常量值
1.常用方式
在struts.xml中进行配置。
2.其它两种方式
1.在src下面创建struts.properties文件并修改。
2.在web.xml文件中进行修改。
3.Struts2最常用的常量
struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。
Struts2笔记(一)
可使用全局页面。
1、配置方法:
在package标签下配置
2、注意:该标签只能在一个package标签中使用,如果有多个标签,
需要重新定义。
3、局部结果页面:指的就是在action标签里配置
1、配置方法:
在action标签下配置
2、注意:如果既配置了全局,又配置了局部,会以局部为准,全局不起
作用。
4、type属性
1、使用ActionContext类。
1、主要使用的方法:
因为该方法是对象方法,所以需要一个ActionContext对象来调用,而创建ActionContext对象可以使用该类的一个静态方法来创建
2、使用ServletActionContext类。
1、主要使用的方法:
3、使用接口注入方法(一般不用)。
Struts2笔记(二)
可使用全局页面。
1、配置方法:
在package标签下配置
2、注意:该标签只能在一个package标签中使用,如果有多个标签,
需要重新定义。
3、局部结果页面:指的就是在action标签里配置
1、配置方法:
在action标签下配置
2、注意:如果既配置了全局,又配置了局部,会以局部为准,全局不起
作用。
4、type属性
1、使用ActionContext类。
1、主要使用的方法:
因为该方法是对象方法,所以需要一个ActionContext对象来调用,而创建ActionContext对象可以使用该类的一个静态方法来创建
1、主要使用的方法:
3、使用接口注入方法(一般不用)。
Struts2笔记(三)
1、在lib文件夹中加入Ognl的jar包。
2、在jsp页面中引入Struts2标签库。
3、使用标签<s:property>,并给属性value设置值,比如求一个字符串
的长度案例。
3、获取值栈步骤:
1、获取ActionContext对象
2、调用ActionContext的静态方法getValueStack()
4、值栈的内部结构
1、第一部分 root,结构是list集合,底层继承自ArrayList集合。
2、第二部分 context,结构是Map集合,底层实现了Map接口。
Struts2笔记(四)
1、#号:使用#号获取context里面的数据。
使用时格式是#context的key名称.域对象名称,如#request.req。
2、%号:可以在Struts2标签中使用OGNL表达式。
1、概述:拦截器就是Struts2框架中封装的功能的容器。
在Struts2框架中有很多的功能,所有就有很多的拦截器,并不是每次都执行所有的拦截器,它只会执行一些默认的拦截器。
2、默认拦截器的位置
3、拦截器的执行时间
在action对象创建之后,action的方法执行之前。
4、拦截器的原理(两个原理)
1、AOP思想:即面向切面编程,当在基本的功能上扩展其它功能时,不
通过改源代码来实现扩展功能的方式。
2、责任链模式
1、概述:属于java设计模式中的一种,和过滤链原理相似。
2、过滤链:一个请求可以有多个过滤器进行过滤,只有每个过滤器
执行放行操作,该请求才能到下一个过滤器。
3、AOP原理和责任链模式如何应用到拦截器中
1、在action中并没有执行拦截器的方法,而是用配置文件实现的,
这种方法就是使用的AOP思想。
2、在执行拦截器的过程中,只有每个拦截器执行放行操作后,才能
进入到下一个拦截器,这种方法就是责任链模式。
1、拦截器的结构
继承类
在接口内的三个抽象方法
2、自定义拦截器方法
2、通过配置文件的方式让拦截器和action产生关系
1、在要拦截的action标签所在的package标签里声明拦截器
2、在具体的action标签里面使用声明的拦截器
3、Struts2里面执行很多默认的拦截器,但是如果在action里面配
置了自定义拦截器,默认的拦截器就不会执行了,所以要解决。
即把默认的拦截器再配置一次
注意:这样配置拦截器,对action里面的所有方法都会进行拦截。
3、配置拦截器对某些方法不进行拦截。