项目使用SSH整合!采用Struts2,Spring2,Hibernate3
项目有一个拦截器!是用来判断用户是否登录的!
配置如下:<interceptors>
<interceptor name="signonStack" class="com.csdn.interceptor.SignonInterceptor"></interceptor> <interceptor-stack name="base.main-stack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="signonStack"></interceptor-ref>
</interceptor-stack>
</interceptors><default-interceptor-ref name="base.main-stack"></default-interceptor-ref>这样所有的Action都是默认使用"base.main-stack"这个拦截器栈.
唯独系统登录没有使用这个拦截器栈.配置如下:
<action name="signon" class="signonAction" >
         <interceptor-ref name="defaultStack"></interceptor-ref>
         <result name="success">/user/signon_success.jsp?url=${url}</result>
</action>项目运行完全没问题,拦截器也都能运作,但是今天我加断时点发现——这个signonAction在用户输入了用户名和密码后提交请求Action会被访问2~4次,不知道是为什么?我以为是跳转后的页面有frame的缘故,把跳转后的页面设成一个没有html代码的空页面也会被多次访问.其他任何普通(即使用base.main-stack这个拦截器栈)的Action都没有问题,都不会被多次访问.唯有这个signonAction.登录前JSP和登录成功JSP我加断点发现都是被访问一次的,也就是说没有问题,唯独该Action被反复访问2~4次!
我又尝试在defaultStack后面加入一个空拦截器,然后加上断点,也会被访问2~4次!
我实在是无语了!请高手帮忙!