stauts 2 自定义拦截器

问题描述

我想定义一个拦截action中指定方法的拦截器,比如我只拦截add方法。我看到网上有人说extendsMethodFilterInterceptor可是我不知道怎么在stauts.xml中配置,请各位大牛帮帮忙啊

解决方案

解决方案二:
去我BLOG看下有个自定义拦截器的例子http://blog.csdn.net/java_cxrs/archive/2010/04/23/5519743.aspx
解决方案三:
嗯继承自MethodFilterInterceptor抽象基类就可以对方法进行拦截.和其他拦截器一样,重写doInterceptor(ActionInvocationinvocation)就可以了配置也很简单,只需要在interceptor的配置文件里设置两个属性:excludeMethods:指定不需要拦截的方法名includeMethods:指定需要拦截的方法名比如你有个testAction中有个add方法,你要拦截add,拦截器是TestInterceptor,则配置:<packagename="test"extends="struts-default"><interceptors><interceptorname="checkAdd"class="cn.mypack.TestInterceptor"></interceptor></interceptors><actionname="Login"class="cn.mypack.TestAction"><resultname="input">/login.jsp</result><resultname="success">/success.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="checkAdd"><paramname="includeMethods">add</param></interceptor-ref></action></package>

解决方案四:
二楼回答的很完美了,我就不说什么了,溜达溜达。
解决方案五:
拦截后让跳到另一个页面怎么做
解决方案六:
我这样写有什么问题publicclassMyInterceptor01extendsMethodFilterInterceptor{@OverrideprotectedStringdoIntercept(ActionInvocationarg0)throwsException{ActionInvocationinvocation=null;Mapmap=invocation.getInvocationContext().getSession();if(map.get("regname")==null){System.out.println("用户还没登陆");returnAction.LOGIN;}elseif(Integer.parseInt((String)map.get("role_id"))==2){System.out.println("您没有访问权限");returnAction.LOGIN;}else{//这个表示有权限的,关键是在stauts.xml里要怎么办Stringresult=invocation.invoke();System.out.println("result:"+result);returnresult;}}
解决方案七:
<interceptors><interceptorname="myMethod"class="pzhu.bus_man.interceptor.MyInterceptor01"><!--使用拦截器会使得默认的拦截器失效,所以将默认加入进来--></interceptor><!--<interceptor-stackname="myMethodStack"><interceptor-refname="defaultStack"/><interceptor-refname="myMethod"/></interceptor-stack>--></interceptors><!--<default-interceptor-refname="myMythodStack"></default-interceptor-ref>--><global-results><resultname="input">/error.jsp</result></global-results><global-exception-mappings><exception-mappingresult="input"exception="java.sql.SQLException"></exception-mapping></global-exception-mappings><!--自定义拦截器的使用--><actionname="user"class="pzhu.bus_man.action.UserAction"><resultname="list_ok">userlist.jsp</result><resultname="edit_ok">useredit.jsp</result><resultname="list_proscenium_ok">index/index.jsp</result><resultname="login">login.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="myMethod"><!--指定要拦截的方法includeMethods的优先级比excludeMethods的要高--><paramname="includeMethods">list</param></interceptor-ref><exception-mappingresult="failure"exception="java.lang.Exception"></exception-mapping></action>我只这样配置的
解决方案八:
该回复于2010-12-03 11:30:30被版主删除
解决方案九:
给你顶一下,以前没做过这种需求!
解决方案十:
二楼回答的对
解决方案十一:
解决了,谢谢各位
解决方案十二:
二楼的回答的很好支持这样做法

时间: 2024-09-20 00:20:02

stauts 2 自定义拦截器的相关文章

WebServices中使用cxf开发日志拦截器以及自定义拦截器

首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 2.拦截器分类 1. 按所处的位置分:服务器端拦截器,客户端拦截器 2. 按消息的方向分:入拦截器,出拦截器 3. 按定义者分:系统拦截器,自定义拦截器 3.拦截器API Interceptor(拦截器接口) AbstractPhaseInterceptor(自定义拦截器从此继承) Loggi

SSH-Struts2简单的自定义拦截器MethodFilterInterceptor

SSH-Struts2简单的自定义拦截器MethodFilterInterceptor      最近业余时间工作之余也在学习SSH相关的知识,今天刚刚尝试写了一个基础的Struts2拦截器通过继承MethodFilterInterceptor方法.    一.什么是拦截器 拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式. 二.本文

cxf自定义拦截器怎么获取到传入参数值

问题描述 cxf自定义拦截器怎么获取到传入参数值 cxf自定义拦截器怎么获取传入参数值 或者怎么 把 Object obj = message.getContent(List.class).get(0); // 的值取出来 解决方案 http://www.tuicool.com/articles/fAZ3QnJ

struts2自定义拦截器怎么进不去

问题描述 一个破拦截器搞了半天没发现哪里出问题了就是进不去自定义的拦截器里,下面贴代码:struts.xml<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dt

struts-关于Struts自定义拦截器的问题

问题描述 关于Struts自定义拦截器的问题 Struts自定义拦截器里只能设置不拦截指定的方法或者只拦截指定的方法.如果我有两个Action(Action1,Action2)而里面的方法有相同方法名的方法(foo()),而我想拦截Action1的foo()方法,不想拦截Action2的foo()方法,该怎么做呢,能不能指定拦截器不拦截指定的Action呢?*_* 解决方案 运行逻辑是先运行拦截器再运行action,拦截器配置可作用于一个action下,两个action完全可以分开配置 解决方案

关于Struts2文件上传与自定义拦截器_java

一.访问或添加request/session/application属性 public String scope() throws Exception{   ActionContext ctx = ActionContext.getContext();   ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app   ctx.getSession().put("ses", &q

java自定义拦截器用法实例_java

本文实例讲述了java自定义拦截器及其用法.分享给大家供大家参考.具体如下: LoginInterceptor.java文件如下: package com.tq365.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwo

Struts2重新学习之自定义拦截器(判断用户是否是登录状态)

拦截器 一:1:概念:Interceptor拦截器类似于我们学习过的过滤器,是可以再action执行前后执行的代码.是web开发时,常用的技术.比如,权限控制,日志记录. 2:多个拦截器Interceptor连在一起组成了Interceptor栈.拦截器是AOP面向切面编程的一种实现,具有热插拔的效应. 3:Struts2拦截器,每个拦截器类只有一个对象实例,即采用了单利模式.所有引用这个拦截器的action都共享着一拦截器类的实例.   拦截器和过滤器的区别 1:拦截器和过滤器的概念非常类似

web service 自定义拦截器

客户端拦截器: package com.xh.ws.interceptor; import java.util.List; import javax.xml.namespace.QName; import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.headers.Header; import org.apache.cxf.helpers.DOMUtils; import org.apache.cxf.interc