<action name="regist" class="action.UserAction" method="regist">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="token/>
<result>/userPages/login.jsp</result>
<result name="invalid.token">/error.jsp?msg=不允许重复提交!</result>
</action>
c)在error.jsp页面里增加如下代码:${param.msg}当然我们也可以借鉴Struts2的token机制在原生的Servlet里实现我们自己的token机制:在regist()方法里增加如下代码:String newsessionId = request.getSession().getSessionId();String oldSessionId= Cache.getSessionId();if(newSessionId.equals(oldSessionId)){ msg = "不允许重复提交!"; request.getRequestDispatcher("/userPages/regist.jsp").forward(request, response);}Cache.setSessionId(newSessionId);//调用服务层用户注册逻辑...再在/userPage/regist.jsp页面增加如下代码:${msg}上面的Cache是自定义的一个普通的缓存类。当然上面的代码有些细节可能有语法错误,但大致如此。以上可以做到完全禁止用户重复提交,其实有了后台Struts2的token机制,前台页面不用做任何操作,但为了减轻服务器的压力,还是应该先在页面予以禁止。参考文档:判断当前浏览器类型:http://blog.csdn.net/xianzi0828/article/details/7582408禁止页面重复提交:http://waj952737.iteye.com/blog/972903Struts2的token机制:http://blog.csdn.net/yutian888/article/details/6376858顶0踩新闻热点
疑难解答