struts拦截器的奇怪问题

问题描述

拦截器如下packagecom.muzhi.Interceptor;importjava.util.Map;importcom.opensymphony.xwork2.ActionInvocation;importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;publicclassTeaInterceptorextendsAbstractInterceptor{/****/privatestaticfinallongserialVersionUID=1008775964354634873L;@OverridepublicStringintercept(ActionInvocationinvocation)throwsException{Mapsession=invocation.getInvocationContext().getSession();Stringt=(String)session.get("user.teacher");Stringa=(String)session.get("user.admin");if(null==t){System.out.println("第二次拦截我就不出现了");return"error";}else{returninvocation.invoke();}}}struts.xml相关设置如下<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack"><interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors><actionname="showfiles"class="com.caizhou.action.ShowAciton"><resultname="success">/ShowPage.jsp</result><resultname="error">/login.html</result><interceptor-refname="teaStack"></interceptor-ref></action>action如下:packagecom.caizhou.action;importjava.util.List;importjavax.naming.InitialContext;importcom.caizhou.bean.FileInfo;importcom.caizhou.service.FileInfoDAO;importcom.opensymphony.xwork2.ActionSupport;publicclassShowAcitonextendsActionSupport{/****/privatestaticfinallongserialVersionUID=1L;privateintpageNow=1;privateintpageSize=5;privatebooleanhasNext=true;privateList<FileInfo>list;FileInfoDAOfile;publicintgetPageNow(){returnpageNow;}publicvoidsetPageNow(intpageNow){this.pageNow=pageNow;}publicintgetPageSize(){returnpageSize;}publicvoidsetPageSize(intpageSize){this.pageSize=pageSize;}publicList<FileInfo>getList(){returnlist;}publicvoidsetList(List<FileInfo>list){this.list=list;}publicbooleanisHasNext(){returnhasNext;}publicvoidsetHasNext(booleanhasNext){this.hasNext=hasNext;}@OverridepublicStringexecute()throwsException{InitialContextctx=newInitialContext();file=(FileInfoDAO)ctx.lookup("FileInfoDAObean/remote");list=file.getPage(pageSize,pageNow);hasNext=file.hasNext(pageSize,pageNow);System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");returnSUCCESS;}}我发现拦截器第一次可以成功拦截,但是以后无论我session里面有没有正确信息它直接返回的result都是error,奇怪的是红色字段的内容再也不print出来.

解决方案

解决方案二:
顶起来啊,救命啊。。。。
解决方案三:
学习
解决方案四:
up
解决方案五:
up
解决方案六:
对你的现象不太了解,有一点。你的配置里面,只是对一个Action指定了拦截器。是不是你运行其他的Action的时候,拦截器没有起到作用。
解决方案七:
<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack">---没有结束标志<interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors>
解决方案八:
学习
解决方案九:

解决方案十:
<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="tea"></interceptor-ref>--->引用两次看看能不能符合你的要求<interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors>

时间: 2024-11-08 22:00:04

struts拦截器的奇怪问题的相关文章

Struts 拦截器权限控制【通过拦截器实现登录后跳转到登录前页面】

应用情形:在web项目中,经常会遇到用户未登录或SESSION失效时用户发出非法的权限操作,如新闻的评论.文件的下载等等,在此我们可以使用struts拦截器对该用户发出的请求进行拦截,拦截后判断用户是否登录或SESSION是否有效,然后进行其正常操作.具体实例如下: 新建一个拦截器类UserInterceptor ,UserInterceptor.java代码如下 [java] view plaincopyprint? package com.hsinghsu.test.interceptor;

拦截器问题 谢谢-不进Struts拦截器,麻烦帮解决,谢谢~~~~~

问题描述 不进Struts拦截器,麻烦帮解决,谢谢~~~~~ test.jsp <%@ page contentType="text/html;charset=GB2312"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

如何在struts拦截器里面屏蔽所有页面鼠标右键?

问题描述 如何在struts拦截器里面屏蔽所有页面鼠标右键? 需求:就是想屏蔽全部页面鼠标右键,单一一两个页面,可以通过 function document.oncontextmenu(){ return false; } 来实现,但如果整个工程里面全部页面都一一添加,这有点不科学,也不现实. 请教:如何在拦截器里面统一处理?在返回到具体页面前拦截所有页面,添加上述代码来实现.其他实现方法如有效也行.请详细说明,谢谢各位大家指点. 解决方案 你整个通用文件include进去不就好了..

struts 拦截器

在Java的Struts中判断是否调用AJAX及用拦截器对其优化_java

Strut2判断是否是AJAX调用 1.   AJAX与传统Form表单实际上,两者一般都是通过HTTP的POST请求.区别是浏览器提交Form表单后,期望服务器返回一个完整的HTML页面.而AJAX调用是由XMLHttpRequest对象(不同浏览器可能不一样)发出,浏览器期望服务器返回HTML片段即可,具体是JSON.XML等都没有要求.返回到浏览器后如何使用,也是由JS脚本自己决定的.  2. 请求是不是AJAX那么对于服务器端,如何判断一个HTTP请求是不是AJAX调用?这需要看HTTP

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

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

Struts2教程8:拦截器概述

Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法. Struts2拦截器类必须从com.opensymphony.xwork2.interceptor.Interceptor接口继承,在Intercepter接口中有如下三个方法需要实现: void destroy(); void init(); St

【Struts2框架】第六节拦截器-拦截器介绍和总结

一.拦截器概念 Strrurs拦截器是可插拔式的拦截器:如果我们要使用某个拦截器,只需要在配置文件中应用该拦截器即可. Struts拦截器由struts-default.xml,struts.xml等配置文件中进行管理. Struts2中已经默认启动了大量通用功能的拦截器(这些拦截器以name-class对的形式配置在struts-default.xml文件中),只要我们配置Action的package继承了struts-default包,这些拦截器就会起作用. 拦截器几乎完成了Sturts2框

Java的Struts2框架中拦截器使用的实例教程_java

1.拦截器小介 拦截器的功能类似于web.xml文件中的Filter,能对用户的请求进行拦截,通过拦截用户的请求来实现对页面的控制.拦截器是在Struts-core-2.2.3.jar中进行配置的,原始的拦截器是在struts-default.xml中配置的,里面封存了拦截器的基本使用方法. Struts2拦截器功能类似于Servlet过滤器.在Action执行execute方法前,Struts2会首先执行struts.xml中引用的拦截器,如果有多个拦截器则会按照上下顺序依次执行,在执行完所有