- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts自学宝典(day03)
Struts自学宝典(day03)
Struts第三天
一、Struts的Token(令牌)机制
Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的,在form中生成一个token码,
在session中也保存有一个同样的token码,当表单提交后,判断两个token码向等后,就会改变session中的这个token码,当然在用回退后,
form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。
但是必须要使用struts标签,struts会自动生成一个隐藏域,来保存token码
而且必须要定义一个ActionForm的子类。
void saveToken(HttpServletRequest request)方法用于将在客户端生成的token码,保存在session中。
void resetToken(HttpServletRequest request)方法用于重置token码,生成新的token码。
boolean isTokenValid(HttpServletRequest request,boolean reset)判断token码是否相等,并且是否重置token码。reset是设定是否重置token码,一般设为true。
设置token码
public ActionForward toadd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
saveToken(request);
return mapping.findForward(next);
}
验证token码
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
if(isTokenValid(request, true)){
request.setAttribute(message, contratulation!);
} else {
request.setAttribute(message, sorry);
}
return mapping.findForward(next);
}
自己实现的token机制
在struts中同样提供了一个名为saveToken的方法,保存在session中
private void saveToken(HttpServletRequest request){
Random random = new Random();
int token=Math.abs(random.nextInt()%100+1);
HttpSession session = request.getSession();
session.setAttribute(token,token);
}
private boolean validToken(HttpServletRequest request,boolean reset){
String token = request.getParameter(token);
if(token == null)
return false;
Object tokenObj = session.getAttribute(token);
String tokenString = null;
if(tokenObj != null)
{
tokenString = tokenObj.toString();
if(token.equals(tokenString))
{
session.removeAttribute(token);
return true;
}
}
您可能关注的文档
- RF射频电路设计.doc
- RHEL 5 NTP同步配置.doc
- rlcrp详解.doc
- RM电影制作一点通.doc
- Robert van der Hilst罗伯特·凡·德·休斯特:色彩没有办法解释.doc
- Rockbox声音设置常识.doc
- RoHS认证法规:“ROHS”指令(标准)中实施环境管理物质适用范围_RoHS法规介绍_RoHS法规介绍_RoHSRoHS认证S.doc
- rootvg内文件系统的介绍.doc
- RoHS认证法规:“ROHS”指令(标准)中实施环境管理物质适用范围_RoHS.doc
- ros双线负载均衡.doc
- 2023年陕西省商洛市柞水县两河乡招聘社区工作者真题参考答案详解.docx
- 2023年陕西省延安市宝塔区青化砭镇招聘社区工作者真题参考答案详解.docx
- 2023年陕西省汉中市西乡县罗镇乡招聘社区工作者真题及参考答案详解.docx
- 2023年陕西省延安市洛川县永乡招聘社区工作者真题及答案详解1套.docx
- 2023年陕西省商洛市商州区三岔河乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省宝鸡市陇县八渡镇招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省延安市洛川县石泉乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省商洛市商州区沙河子镇招聘社区工作者真题附答案详解.docx
- 2023年陕西省咸阳市礼泉县赵镇招聘社区工作者真题及参考答案详解1套.docx
- 2023年陕西省商洛市丹凤县留仙坪乡招聘社区工作者真题及参考答案详解一套.docx
文档评论(0)