`

struts2自定义拦截器,模拟登陆权限验证

 
阅读更多

struts2自定义拦截器一——模拟登陆权限验证

1、http://localhost:8083/struts2/user.jsp 表示用户已登陆,存放session对象

2、http://localhost:8083/struts2/quit.jsp 表示用户已退出,移除session对象

3、http://localhost:8083/struts2/login/addUIHelloWorld.do  如果session存在则往下执行,否则提示“你没有权限执行该操作”

4、http://localhost:8083/struts2/login/executeHelloWorld.do  如果session存在则往下执行,否则提示“你没有权限执行该操作”

   

代码

user.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.getSession().setAttribute("user", "ljq"); %> 用户已经登录

            

quit.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.getSession().removeAttribute("user"); %> 用户已经退出登录

              

Action类

package com.ljq.action; public class HelloWorldAction { private String message; public String addUI() { this.message = "addUI"; return "success"; } public String execute() throws Exception { this.message = "execute"; return "success"; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }

                 

权限类

package com.ljq.interceptor; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; /** * 限制没有登录的用户进入访问页面 * * @author jiqinlin * */ @SuppressWarnings("serial") public class PermissionInterceptor implements Interceptor { public void destroy() { } public void init() { } public String intercept(ActionInvocation invocation) throws Exception { Object user = ActionContext.getContext().getSession().get("user"); // 如果user不为null,代表用户已经登录,允许执行action中的方法 if (user != null){ return invocation.invoke(); } ActionContext.getContext().put("message", "你没有权限执行该操作"); return "success"; } }

      

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/dtds/struts-2.0.dtd"> <struts> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.action.extension" value="do" /> <package name="login" namespace="/login" extends="struts-default"> <interceptors> <!-- 自定义拦截器 --> <interceptor name="permission" class="com.ljq.interceptor.PermissionInterceptor" /> <!-- 配制默许的拦截器到拦截器栈 --> <interceptor-stack name="permissionStack"> <!-- 此处先后顺序好像没影响哦,我尝试过是没影响的 --> <interceptor-ref name="permission" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <!-- 配置默认的拦截器 --> <default-interceptor-ref name="permissionStack" /> <!-- 全局变量 --> <global-results> <result name="success">/WEB-INF/page/message.jsp</result> </global-results> <action name="*HelloWorld" class="com.ljq.action.HelloWorldAction" method="{1}"> <!-- <interceptor-ref name="permissionStack" /> --> </action> </package> </struts>
分享到:
评论

相关推荐

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

    在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...

    Struts2_自定义拦截器_用户权限验证

    本项目“Struts2_自定义拦截器_用户权限验证”将深入探讨如何在Eclipse开发环境中,利用Struts2框架自定义拦截器进行用户权限的验证,并处理各个Action之间的跳转。 首先,我们来看自定义拦截器的创建。在Struts2中...

    struts2自定义拦截器配置心得

    Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...

    struts2 自定义拦截器.rar

    自定义拦截器是Struts2框架中一个非常重要的特性,允许开发者扩展和定制框架的行为,以满足特定的业务需求。这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任...

    struts2自定义拦截器

    在Struts2中,自定义拦截器是实现业务逻辑控制、数据验证、权限管理等功能的重要手段。下面将详细探讨如何在Struts2中实现自定义拦截器来完成权限拦截。 首先,我们需要了解Struts2拦截器的工作原理。拦截器是在...

    Struts2自定义拦截器

    拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...

    JSP 开发之Struts2内建自定义拦截器.docx

    在Struts2中,拦截器(Interceptor)扮演着关键角色,它们允许开发者在Action执行前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解...

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

    本教程将详细介绍如何使用Struts2的拦截器来实现用户权限登录功能。 ### 一、拦截器的原理与作用 1. **原理**:拦截器工作在Action调用之前,它通过观察者模式实现,当一个请求到达时,会按照配置的顺序依次执行...

    struts2自定义拦截器.pdf

    自定义拦截器是Struts2框架中扩展功能的重要手段,让我们深入探讨如何在Struts2中实现自定义拦截器。 首先,创建一个Web项目是基础步骤,这可以通过IDE如Eclipse或IntelliJ IDEA来完成。确保你的项目包含了Struts2...

    struts2的一个自定义拦截器小例子

    本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...

    Struts2自定义拦截器实现防止重复提交

    总结来说,防止重复提交的自定义拦截器在Struts2中起到了关键作用,通过生成和验证令牌,能够在不依赖Struts2标签的情况下,有效地避免了用户意外或恶意的重复提交,保证了应用的稳定性和数据的一致性。

    Struts2自定义拦截器实现防止重复提交.pdf

    Struts2自定义拦截器实现防止重复提交

    自定义拦截器struts2源代码

    拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能监控等。自定义拦截器可以扩展Struts2的功能,使我们的应用更加灵活和模块化。...

    struts2的自定义拦截器例子

    在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...

    Struts2拦截器实现权限控制demo

    在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...

    Struts2_自定义拦截器

    自定义拦截器是扩展Struts2功能的重要手段,允许开发者根据项目需求实现特定的行为。 在Struts2中,拦截器是基于责任链模式实现的,它们按照注册的顺序依次执行。拦截器栈是Struts2中拦截器的集合,每个拦截器都...

    struts2自定义拦截器的示例代码

    "struts2自定义拦截器的示例...Struts2 自定义拦截器的示例代码提供了一个简单的身份验证示例,演示了如何在Struts2框架中实现自定义拦截器。通过自定义拦截器,可以实现各种功能,如身份验证、日志记录、缓存处理等。

    自定义拦截器的实现以及拦截器的详细配置

    1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`方法。通常,我们会继承`AbstractInterceptor`抽象类,因为它已经为我们提供了默认的`intercept()`实现。 ```java ...

Global site tag (gtag.js) - Google Analytics