`

Struts2登录拦截器配置

阅读更多
struts2.xml
   <package name="Verification"  extends="struts-default">
		<!-- 配置拦截器 -->
		<interceptors>
			<!-- 自定义拦截器 -->
			<interceptor name="Ylogin" class="com.debtms.action.system.Authenticationinterceptor">
				<param name="excludeMethods">login,quit</param>
			</interceptor>
			<!-- 自定义拦截链 -->
			<interceptor-stack name="myStack">
				<interceptor-ref name="Ylogin">
					<param name="excludeMethods">login,quit</param>
				</interceptor-ref>
				<interceptor-ref name="defaultStack"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<!-- 设置默认拦截链,一个package下只能配置一个,应用所有的没有配置拦截器或拦截链的Action -->
		<default-interceptor-ref name="myStack"></default-interceptor-ref>
		<global-results>
			<result name="login" type="redirect">/error.jsp</result>
		</global-results>
	</package>

excludeMethods表示排除指定的方法,即不对标记为excludeMethods的方法进行拦截,
includeMethods表示包含指定的方法,即对标记为includeMethods的方法进行拦截,
excludeMethods可以配置在拦截链里,也可以在定义拦截器时配置.
非全局拦截器  需要在Action中加入<interceptor-ref name="Ylogin">
拦截器方法
  public class Authenticationinterceptor extends MethodFilterInterceptor {


	@Override
	protected String doIntercept(ActionInvocation invocation) throws Exception {
		Map<String,Object> session = invocation.getInvocationContext().getSession();
		String UserID = (String) session.get(Constants.USERID_KEY);
		
		if(UserID==null)
		{
			return Action.LOGIN;
		}else{
			return invocation.invoke();
		}
	}

}

如要使excludeMethods配置属性生效,拦截器方法,需要继承AbstractInterceptor的子类MethodFilterInterceptor类.实现doIntercept方法即可
如果拦截器方法 返回值为: Action.LOGIN;  那么 就会在struts2.xml找 全局结果集
name为"login"的 result
  		<global-results>
			<result name="login" type="redirect">/error.jsp</result>
		</global-results>



全局结果集 目前连接到 action的话 会有问题.会找不到请求的action
各位大神  有谁知道有什么好的解决方法  请通知小弟
在此拜谢
分享到:
评论

相关推荐

    struts2自定义拦截器配置心得

    - 在User.xml文件中,定义了一个名为`user`的包,它继承了`default`包,因此继承了`default`包中的拦截器配置。 - `&lt;action&gt;`元素定义了Action,`class`属性指定Action类,`name`属性是Action的名称。`&lt;result&gt;`...

    使用struts2拦截器对登陆权限验证

    在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...

    Struts2 配置登陆拦截器

    本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的原理和实践应用。 首先,让我们理解一下拦截器的概念。在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序对Action调用进行...

    Struts2拦截器及其用法详细说明

    3. 在Struts2的配置文件(struts.xml)中声明并配置拦截器,指定拦截器的执行顺序和作用范围。 **四、拦截器的配置** Struts2的拦截器可以通过XML或注解两种方式进行配置: - XML配置:在`struts.xml`文件中,...

    struts2实现拦截器、

    本文将深入探讨如何使用Struts2实现拦截器,以及如何配置拦截器来实现用户权限拦截。 首先,我们需要了解拦截器的工作原理。在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序形成一个拦截...

    struts2 用拦截器 实现用户权限登录

    -- 其他拦截器配置 --&gt; &lt;default-interceptor-ref name="defaultStack"/&gt; &lt;!-- 引入默认拦截器栈 --&gt; *" namespace="/"&gt; &lt;result&gt;/index.jsp&lt;/result&gt; &lt;!-- 如果未登录,重定向到登录页面 --&gt; ...

    struts2 拦截器

    2. **配置拦截器**:在`struts.xml`配置文件中定义拦截器,指定其执行顺序和关联的Action。 3. **注册拦截器**:将自定义拦截器加入到`struts-default`或`struts-plugin`拦截器栈中,或者创建新的拦截器栈并应用到...

    struts2 拦截器实例

    3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...

    Struts2拦截器源码

    3. 依据配置的Interceptor Stack(拦截器栈),Struts2会按顺序调用每个拦截器的`intercept`方法。 4. 在`intercept`方法中,通常会先调用`ActionInvocation`的`invoke`方法,这将执行下一个拦截器或者直接执行...

    struts2拦截器

    3. 在调用Action之前,Struts2会按照配置的顺序依次执行拦截器链。 4. 每个拦截器可以决定是否允许请求继续传递到下一个拦截器或直接终止。例如,一个登录拦截器可能会检查用户是否已登录,如果未登录则跳转到登录...

    Struts2学习案例(拦截器)

    1. **Struts2配置**:理解`struts.xml`文件的配置,包括Action的配置、拦截器栈的定义等。 2. **拦截器的编写和使用**:创建自定义拦截器类,实现`Interceptor`接口,以及如何在配置文件中引用拦截器。 3. **Action...

    难经3:Struts2,拦截器拦不住Result?

    1. **配置问题**:如果Struts2的配置文件(struts.xml或struts.properties)中拦截器配置有误,可能会导致拦截器链无法正常工作,从而影响到Result的执行。 2. **拦截器逻辑错误**:如果自定义的拦截器在处理过程中...

    Struts2拦截器实现权限控制demo

    在Struts2的核心配置文件`struts.xml`中,我们可以定义拦截器链,指定哪些拦截器应用于哪些Action。 权限控制是web应用中不可或缺的一部分,它可以防止未经授权的用户访问特定资源。在Struts2中,我们可以通过拦截...

    struts2拦截器应用小例子

    当请求到达控制器时,Struts2会依次调用这个栈中的拦截器,每个拦截器都有机会处理请求,然后决定是否将请求传递给下一个拦截器或直接返回响应。 创建一个简单的Struts2拦截器,你需要遵循以下步骤: 1. 创建拦截...

    Struts2 拦截器

    拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的...

    Struts2拦截器源程序

    当一个请求被发送到Struts2框架时,拦截器会按照配置的顺序依次对请求进行处理。每个拦截器都有`intercept()`方法,这个方法会在动作执行前和执行后被调用,允许开发者插入预处理和后处理逻辑。 **2. 拦截器的工作...

    struts2中拦截器的使用

    在Struts2中,拦截器的使用主要基于两个方面:配置文件中的声明式使用和注解的编程式使用。首先,我们来看看配置文件中的声明式使用。在struts.xml或类似的配置文件中,你可以通过`&lt;interceptor&gt;`元素定义拦截器,并...

    利用struts2拦截器做的简单登录

    本文将深入探讨如何利用Struts2的拦截器实现简单的登录功能。拦截器是Struts2框架的核心组件之一,它允许我们在动作执行前后插入自定义逻辑,比如权限验证、日志记录等。 首先,我们来理解一下Struts2拦截器的工作...

    Struts2的拦截器的使用详解

    2. 拦截器配置:在struts.xml配置文件中,你可以定义多个拦截器,并通过`&lt;interceptor&gt;`和`&lt;interceptor-stack&gt;`元素来组织它们。例如,创建一个名为`myInterceptorStack`的拦截器栈,包含`logging`和`validation`两...

    struts2.X 拦截器源码

    了解了拦截器的基本原理后,我们可以通过`Struts2.x 拦截器.avi`这个视频文件深入学习Struts2拦截器的实现细节,比如如何编写自定义拦截器、如何配置拦截器链、如何处理异常等。`readme.txt`可能是关于这个主题的...

Global site tag (gtag.js) - Google Analytics