第9章 Struts 2拦截器【首页】杜老师


1. 拦截器简介

2. 自定义拦截器

2.1 通过Interceptor接口实现拦截器

知识点:struts-2.3.16.3\src\xwork-core\src\main\java\com\opensymphony\xwork2\interceptor\Interceptor.java

(1) 创建项目01JavaWeb09, 01学号 java EE 5.0, 复制apps\struts2-blank-2.3.16.3\WEB-INF\lib下9个包到WEB-INF\lib

(2) 从apps\struts2-blank-2.3.16\WEB-INF\web.xml中复制粘贴有关filter部分到WebRoot\WEB-INF\web.xml中

(3) src创建cn.duzhaojiang.interceptor包,并创建[大门口的藏獒_01.java]

2.2 通过AbstractInterceptor类实现拦截器

知识点:struts-2.3.16.3\src\xwork-core\src\main\java\com\opensymphony\xwork2\interceptor\AbstractInterceptor.java

2.3 配置拦截器

知识点:在src\struts.xml的<package>节点之中1个<interceptors>

2.4 使用拦截器

(1) src创建cn.duzhaojiang.action包,并创建RegisterAction01.java

(2) 创建入口[用户注册页面]文件WebRoot\Register01.jsp

创建[用户信息输出]页面文件WebRoot\ShowUserInfo01.jsp

创建[操作失败]页面文件WebRoot\OperError01.jsp

(3) 创建首页文件WebRoot\index.jsp

(4) 配置src\struts.xml,部署执行首页index.jsp测试,观察tomcat控制台输出。

2.5 使用默认拦截器

在src\struts.xml中,<interceptor-ref name="藏獒"></interceptor-ref>添加<interceptor-ref name="defaultStack"></interceptor-ref>

3. 深入拦截器

3.1 为拦截器传入参数

(1) 继承AbstractInterceptor实现拦截器

在cn.duzhaojiang.interceptor包,并创建[楼门口的大黄狗_01.java](继承AbstractInterceptor实现)

(2) 配置拦截器时配置参数

配置src\struts.xml,部署执行首页index.jsp测试,观察tomcat控制台输出。

(3) 引用拦截器时配置参数

配置src\struts.xml,部署执行首页index.jsp测试,观察tomcat控制台输出。

3.2 配置拦截器栈

(1) 配置拦截器栈时配置参数

配置src\struts.xml,部署执行首页index.jsp测试,观察tomcat控制台输出。

(2) 引用拦截器栈时配置参数

配置src\struts.xml,重新部署执行首页index.jsp测试,观察tomcat控制台输出。

3.3 覆盖拦截栈中指定拦截器的参数

配置src\struts.xml,重新部署执行首页index.jsp测试,观察tomcat控制台输出。

3.4 拦截器的执行顺序

知识点:栈(先进后出)、见图

4. Struts 2内建拦截器

知识点:struts-2.3.16.3\src\core\src\main\resources\struts-default.xml

5. 通过拦截器实现用户权限控制(实训9.1)

(1) 在cn.duzhaojiang.interceptor包,并创建使用AbstractInterceptor类实现拦截器[UserPopedom01.java]

(2) 配置src\struts.xml,重新部署执行首页index.jsp测试

6. 上机题

6.1 上机题1-6

(1) 在cn.duzhaojiang.interceptor包,并创建使用Interceptor接口实现拦截器[MyInter1_01.java](上机题1)

(2) 在cn.duzhaojiang.interceptor包,并创建使用AbstractInterceptor类实现拦截器[MyInter2_01.java](上机题2)

(3) 配置src\struts.xml文件,重部署执行index.jsp测试(上机题3):拦截器2起作用,defaultStack不起作用,观察tomcat控制台输出。

(4) 配置src\struts.xml文件,重部署执行index.jsp测试(上机题4): defaultStack起作用(action没有配置interceptor-ref),观察tomcat控制台输出。

(5) 配置src\struts.xml文件,重部署执行index.jsp测试(上机题5):拦截器1、2起作用,defaultStack不起作用,观察tomcat控制台输出。

(6) 配置src\struts.xml文件,重部署执行index.jsp测试(上机题6):拦截器1、2起作用(参数没传入),defaultStack不起作用,观察tomcat控制台输出。

6.2 上机题7 (用户登录拦截器)

在cn.duzhaojiang.interceptor包,创建LoginInterceptor01.java

6.3 上机题8 (参数拦截器:控制台显示jsp中的参数uname)

(1) 在cn.duzhaojiang.action包,创建ParamAction01.java

(2) 在cn.duzhaojiang.interceptor包,创建[参数拦截器]ParamInterceptor01.java

(3) 创建[参数输入]页面文件WebRoot\ParamInput01.jsp

(4) 创建[参数显示]页面WebRoot\ShowParam01.jsp

(5) 配置src\struts.xml文件,重部署执行index.jsp测试,观察tomcat控制台输出。


返回章节目录