详细解决方案
Struts 的 Token 有关问题
热度:1123 发布时间:2016-04-17 10:40:06
package com.struts.action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.validator.DynaValidatorForm;
import com.struts.model.ProcessBean;
public class AddMemberAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
if (isCancelled(request)){
//如果点击了“取消”按钮就直接返回首页
return mapping.findForward("index");
}else{
ActionErrors errors = new ActionErrors();
if (!isTokenValid(request)){ //如果是重复提交
//在当前会话中放置新的令牌
//*********************************
saveToken(request);
//*********************************
//如果是重复提交就携带错误消息直接返回会员注册页面
errors.add("tokenerrors",new ActionError("login.token"));
saveErrors(request,errors);
return mapping.getInputForward();
}else{ //如果不是重复提交
//将令牌属性从当前会话中删除
resetToken(request);
//取得动态表单对象
DynaValidatorForm addMemberForm = (DynaValidatorForm) form;
//调用模型组件ProcessBean来处理表单数据
ProcessBean processor = new ProcessBean(getDataSource(request));
processor.addMember(addMemberForm);
//注册会员数据入库后返回
return mapping.findForward("index");
}
}
}
}
*********************************************
大家都知道Token机制是避免重复提交的机制.上面的程序我试验过,总结如下:
1.填写了一次资料,提交之后返回主页面.
2.按后退返回提交页面,补回相关信息,按确定提交,提示错误信息.
3.但是再按一次确定按钮,却提交上了.
鄙人看了token教程之后,还是对saveToken和resetToken两个方法不大了解,请各位解释完上面的程序之后,顺便解释解释.
补充一下:上面的唯一的"saveToken"方法,如果改变成"resetToken"方法之后,就不会出现我上面的说法了.
------解决方案--------------------
顶出来~
相关解决方案
- struts HTTP Status 500解决办法
- Struts-config.xml配置action-地图pings元素略计
- Struts-config.xml配置文件《action-地图pings》元素的详解
- 404,500跳转到登录页面,疏失:The Struts dispatcher cannot be found
- java报错Syntax error on token "return" invalid Type解决方案
- java struts 文件上载
- struts hibernate 测试小例子 不报错 但数据库没反应 求分析项目在小弟我的资源里面
- 求SSM分页 struts +spring+mybatis 给小弟我发个学习学习吧 多谢大神们
- 关于 jsp struts-tag <c:if> 判断有关问题
- struts+spring+mybatis出现错误(java.lang.ClassNotFoundException: Entity)为提示位置
- 求解 struts+spring+mybatis sqlsession为空 debug发现没有执行set方法 检查配置好像没有关问题
- struts + hibernate 后台页面修改数据后,前台页面显示的内容新旧数据交替出现。请高手帮忙分析上原因
- struts+spring+hibernate 开发,在action层调用service层接口,结果替null 注入失败,需高手帮忙
- 有个有关问题,请各位帮忙看看:java.lang.ClassNotFoundException: org.apache.struts.action.Act
- struts.xml资料中的namespace"/"当在/后加东西时没起作用
- 生手求教,dwr+struts+spring 页面跳提示框error
- struts checkbox 页面显示
- Servlet struts is not available要如何解决
- struts+hibernate数据库链接池有关问题
- JSP运行异常 STRUTS + SQL SERVER 2005
- Struts 国际化 i18N properties 数据动态,该如何处理
- struts hibernate,该如何处理
- struts.xml有关问题
- struts.xml跳转有关问题
- struts 2.18客户端证验不能编译
- struts+jfreechart,路径有关问题
- struts action 提交有关问题
- 關於javascript 呼叫 struts action 問題解决方法
- Syntax error on token "{" { expected after this token,该怎么解决
- 求1 struts 2+hibernate+spring整合好的项目