- 浏览: 1990061 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
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>
发表评论
-
java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() o
2012-06-07 00:07 3378经常有人在配置Struts1.2的struts-conf ... -
Unable to load configuration. - action - file:/C:/Documents%20and%
2011-12-12 21:34 8035Unable to load configuration. - ... -
Struts2+jQuery+Ajax
2011-11-29 11:05 2926一个简单的Json实例,采用Struts2 + jQuery1 ... -
Struts2 使用”#“获取数据 和不使用“#”号的区别。
2011-09-29 11:43 1221最近使用struts2 做项目时, 如果在后台可以使用两 ... -
struts2 标签 s:optiontransferselect左右下拉列表的使用。
2011-09-24 01:08 1930最近做项目,需要用到struts2中的标签, 自己便研 ... -
Struts2 标签出现'dojo' 未定义 解决方案
2011-09-23 23:09 1366我在做项目用到了struts2中的 s:optiont ... -
struts2几种result type探究
2011-09-22 02:18 1308可以在struts2-core-{version}.jar ... -
Struts2 自定义拦截器,怎么实现先于 action 执行
2011-09-08 00:31 1418在Action前用拦截器是直接return act.invok ... -
JSP的Filter对struts2 中的 action拦截不起作用的解决方案.
2011-09-08 00:22 2190好像在web.xml配置filter只能实现对jsp的拦截 ... -
从数据库中获取国际化资源文件的key,然后通过Struts2的标签显示
2011-09-04 13:34 3330首先在mySql数据库中建 ... -
Parse Error at line 2 column 15: Document is invalid: no grammar found.
2011-09-03 00:09 2210今天部署把项目部署到tomcat上面时,发现了一个错误,. ... -
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputS
2011-08-29 01:02 4042java.lang.NoClassDefFoundError: ... -
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.mu
2011-08-29 00:32 1414最近做文件上传的功能时,报如下错误..是因为少了一个jar包的 ... -
Struts2 标记判断List集合和Map集合元素的大小
2011-08-25 20:34 4251比如判断一个list集合中的元素等于或小于0, <!- ... -
Struts2 <s:if> 标签的使用
2011-08-25 16:31 1070标签用法如下: test中是用来,放表达式,不能嵌套EL表达 ... -
Struts2 Caused by: java.lang.IllegalArgumentException: argument type mismatch
2011-08-15 09:27 8850前台页面文本框 name 绑定的属性,与后台属性不一致. ... -
Struts2 一些常见的标签的使用
2011-08-10 00:52 1273直接贴后台代码: package com.struts2.a ... -
Struts2+JQuery+Json登陆实例
2011-07-17 23:21 6320在搭建之前.. 首先,需要准备struts2.0框架的5个核心 ... -
java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lan
2011-07-16 18:47 5532java.lang.NoSuchMethodError: ... -
Struts2通过使用ActionContext类获取request和response对象
2011-07-16 18:23 2849使用ActionContext类这种方法比较简单,我们可以通过 ...
相关推荐
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
本项目“Struts2_自定义拦截器_用户权限验证”将深入探讨如何在Eclipse开发环境中,利用Struts2框架自定义拦截器进行用户权限的验证,并处理各个Action之间的跳转。 首先,我们来看自定义拦截器的创建。在Struts2中...
Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...
自定义拦截器是Struts2框架中一个非常重要的特性,允许开发者扩展和定制框架的行为,以满足特定的业务需求。这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任...
在Struts2中,自定义拦截器是实现业务逻辑控制、数据验证、权限管理等功能的重要手段。下面将详细探讨如何在Struts2中实现自定义拦截器来完成权限拦截。 首先,我们需要了解Struts2拦截器的工作原理。拦截器是在...
拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...
在Struts2中,拦截器(Interceptor)扮演着关键角色,它们允许开发者在Action执行前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解...
本教程将详细介绍如何使用Struts2的拦截器来实现用户权限登录功能。 ### 一、拦截器的原理与作用 1. **原理**:拦截器工作在Action调用之前,它通过观察者模式实现,当一个请求到达时,会按照配置的顺序依次执行...
自定义拦截器是Struts2框架中扩展功能的重要手段,让我们深入探讨如何在Struts2中实现自定义拦截器。 首先,创建一个Web项目是基础步骤,这可以通过IDE如Eclipse或IntelliJ IDEA来完成。确保你的项目包含了Struts2...
本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...
总结来说,防止重复提交的自定义拦截器在Struts2中起到了关键作用,通过生成和验证令牌,能够在不依赖Struts2标签的情况下,有效地避免了用户意外或恶意的重复提交,保证了应用的稳定性和数据的一致性。
Struts2自定义拦截器实现防止重复提交
拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能监控等。自定义拦截器可以扩展Struts2的功能,使我们的应用更加灵活和模块化。...
在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
自定义拦截器是扩展Struts2功能的重要手段,允许开发者根据项目需求实现特定的行为。 在Struts2中,拦截器是基于责任链模式实现的,它们按照注册的顺序依次执行。拦截器栈是Struts2中拦截器的集合,每个拦截器都...
"struts2自定义拦截器的示例...Struts2 自定义拦截器的示例代码提供了一个简单的身份验证示例,演示了如何在Struts2框架中实现自定义拦截器。通过自定义拦截器,可以实现各种功能,如身份验证、日志记录、缓存处理等。
1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`方法。通常,我们会继承`AbstractInterceptor`抽象类,因为它已经为我们提供了默认的`intercept()`实现。 ```java ...