struts2框架
Struts2是一个实现了mvc设计思想的框架。contoller是由servlet充当的。struts2解决了servlet里面的冗余代码,让我们的编码更加的简单。apatche基金会的一个开源项目。
什么是struts2?
Struts2是遵循mvc设计模式的框架,MVC是所有面向对象程序语言都应该遵守的规范,MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。
概述:
struts2框架应用于Javaee三层结构的中的web层架构
Sturts2框架是在struts1 和webwork基础之上的发展的全新的框架
struts2的Action类:
①Action中定义私有属性,需要有get/set方法,使用对象接受jsp的属性值,在input标签里的name属性里,使用对象.属性名就可以在action里接受到,前提是对象有set方法
②在jsp里面定义的表单元素的name属性值要跟action中的属性一致。
Form中的数据就自动封装到了action类的属性里面。
③传统的Servlet处理是通过内部的service方法,但是struts2使用的是execute方法,execute这方法有一个String类型的返回值,通过返回值匹配struts2配置文件的ActionName属性值来决定重定向或跳转到哪个页面。
struts2中的页面跳转
struts2中是默认以转发的形式进行页面跳转的。
struts2也支持转发和重定向。
1、转发:
<result name="success">/success.jsp</result>
<result name="success" type="dispatcher">/success.jsp</result>
2、重定向:
<result name="success" type="redirect">/success.jsp</result>
注意:跟servlet不一样,不需要加项目名了
Session会话:
Session是服务器为每一个浏览器建立的私人存储空间。
如何获取session对象:在request作用域里获取
Session里存储的是任意数据类型,但是session里不能随便存放数据,session是保存在服务器端的。
拦截器:
①Struts2的拦截器是struts2框架中最为重要的核心组件。Struts2的很多核心功能都是通过拦截器实现的。比如action类可以自动收集表单的数据。
②拦截器类似于servlet中过滤器。
③当客户端请求struts的拦截器时,请求会先进入到struts的拦截器里面。拦截器先运行,拦截器可以对请求放行,放行后请求运行action方法。Action方法运行完后,会去运行拦截器为执行完的代码。
④如果struts2使用了自定义的拦截器,那么默认拦截器就会失效,如果同时想用默认的拦截器,需要在自定义拦截器上继承struts2的默认拦截器,然后再使用自定义的拦截器,这样就可以同时使用自定义的和默认的拦截器了。
⑤拦截器的执行顺序:Action先引用哪个拦截器,哪个拦截器就在前面
过滤器和拦截器的区别:
过滤器属于servlet相关技术,拦截器是struts2的组件技术。
过滤器可以过滤所有的资源,包括jsp,servlet,图片,css,js。拦截器只拦截struts2中的action。