拦截器只运行一次

问题描述

packageinterceptot;importjava.util.Iterator;importjava.util.Map;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionInvocation;importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;publicclassMyInterceptotextendsAbstractInterceptor{/****/privatestaticfinallongserialVersionUID=1L;@OverridepublicStringintercept(ActionInvocationinvocation)throwsException{System.out.println("拦截器");ActionContextctx=invocation.getInvocationContext();Stringobject=ctx.toString();Mapsession=ctx.getSession();System.out.print("session");print(session);ObjectcAction=ctx.getActionInvocation().getAction();MapuApplication=ctx.getApplication();System.out.print("uApplication:");print(uApplication);MapuParameters=ctx.getParameters();System.out.print("uParameters:");print(uParameters);MapuContextMap=ctx.getContextMap();System.out.print("uContextMap:");print(uContextMap);Stringbean=ctx.getName();System.out.println(bean);if(bean.equals("login")||bean.equals("registrat")||session.get("user")!=null){System.out.println("拦截器通过");returninvocation.invoke();}System.out.println("拦截器没通过");return"login";}publicvoidprint(Mapmap){Iteratorit=map.keySet().iterator();if(it.hasNext()){System.out.println(it.next());}}}结果:uParameters:user.usernameuContextMap:com.opensymphony.xwork2.ActionContext.parameterslogin拦截器通过bean+密码Hibernate:selectuser0_.idasid0_,user0_.`username`asusername2_0_,user0_.`password`aspassword3_0_fromuseruser0_whereuser0_.`username`=?[]

解决方案

解决方案二:
没看懂。条件满足不是都有输出吗?
解决方案三:
拦截器通过只输出了一次
解决方案四:
而且拦截器不拦截访问其他网页的请求

时间: 2024-07-30 15:05:12

拦截器只运行一次的相关文章

怎么在递归调用中让其中一部分代码只运行一次

问题描述 怎么在递归调用中让其中一部分代码只运行一次 怎么在递归调用中让其中一部分代码只运行一次. 怎么在递归调用中让其中一部分代码只运行一次

java中MyBatis拦截器Inteceptor详解

本文主要分析MyBatis的插件机制,实际就是Java动态代理实现的责任链模式实现. 根据官方文档.Mybatis只允许拦截以下方法,这个决定写拦截器注解签名参数.  代码如下 复制代码 Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) ParameterHandler (getParameterObject, setParameters) ResultSetH

struts2 配置的文件上传拦截器没有生效

问题描述 struts2配置了文件上传拦截器只允许上传图片,为什么没有生效的呢?其他类型文件还是能够上传 解决方案 解决方案二:但其他文件上传后台会报错,其实没传成功的吧这个要上传前端控制下吧

java MyBatis拦截器Inteceptor详细介绍_java

有许多java初学者对于MyBatis拦截器Inteceptor不是很了解,在这里我来为各位整理下篇关于java中MyBatis拦截器Inteceptor详解, 本文主要分析MyBatis的插件机制,实际就是Java动态代理实现的责任链模式实现. 根据官方文档.Mybatis只允许拦截以下方法,这个决定写拦截器注解签名参数.  代码如下  Executor (update, query, flushStatements, commit, rollback, getTransaction, clo

Struts2教程9:实现自已的拦截器

在上一篇中介绍了Struts2拦截器的原理,在这一篇中我们将学习一下如何编写自己的拦截器. 一.拦截器的实现 实现一个拦截器非常简单.实际上,一个拦截器就是一个普通的类,只是这个类必须实现com.opensymphony.xwork2.interceptor.Interceptor接口.Interceptor接口有如下三个方法: public interface Interceptor extends Serializable { void destroy(); void init(); Str

shiro 拦截器链

Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3.1规范>http://www.iteye.com/blogs/subjects/Servlet-3-1了解Filter的工作原理.首先下图是Shiro拦截器的基础类图: 1.NameableFilter NameableFilter给Filter起个名字,如果没有设置默认就是FilterName:还记得之前的如authc吗?当我们组装拦截器链时会根据这个名字找到相应的拦截器实

JavaWeb过滤器的运行机制理解及过滤器.监听器.拦截器-原理&amp;区别

过滤器Filter 一.过滤器的概念. Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 二.过滤器的运行机制.   没有加Filter的web项目运行机制如下:   加上Filter的web运行机制: 由此可见:Filter的作用

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第六篇:拦截器

摘要 本文将对"MVC公告发布系统"的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题 我们继续完善"MVC公告发布系统",这次,我们的需求是对公告发布功能添加日志记录能力,即在发布公告前,记录一次,在 公告发布成功后,再记录一次.然后还要使得其具备异常处理,即当业务组件出现问题时,跳转到相应的错误页面并显示相应提示. 有 人可能笑了,这有什么难的,在DoRelease这个Action的开始和结束处各加入相应日

如何在基于注解风格的Spring-MVC中使用拦截器

Spring-MVC如何使用拦截器,官方文档只给出了非注解风格的例子.那么基于注解风格如何使用拦截器呢? 基于注解基本上有2个可使用的定义类,分别是DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter: <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <be