1.在struts.xml中配置一个默认的拦截器,用于权限拦截。具体代码如下:
<interceptors>
<interceptor name="authority" class="en.estar.utils.AuthorityInterceptor"/>
<interceptor-stack name="authorityStack">
<interceptor-ref name="authority"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="authorityStack"></default-interceptor-ref> <!-- 配置默认权限拦截器 -->
2.上述配置中有一个拦截器的实现类AuthorityInterceptor,该类继承了AbstractInterceptor类,并且需要实现该类的一个方法public String intercept(ActionInvocation ai) throws Exception。具体代码如下:
public String intercept(ActionInvocation ai) throws Exception {
ActionContext context = ai.getInvocationContext();
String actionName = ai.getProxy().getActionName();
if(!"login".equals(actionName)){
Map map = context.getSession();
String username = (String)map.get("username");//获得session范围的用户名
if(username==null||"".equals(username)){
context.put("loginmessage", "对不起,您还没有登录!");
return Action.LOGIN;//如果用户名为空,则跳回到登陆页面
}else{
return ai.invoke();
}
}else{//如果用户斤进行登录操作则放行
return ai.invoke();
}
}
当访问除login以外的任何一个action的时候,该拦截器方法就会生效,从session中获得用户名,如果为空,则表示用户
还没有登录就想访问这个action,这种情况下当然是不允许的,所以拦截器会强制让应用跳回到login.jsp页面。其中Action.LOGIN。对应了一个视图,该视图是一个global视图,
<global-results><!-- 全局跳转,用于权限验证失败时的跳转目的地 -->
<result name="login">/login.jsp</result>
</global-results>
这样就完成了权限的拦截。
分享到:
相关推荐
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
这篇博客文章“struts2拦截器实现权限控制”深入探讨了如何利用Struts2的拦截机制来执行用户访问权限的验证。 在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外...
2. **拦截器链**:在Struts2中,多个拦截器可以形成一个拦截器链,每个拦截器按照定义的顺序依次执行。如果所有拦截器都允许Action执行,那么Action的结果将被传递到下一个拦截器,直到整个链执行完毕。 ### 二、...
描述中提到的“基于struts2的拦截器测试,实现了页面的跳转,中间过程的拦截”,这表明我们可能在创建一个测试场景,来验证拦截器如何控制请求的流向以及如何在特定的业务逻辑点进行干预。页面跳转通常是拦截器完成...
本文将深入探讨如何利用Struts2的拦截器实现简单的登录功能。拦截器是Struts2框架的核心组件之一,它允许我们在动作执行前后插入自定义逻辑,比如权限验证、日志记录等。 首先,我们来理解一下Struts2拦截器的工作...
本知识点主要聚焦于如何利用Struts2的拦截器进行权限控制。 **一、Struts2拦截器原理** 在Struts2中,拦截器是基于Java的动态代理机制实现的。当一个请求到达时,Struts2会按照配置的顺序依次调用拦截器链中的每个...
这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...
综上所述,通过Struts2的拦截器,我们可以实现高效且可扩展的权限控制系统。在`Struts2_Authority`压缩包文件中,可能包含了实现上述功能的示例代码,包括自定义拦截器的实现、配置文件以及相关的Action和视图文件,...
Struts2是一个强大的MVC(模型...通过理解和研究Struts2的拦截器源码,我们可以更好地利用这个强大工具,提高应用的可扩展性和灵活性。同时,这也为我们提供了对Struts2框架内部运作的深入了解,有助于优化和调试代码。
总结一下,本示例通过Struts2的拦截器实现了权限控制功能,同时利用AJAX提供了更好的用户体验。通过JSP页面展示反馈信息,使得用户能即时了解到他们的操作是否被授权。这个例子不仅展示了Struts2拦截器的灵活性,还...
通过这种方式,我们可以在不修改Action代码的情况下,利用Struts2拦截器实现国际化策略的动态调整,从而提供更灵活的多语言支持。 总的来说,Struts2拦截器和国际化是两个关键特性,它们分别提供了控制流管理和多...
在"Struts2 拦截器注解"这个主题中,我们将深入探讨如何利用注解来简化拦截器的配置和使用。 首先,让我们理解什么是Struts2的拦截器。拦截器是一个实现了`Interceptor`接口的Java类,它在Action执行之前或之后执行...
总结来说,Struts2拦截器是实现业务逻辑增强和控制流程的重要组件,它基于Java的动态代理机制。通过在Action执行前后插入自定义代码,拦截器使得我们可以方便地进行如日志记录、权限验证等操作,而无需直接修改...
通过上述方式,我们可以利用Struts2的拦截器机制有效地实现页面访问控制和用户注册功能,同时保持代码的清晰和模块化。在实际开发中,还可以结合其他拦截器,如性能监控、日志记录、事务管理等,进一步增强应用的...
2. **注册拦截器**:在`struts-config.xml`配置文件中,通过`<interceptors>`标签定义拦截器栈,然后通过`<action>`标签的`interceptor-ref`属性引用拦截器栈。 3. **配置拦截器栈**:在`struts-config.xml`中,...
下面我们将详细介绍如何利用Struts2的拦截器来实现用户登录权限的验证。 #### 概念理解 - **拦截器(Interceptor)**:在Struts2框架中,拦截器是一种可以被用来执行预处理和后处理操作的对象。它们可以在Action执行...
这篇博客文章“struts2 拦截器的使用(继承抽象拦截器)”探讨了如何通过继承Struts2的抽象拦截器来创建自定义拦截器。 首先,让我们理解拦截器的基本概念。在Struts2中,拦截器是基于Java的动态代理机制实现的,...
Struts2.0是一个流行的Java Web开发框架,它基于MVC(Model-View-...理解这些核心概念对于有效地利用Struts2开发Web应用至关重要。通过熟练掌握这些知识,开发者可以更高效地构建可维护、可扩展的Java Web项目。
其中,拦截器(Interceptor)是Struts2框架的一个关键组件,它遵循AOP(面向切面编程)的设计理念,能够在不修改原有业务逻辑的情况下,对请求进行预处理或后处理,从而提高代码的复用性和维护性。 #### 二、Struts...