第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控制台输出。
返回章节目录