1.2 Struts2的拦截器
1.2.1 拦截器概述
1.2.1.1 什么是拦截器
Interceptor:拦截器,起到拦截Action的作用。
Filter:过滤器,过滤从客户端向服务器发送的请求。
Interceptor:拦截器,拦截是客户端对Action的访问。更细粒度化的拦截。(拦截Action中的具体的方法)。
Struts2框架核心的功能都是依赖拦截器实现。
1.2.1.2 Struts2的执行流程
客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在这个方法中,调用executeAction()方法,在这个方法内部调用dispatcher.serviceAction();在这个方法内部创建一个Action代理,最终执行的是Action代理中的execute(),在代理中执行的execute方法中调用ActionInvocation的invoke方法。在这个方法内部递归执行一组拦截器(完成部分功能),如果没有下一个拦截器,就会执行目标Action,根据Action的返回的结果进行页面跳转。


1.2.2 拦截器入门
1.2.2.1 搭建Struts2的环境
1.2.2.2 编写拦截器类
编写一个类实现Interceptor接口或者继承AbstractInterceptor类。

1.2.2.3 对拦截器进行配置
定义拦截器进行配置

定义一个拦截器栈的方式

1.3 CRM的权限拦截器
1.3.1 实现用户登录的功能
1.3.1.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;
创建实体

1.3.1.2 提交数据到Action

1.3.1.3 Action —> Service —> DAO
编写Service

编写DAO

1.3.1.4 根据结果进行页面跳转

1.3.2 实现权限拦截器
1.3.2.1 编写权限拦截器

1.3.2.2 配置拦截器


1.4 Struts2的标签库
1.4.1 通用标签库

1.4.1.1 判断标签
<s:if>、<s:elseif>、<s:else>

<s:iterator>

其他常用的标签
<s:property/>
<s:debug/>
<s:date />----在页面上进行日期格式化。
1.4.2 UI标签库(方便数据回显)


本文详细介绍了Struts2框架中的拦截器概念及其执行流程,通过实例展示了如何搭建Struts2环境并编写自定义拦截器。此外,还深入探讨了CRM系统的权限拦截器实现,包括用户登录功能的开发及权限控制策略。最后,文章还概述了Struts2的标签库,包括通用标签和UI标签的使用。
213

被折叠的 条评论
为什么被折叠?



