Struts2框架(4)
1.Struts2的拦截器
(1)概念
(2)Struts2的执行流程
(3)拦截器的编写流程
2.CRM的权限拦截器
3.Struts2的标签库
(1)通用标签库
(2)判断标签库
(3)其他常用标签
4.UI标签库(方便数据回显)
1.Struts2的拦截器
(1)概念
- Interceptor:拦截器,起到拦截Action的作用。
- Filter:过滤器,过滤从客户端向服务器发送的请求。
- Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
- Struts2框架核心的功能都是依赖拦截器实现。
(2)Struts2的执行流程(面试)
客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在这个方法中,调用executeAction()方法,在这个方法内部调用dispatcher.serviceAction();在这个方法内部创建一个Action代理,最终执行的是Action代理中的execute(),在代理中执行的execute方法中调用ActionInvocation的invoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标Action,根据Action的返回的结果进行页面跳转。
(3)拦截器的编写流程
1)编写拦截器类
- 编写一个类实现Interceptor接口或者继承AbstractInterceptor类。
- 定义拦截器进行配置
这里的defaultStack表示的是默认的拦截器栈,表示的是引入默认的拦截器
- 定义一个拦截器栈的方式
2.CRM的权限拦截器
案例:实现用户登录的功能
(1)创建表和实体
创建表
CREATE TABLE `sys_user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_code` varchar(32) NOT NULL COMMENT '用户账号',
`user_name` varchar(64) NOT NULL COMMENT '用户名称',
`user_password` varchar(32) NOT NULL COMMENT '用户密码',
`user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
创建实体
(2)从前端jsp见面提交数据到Action
(3)Action------Service------DAO
编写Service
编写DAO
(4)根据结果进行页面跳转
第二种方式是可以使用权限拦截器进行登录功能的实现
编写权限拦截器
配置拦截器
ps:注意这里的话拦截器必须书写在action前面,如果写在action后面的话就会报错
3.Struts2的标签库
(1)通用标签库
(2)判断标签库
scope表示的是保存在哪个域中
- <s:iterator>
status表示的是当前的循环的状态
(3)其他常用标签
- <s:property/>
- <s:debug/>
- <s:date />----在页面上进行日期格式化。
4.UI标签库(方便数据回显)
传统表单
UI标签表单
注意这里的密码这行,如果没有加上showPassword的话是不会回显的
UI表单的优势:
1.自动将表单排好顺序
2.当我们有什么错误的时候会自动回显我们之前写的数据,传统表单的话是会把我们之前写的所有数据全部清空
总结: