struts框架token摘录笔记
来源:互联网 发布:月工资算法公式 编辑:程序博客网 时间:2024/06/04 18:08
令牌生成原理图
如果某个jsp页面中有token标签,那么无论是请求这个界面还是内部转发到这个界面,我们统一说成是“渲染界面”的时候,都会造成token id的产生或者更新。
一定要搞清楚,这里是请求的jsp页面,此时可以产生令牌,但令牌不会起作用,因为它拦截的不是jsp,而是通过反射机制调用的方法。
令牌拦截原理图
令牌可以拦截的是Action中的方法。
如果方法需要被拦截,会判断session中的token id和提交过来的token id是否相等。如果不相等,则直接跳转到预先配置好的界面,session中的token id不变;如果相等,则执行请求的方法,关键的一点是,此时session中的token id会被清空!
注意令牌的产生时机,它是在加载(或渲染)带有token标签的jsp页面时产生的,与请求或者转发无关,与方法是否被拦截无关。
l 由于服务器端的token id是保存在session中的,因此不同的页面间可以共享,使用时注意,避免混乱。
l 如果访问的方法属于被拦截的方法,验证通过之后,会清空session中的token id;如果验证不通过,session 中的token id不变,直到下一次加载(或渲染)带有token标签的jsp页面。
重复提交有一个必然的特征:它的token id是上一个。因此只要保证验证通过后session中保存的token id变化即可,清空是最直接的办法。要想通过验证,只有一个途径:重新加载(或渲染)带有token标签的jsp页面,使客户端的token id和服务器端的token id一致。
Struts Token使用:
1,先在一个Action中,调用saveToken(HttpServletRequest request)方法。然后转向带有表单的JSP页面。
2,在JSP页面提交表单给一个Action,再这个Action中进行是否为重复提交的判断。
在处理完客户端的请求后,服务器端会把处理结果返回给客户端。那么在response发送给客户端之前,将会产生一个新的Token,该Token的值除了传给客户端以外,也会将用户session中保存的旧的Token替换掉。也就是说,隐藏域的token值发生了变化,session中的token也发生了变化。
这时候,如果通过IE的返回按钮,回到原来画面的话,隐藏域中的token值又恢复到变化前,这时候如果再次提交的话,客户端传过来的Token值和服务器端的就不一致,这时候画面会迁移到指定画面。从而避免重复提交。
- struts框架token摘录笔记
- 利用Token防止重复提交(Struts框架)
- 利用Token防止重复提交(Struts框架)
- 利用Token防止重复提交(Struts框架)
- struts token
- struts token
- struts token
- Struts框架学习笔记
- 【转/摘录】Gradle学习笔记--框架搭建
- Struts 2.0框架理解笔记
- 笔记摘录
- Struts 中使用 Token
- struts的token使用
- 关于Struts的Token
- 关于Struts的Token
- Struts Token 使用
- Struts Token 使用
- struts中的令牌token
- 链表(6)----查找链表中间节点
- Android 外网连接解决方案
- 运行编译完的镜像
- Java类初始化代码中的异常Exception控制策略
- Flash 数组的用法(一)
- struts框架token摘录笔记
- 如何使用json在前后台进行数据传输
- 微信公众平台获取用户信息
- 如何从零开始学习JavaEE
- Java的环境变量配置的方法
- Java8的lambda(3)
- CSS3简明教程-1.1.CSS3是什么
- android httpGet请求,红色部分很关键,可能这种方式不是最好的。
- 在IOS开发中使用GoogleMaps SDK