struts2 拦截器
2016-03-05 22:04
337 查看
Struts2 拦截器背景:拦截器是struts中最强大的特性之一,可以使得在action和result之间进行一些处理,作用于页面传递请求,数据封装,国际化,类型转换,上传文件拦截器意义:AOP思想极大程度的解耦应用于权限控制,日志记录等领域struts2 通配符UserAction.java
package action; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { /*version1.0 2.0 3.0*/ /*public String add() throws Exception { System.out.println("进入到add"); return "success"; } public String select() throws Exception { System.out.println("进入到show"); return "success"; } public String update() throws Exception { System.out.println("进入到update"); return "success"; } public String delete() throws Exception { System.out.println("进入到delete"); return "success"; }*/ /*version 4.0*/ public String add() throws Exception { System.out.println("进入到add"); return "User_add"; } public String select() throws Exception { System.out.println("进入到show"); return "User_select"; } public String update() throws Exception { System.out.println("进入到update"); return "User_update"; } public String delete() throws Exception { System.out.println("进入到delete"); return "User_delete"; } }NewsAction.java
package action; import com.opensymphony.xwork2.ActionSupport; public class NewsAction extends ActionSupport { /*version 1.0 2.0 3.0 4.0*/ /*public String add() throws Exception{ System.out.println("news add"); return "success"; } public String select() throws Exception{ System.out.println("news select"); return "success"; } public String delete() throws Exception{ System.out.println("news delete"); return "success"; } public String update() throws Exception{ System.out.println("news update"); return "success"; }*/ /*version 4.0*/ public String add() throws Exception { System.out.println("进入到add"); return "News_add"; } public String select() throws Exception { System.out.println("进入到show"); return "News_select"; } public String update() throws Exception { System.out.println("进入到update"); return "News_update"; } public String delete() throws Exception { System.out.println("进入到delete"); return "News_delete"; } }
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">struts.xml</span>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="action" extends="struts-default"> <!-- version 1.0 --> <!-- <action name="userAction" class="action.UserAction" method="add"> <result name="success">/index.jsp</result> </action> <action name="userAction" class="action.UserAction" method="delete"> <result name="success">/index.jsp</result> </action> <action name="userAction" class="action.UserAction" method="update"> <result name="success">/index.jsp</result> </action> <action name="userAction" class="action.UserAction" method="select"> <result name="success">/index.jsp</result> </action> --> <!--version 2.0 --> <!-- <action name="userAction" class="action.UserAction" method="{*}"> <result name="success">/index.jsp</result> </action> <action name="newsAction" class="action.NewsAction" method="{*}"> <result name="success">/index.jsp</result> </action> --> <!-- version 3.0 --> <!-- <action name="*Action" class="action.{1}Action" method="{*}"> <result name="success">/index.jsp</result> --> <!--version 4.0 --> <action name="*_*" class="action.{1}Action" method="{2}"> <result name="{1}_{2}">/{1}_{2}.jsp</result> </action> </package> </struts>拦截器的使用action.InterceptorAction.java
package action; import com.opensymphony.xwork2.ActionSupport; public class InterceptorAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("进入InterceptorAction"); return "success"; } }
interceptor.Interceptor1.java
package interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; public class Interceptor1 implements Interceptor { String name; @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init() { System.out.println(name+"初始化拦截器"); } @Override public String intercept(ActionInvocation arg0) throws Exception { //让到达拦截器的请求继续前进,到达想要访问的资源 //作用相当于一个中间件,继续完成请求 System.out.println("进入拦截器2"); String returnValue=arg0.invoke(); System.out.println("穿过拦截器2"); return returnValue; } }interceptor.MethodInterceptor.javapackage interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;/** 方法拦截器,用于拦截指定的方法*/public class MethodInterceptor extends MethodFilterInterceptor {@Overrideprotected String doIntercept(ActionInvocation arg0) throws Exception {System.out.println("进入方法拦截器");String url=arg0.invoke();System.out.println("穿过方法拦截器");return url;}}interceptor.Interceptor1.java
package interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class Interceptor2 implements Interceptor{@Overridepublic void destroy() {}@Overridepublic void init() {}@Overridepublic String intercept(ActionInvocation arg0) throws Exception {System.out.println("进入拦截器2");String returnValue=arg0.invoke();System.out.println("穿越拦截器2");return returnValue;}}struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="action" extends="struts-default"><interceptors><interceptor name="interceptor1" class="interceptor.Interceptor1"></interceptor><interceptor name="interceptor2" class="interceptor.Interceptor2"></interceptor><!--方法拦截器,可以选择拦截指定的方法 --><interceptor name="methodInterceptor" class="interceptor.MethodInterceptor"><param name="includeMethods" >add,delete</param><param name="excludeMethods">show</param></interceptor><!-- 将需要使用到的拦截器包装到一起 --><interceptor-stack name="allInterceptor"><interceptor-ref name="interceptor1" ></interceptor-ref><interceptor-ref name="interceptor2"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref><interceptor-ref name="methodInterceptor"></interceptor-ref></interceptor-stack></interceptors><!-- 默认处理方式,对当前的所有action采取同样的处理 --><global-results ><result name="error">/error.jsp</result></global-results><action name="interceptorAction" class="action.InterceptorAction" method="{*}"><interceptor-ref name="allInterceptor"></interceptor-ref><result name="success">/login.jsp</result></action></package></struts>
相关文章推荐
- 深入理解Java中static关键字的使用
- 使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
- Struts2的result的 type--Chain(转)
- java EE JSP运行出现错误
- The java ee tutorial 学习记录
- 我需要下载哪个版本的eclipse?
- 配置maven版本出错
- 遍历map的几种方式
- OWASP 10 大 Web 安全问题在 JEE 体系完全失控
- 如何编译Glassfish v3 Open Source
- jboss7部署MDB
- 初学JDBC
- Eclipse4.3创建Maven项目
- JAVA平台分类
- eclipse安装插件
- Java EE 7 Servlet3.0学习笔记
- JAVAEE分页jar包及其用法
- 绝对路径和相对路径在javaee工程下的区别
- java常用正则表达式