Struts2导图
Struts2概述
struts2在用户请求和模块化处理方面以及页面的展现这块发挥着重要的作用,相对于传统的JSP+Servlet模式,Struts2更适合企业级团队开发,方便系统的维护。
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
Struts2系统的搭建
struts2的通用组件包
拦截用户请求交给Struts2处理
分发的核心处理器
struts.xml配置文件
result的配置
例如jsp调用ra方法,在Action中返回ra然后根据result的name返回值确定返回的页面
ActionSupport类
还有一种是Action类
用户发送一个请求通过Struts2处理返回页面
请求hello
如果返回的是success则跳转到helloWorld.jsp页面
Action设置数据
get/set自动设置数据,拦截器的功能
用form方式提交数据
自动set值
struts2的属性驱动
具体业务逻辑
根据不同情况跳转到不同页面
struts2的模型驱动
自动赋值
使用javaBean的方式绑定数据
UserAction2
直接判断不用get/set
可以同时设置多个javaBean
通过getModel不用再get/set user了
传递多个值
分模块
student_list就调用student的list方法
取第一个通配符的方法
通配符
动态方法调用
不安全容易发生sql注入
Action的声明周期
struts每次请求都会实例化一个新的对象,数据更加安全
Struts2的拦截器
预定义拦截器
初始化的时候调用 销毁的时候调用
拦截功能
登录拦截器
struts2获取session
拦截器栈
默认包下的所有action都是用拦截器栈里定义的拦截器
登录
值栈与OGNL
值栈
值栈中设置数据
OGNL
访问复杂对象
访问静态方法
设置运行访问静态方法
Struts2标签
数据标签
控制标签
排序
截取
国际化
中文用unicode编码
参数
Struts2验证框架
内置验证
RegisterAction-validation.xml
自定义拦截器
过滤敏感词汇
ValidationAction-validation.xml
struts.xml
Struts2文件上传
文件大小与类型
大文件上传
上传文件大小
多文件上传
文件下载
防止重复提交
tokenSession拦截器防重复提交