Struts2拦截器
来源:互联网 发布:淘宝怎么不能买wlan了 编辑:程序博客网 时间:2024/06/03 19:06
这里我们建立了一个拦截器
package com.cj.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;//拦截器public class FirstInterceptor implements Interceptor{ private String someThing; public String getSomeThing() { return someThing; } public void setSomeThing(String someThing) { this.someThing = someThing; } @Override public void destroy() { // TODO Auto-generated method stub } /** * 初始化方法 当程序启动的时候拦截器就被初始化完毕了 */ @Override public void init() { System.out.println(someThing+"拦截器启动了"); } @Override public String intercept(ActionInvocation arg0) throws Exception { // TODO Auto-generated method stub //arg0.invoke()让拦截器的请求继续前进,访问需要访问的资源 //放过去 System.out.println("进入First拦截器"); String returnName = arg0.invoke(); System.out.println("走出First拦截器"); return returnName; }}
struts.xml里面配置拦截器
<interceptors> <interceptor name="FirstInter" class="com.cj.interceptor.FirstInterceptor"> <!-- 如果需要初始化值才需要这个 --> <param name="someThing">admin</param> </interceptor> </interceptors>
在struts.xml里面的action中
<action name="loginAction" class="com.cj.action.LoginAction"> <interceptor-ref name="FirstInter"></interceptor-ref> <!-- 默认的拦截器一定要加 --> <interceptor-ref name="defaultStack"></interceptor-ref> <result name="success">/Login.jsp</result> </action>
当有多个拦截器
<interceptors> <interceptor name="FirstInter" class="com.cj.interceptor.FirstInterceptor"> <!-- 如果需要初始化值才需要这个 --> <param name="someThing">admin</param> </interceptor> <interceptor name="SecondInter" class="com.cj.interceptor.SecondInterceptor"> </interceptor> </interceptors>
在struts.xml里面的action中
<action name="loginAction" class="com.cj.action.LoginAction"> <interceptor-ref name="FirstInter"></interceptor-ref> <interceptor-ref name="SecondInter"></interceptor-ref> <!-- 默认的拦截器一定要加 --> <interceptor-ref name="defaultStack"></interceptor-ref> <result name="success">/Login.jsp</result> </action>
如果有多个拦截器 action里面会有多个类似
<interceptor-ref name="SecondInter"></interceptor-ref>
所以有了拦截器的堆栈的概念
<interceptors> <interceptor name="FirstInter" class="com.cj.interceptor.FirstInterceptor"> <!-- 如果需要初始化值才需要这个 --> <param name="someThing">admin</param> </interceptor> <interceptor name="SecondInter" class="com.cj.interceptor.SecondInterceptor"> </interceptor> <interceptor-stack name="AllInterceptor"> <interceptor-ref name="FirstInter"></interceptor-ref> <interceptor-ref name="SecondInter"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors>
在struts.xml里面的action中只要
<action name="loginAction" class="com.cj.action.LoginAction"> <interceptor-ref name="AllInterceptor"></interceptor-ref> <result name="success">/Login.jsp</result> </action>
如果要所有的action都有默认的拦截器
<!-- 所有action默认的拦截器 及系统和默认的拦截器 --> <default-interceptor-ref name="AllInterceptor"></default-interceptor-ref>
都有默认的action返回的结果
<global-results> <result name="error">/error.jsp</result> </global-results>
方法拦截器
package com.cj.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;//方法拦截器public class MethodInterceptor extends MethodFilterInterceptor{ @Override protected String doIntercept(ActionInvocation arg0) throws Exception { System.out.println("进入method方法拦截器"); String url = arg0.invoke(); System.out.println("走出method方法拦截器"); return url; }}
struts.xml里面配置
<interceptor name="MethodInter" class="com.cj.interceptor.MethodInterceptor"> <!-- 拦截add,delete方法 --> <param name="includeMethods">add,delete</param> <!-- 除了show没有拦截器 其余的都去拦截 --> <param name="excludeMethods">show</param> </interceptor>
0 0
- 【Struts2】Struts2中拦截器
- struts2拦截器
- Struts2拦截器
- struts2.0拦截器
- struts2.0 拦截器
- struts2拦截器学习
- struts2 拦截器
- Struts2拦截器(Interceptor)
- struts2.0拦截器
- 用上struts2拦截器
- struts2拦截器简介
- Struts2:拦截器概述
- Struts2拦截器(Interceptor)
- struts2 拦截器
- 关于struts2拦截器
- Struts2的拦截器
- struts2拦截器
- Struts2拦截器总结
- android MVP模式 编程思想(上)
- CCF之有趣的数(java)
- LeetCode 62. Unique Paths
- 長野の方言「ほうげん」
- Mybatis 入门之resultMap与resultType讲解实例
- Struts2拦截器
- 文件的编码格式
- MySQ的数据查询语言(DQL)
- 冒泡排序详解
- python简单的列表冒泡排序和反转列表
- 指针的指针的用法
- $.post 传递数组等复杂数据
- C语言 华氏温度转换
- 深层神经网络进行Gradient Check的时候注意delta的大小