Struts 拦截器配置
1、新建拦截器,该拦截器用于拦截方法并继承MethodFilterInterceptor,重写doIntercept方法:
package com.current.interceptor; import java.util.List; import org.apache.log4j.Logger; import org.apache.struts2.ServletActionContext; import com.current.pagemodel.User; import com.current.util.RequestUtil; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class AuthInterceptor extends MethodFilterInterceptor{ private static final Logger logger = Logger .getLogger(AuthInterceptor.class); private static final long serialVersionUID = 1L; @Override protected String doIntercept(ActionInvocation actionInvocation) throws Exception { logger.info("执行这里"); ActionContext act = actionInvocation.getInvocationContext(); //取到Sessoin对象 User sessioninfo = (User) ActionContext.getContext().getSession().get("User"); if(sessioninfo.getUsername().equals("admin")){//如果是管理员不需要验证权限 return actionInvocation.invoke(); } //得到请求的地址 String requestPath = RequestUtil.getRequestPath(ServletActionContext.getRequest()); logger.info("拦截的方法类:"+actionInvocation.getAction().getClass()); logger.info("请求的方法:"+requestPath); List<String> auths = sessioninfo.getResourceUrls(); if(auths!=null &&auths.size()>0){ if(auths.contains(requestPath)){ return actionInvocation.invoke(); }else{ logger.info("测试测试"); ServletActionContext.getRequest().setAttribute("msg", "您没有访问此资源的权限!<br/>请联系超管赋予您<br/>[" + requestPath + "]<br/>的资源访问权限!" ); return "noAuth"; } } logger.info(ServletActionContext.getRequest().getAttribute("msg")); return "noAuth"; } }
该拦截器主要是从用户Session中获取用户的权限,前台页面根据权限控制用户所能访问的资源。
2、在Struts.xml中配置拦截器
<package name="basePackage" extends="struts-default"> <!-- 配置拦截器 --> <interceptors> <interceptor name="authInterceptor" class="com.current.interceptor.AuthInterceptor"/> <!-- 配置拦截栈 --> <interceptor-stack name="authStack"> <interceptor-ref name="authInterceptor"> <!-- 指定拦截器不需要过滤的方法 --> <param name="excludeMethods"> login,getTreeNode </param> </interceptor-ref> <!-- 默认拦截栈 ,如果不配置后台有可能获取不到前台表单的值 --> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="authStack"></default-interceptor-ref> <global-results> <result name="noAuth">/error/noAuth.jsp</result> </global-results> <action name="acceptDLAction" class="com.current.action.ChainingAction" method="acceptDLAction"> <result name="success" type="plainText"> <param name="charSet">UTF-8</param> <param name="location">/MyJsp.jsp</param> </result> </action> </package>
相关推荐
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
struts2拦截器的使用说明文档,配置说明文档。可以看一下
Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器 三、定义Struts2拦截器。 ...
Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口; Interceptor 它其中有三个方法(init(),destroy() ,interceptor()): Init()方法:在服务器起动的时候加载一次,并且只加载一...
strut2 配置自定义拦截器 包括struts2.xml 和 action对应的xml 以及拦截器 可能有点简单 但是基本配置都有
struts2拦截器拦截器的概念 配置拦截器 使用拦截器
解说Struts2拦截器的配置
Struts2拦截器及其用法详细说明,描述了 各个拦截器配置对应的功能
使用Struts2实现用户权限拦截、重点是掌握拦截器的使用和配置方法,通过案例的学习,就能掌握struts中拦截器的使用方法,让我们能快速上手
主要是有关Struts2中拦截器的配置和解析,简单的应用。
完整可运行起来的SSH项目!中使用了SAIF 插件 实现拦截器的效果!并且有sql语句 !我使用的是mysql数据库,如果你使用别的数据库请改配置文件!运行成功后注意控制台的输出
struts2拦截器可以控制action的执行顺序,这个小示例直接在Tomcat下配置完就可以发布
NULL 博文链接:https://chaoyi.iteye.com/blog/2158316
默认登录页面 http://localhost:8080/Struts_ljq ...登录成功页面有add,delete,modify方法,配置有不同拦截,在后台看拦截信息。...有全局拦截器配置和方法拦截,及监听器简单运用, 仅新手学习demo
该文件主要针对springMVC+spring+mybatis框架配置,struts2文件上传的代码,Struts2自定义拦截器配置
Struts2的拦截器的配置 Struts2的拦截器举例
struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit...主要文件PremissionInterceptor.java和struts2.xml拦截器配置文件,ok