1.要在struts.xml文件中添加下面的代码:
<package name="struts2" extends="struts-default">
<!--自定义拦截器(没有登录的就返回到login)-->
<interceptors>
<interceptor name="sessionNull" class="com.hoperun.action.SessionNullInterceptor">
</interceptor>
</interceptors>
<global-results>
<result name="login" type="redirect">/sessionValid.jsp</result>
</global-results>
还要在具体action的跳转配置中添加下面代码:
<action name="orderSearch" class="com.hoperun.action.OrderSearchAction">
<result name="success" >/orderSearch.jsp</result>
<interceptor-ref name="sessionNull"></interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
如果不加上面蓝色的部分,页面域中的值就不能带到下个页面,因为定义了自己的拦截器,系统传值的拦截器就失效了,所以加上这条系统默认的拦截器就生效了
2.下面是SessionNullInterceptor的拦截器具体代码:
package com.hoperun.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
/**
* session为空拦截器
*/
public class SessionNullInterceptor implements Interceptor {
private static final long serialVersionUID = 1L;
public void destroy() {
}
public void init() {
}
public String intercept(ActionInvocation invocation) throws Exception {
HttpServletRequest req = ServletActionContext.getRequest();
if (req.getSession().getAttribute("username") == null) {
return Action.LOGIN;
} else {
return invocation.invoke();
}
}
}
3,对了还不能忘记在login.acton中添加如下代码:
if(result==true)
{
Map<String,String> map = ActionContext.getContext().getSession();
map.put("username",username);
return SUCCESS;
}
这样如果你没有充login.jsp登录进来而直接去访问系统的其他页面时,就不能查看你想看的页面,而是会自动跳转到sessionValid.jsp页面去
分享到:
相关推荐
本教程将详细介绍如何使用Struts2的拦截器来实现用户权限登录功能。 ### 一、拦截器的原理与作用 1. **原理**:拦截器工作在Action调用之前,它通过观察者模式实现,当一个请求到达时,会按照配置的顺序依次执行...
MyBatis拦截器实现通用权限字段添加的方法 MyBatis拦截器是一种非常实用的技术,可以用来实现各种复杂的数据库操作。本文将详细介绍如何使用MyBatis拦截器来实现通用权限字段添加,达到灵活、可靠、可维护的数据库...
本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
这篇博客文章“struts2拦截器实现权限控制”深入探讨了如何利用Struts2的拦截机制来执行用户访问权限的验证。 在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外...
在“拦截器实现权限管理”的情况下,通常会有一个权限配置,比如硬编码的规则或从服务器端静态文件加载的规则。这些规则定义了哪些URL对应哪些权限。当用户尝试访问一个页面时,对应的拦截器会被触发,检查当前用户...
本文将详细介绍如何在Spring Boot中实现拦截器以进行权限校验和登录验证,通过一个简单的Demo来阐述整个过程。 首先,我们需要创建一个自定义的拦截器类。这个类通常会继承`HandlerInterceptorAdapter`,这是一个...
要实现页面检测拦截,我们可以创建一个拦截器来检查用户是否具有访问特定页面的权限。例如,我们可以在`intercept()`方法内检查session中的用户信息,如果用户未登录或不具备相应权限,则可以重定向到登录页面或...
拦截器是Struts2框架中的一个重要组成部分,它们在Action调用前后执行,可以用于实现各种功能,如日志、事务管理以及我们的重点——权限拦截。 权限拦截是Web应用安全机制的重要一环,它确保只有具备特定权限的用户...
### Struts2拦截器实现用户登录权限的验证 在Web应用开发中,用户登录权限验证是确保系统安全的重要环节之一。Struts2框架提供了一种灵活的方式来实现这一功能:通过自定义拦截器来控制用户的访问权限。下面我们将...
总的来说,WebWork的权限拦截器是实现细粒度权限控制的有效手段,它能够灵活地集成到现有系统中,提升系统的安全性和用户体验。通过自定义拦截器,开发者可以根据项目的具体需求实现各种复杂的权限策略,确保只有...
总的来说,“Struts2_自定义拦截器_用户权限验证”项目旨在教授开发者如何在Struts2环境中创建自定义拦截器,以实现用户权限验证,同时展示如何控制Action间的跳转。通过这个实践,开发者能够更好地理解和运用Struts...
在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...
在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着中间件的角色,允许在请求到达Action之前或之后执行特定的操作。在权限控制场景下,拦截器尤为关键,可以用于验证用户是否有权访问特定的...
在Java Web开发中,Struts2是一个非常流行的MVC框架,它提供了丰富的功能来构建动态、数据驱动的Web应用程序。...通过这个实例,开发者可以学习到如何利用拦截器实现用户权限的控制,从而提升Web应用的安全性。
本教程以“使用拦截器进行权限控制”为主题,旨在帮助新手掌握如何在Struts2框架下实现权限控制。 首先,让我们了解什么是拦截器。在Struts2中,拦截器是基于Java的动态代理实现的,它通过调用一系列拦截器来形成一...
这通常通过拦截器实现,比如SpringMVC中的HandlerInterceptor,可以在请求处理前进行预处理,如检查用户权限。 拦截器(Interceptor)是SpringMVC中的一种机制,它可以拦截并处理HTTP请求,提供诸如日志记录、性能...
在这个"ssm+maven用拦截器实现登录小Demo"中,我们将探讨如何利用SSM框架和Maven来构建一个简单的登录系统,并通过拦截器实现权限控制。 首先,Spring MVC中的拦截器(Interceptor)是一种预处理和后处理请求的机制...
这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...