struts2的token interceptor
关于struts2的token拦截器的说明
原理:struts2的token interceptor是关于重复提交的拦截器,其实现是:在form表单中加入token标签,如下:
<form action="user" method="post">
name:<input name="name">
age:<input name="age">
<input type="submit" value="add">
<s:token></s:token>
</form>
会在服务器传回来的静态页面中找到一个hidden 标签,在此标签中生成了一个随机码,会加入到session中去,当提交完整个页面之后会在session中把它删掉,当在此想提交的时候,在session中找不到这个对象,从而避免重复提交。
其中struts.xml中的配置如下:
<package name="test" namespace="/" extends="struts-default">
<action name="input" class="com.wbs.InputAction">
<result>/input.jsp</result>
</action>
<action name="user" class="com.wbs.UserAction">
<result>/addOK.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<result name="invalid.token">/error.jsp</result>
</action>
</package>
访问的时候先访问input这个页面,在这个页面中输入要提交的数据,则会找到相应的action去处理。但是需要注意的是在<intercptor-ref name="defaultStack"/>这个一定要在<interceptor-ref name="token"/>这个之前,因为token是在默认的加载完了之后去继续处理,在<interceptor-ref name="token"/>这个之后,要加上<result name="invalid.token">/xxx.jsp</result>。因为当token拦截器拦截住一个页面的时候,会默认的找invalid.token这个action,吧处理的结果交给这个aciton去处理。
struts2的token interceptor的更多相关文章
- struts2拦截器interceptor的配置方法及使用
转: struts2拦截器interceptor的配置方法及使用 (2015-11-09 10:22:28) 转载▼ 标签: it 365 分类: Struts2 NormalText Code ...
- struts2拦截器interceptor的三种配置方法
1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...
- struts2中token防止重复提交表单
struts2中token防止重复提交表单 >>>>>>>>>>>>>>>>>>>&g ...
- Struts2 - Check Login Interceptor
Struts2使用Interceptor做用户登陆检查: 1)新增一个bean: User.java package com.my.beans; import java.util.Date; impo ...
- Struts2学习:interceptor(拦截器)的使用
对于需要登陆验证.权限验证等功能的网站,每一次请求,每一个action都写一段验证的代码,未免显得冗余且不易维护.struts2提供了拦截器interceptor,为这些页面提供一个切面,或者说公共组 ...
- 利用struts2<s:token>标签防止用户重复提交
当用户填写完表单后,在提交过一次后,若用户做如下操作比如再次点击提交.刷新页面.提交页面呈现后点击后退按钮,都会导致表单重复提交.如果信息需要存储到后台数据库中,重复提交就会再次向数据库中插入用户信息 ...
- base64编码-----------》struts2(token)利用BigInteger产生随机数
//struts2 源码 public static final Random RANDOM= new Random(); public static String generateGUID(){ r ...
- struts2令牌(token)内部原理
小菜最近接触了struts2中的令牌知识,由于该知识点比较重要,因此想弄明白些,于是满怀信心的上网查阅资料,结果让小菜很无奈,网上的资料千篇一律,总结出来就一句话:“访问页面时,在页面产生一个to ...
- struts2 拦截器 interceptor
struts2 拦截器详解:http://struts2.group.iteye.com/group/wiki/1397-deep-into-struts2-interceptors
随机推荐
- phpmyadmin杂记
看着坑爹的教程..我老是报错我也很无奈啊 以下几项必改 $cfg['blowfish_secret'] = ' ';//这里引号内是空格,实际上可以是任意内容, $cfg['Servers'][$i] ...
- mui 的注意事项点
1.mui的subpage在微信浏览器中不能正常工作. 2.MUI支持json格式解析: 调用JSON.parse(data)或者JSON.stringify(data); 3.
- C语言字符数组与字符串
研究几个案例: 输出图案: #include <stdio.h> void main() { ][] = { {', ' ', ' '}, {', ' '}, {'}, {', ' '}, ...
- Android 实现电话录音(窃听)
配置文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=&qu ...
- matlab练习程序(随机直线采样)
我只是感觉好玩,写了这样一段程序. 原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了. 最后生成了一幅含有很多空洞的图像. 当然,对含有空洞的图像是 ...
- Java—集合框架 Collections.sort()、Comparable接口和Comparator接口
Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set ...
- Markdown 使用方法总结
标题: [#] 表示一级标题 [##] 表示二级标题 [###]表示三级标题 引用块:在引用文本前插入 Tab,具体几个 Tab 根据文本所处的位置不同而不同 列表:[ - ]即一个空格加上一个中划 ...
- CSS z-index的用法
理清 position及z-index的用法: static : 无特殊定位,对象遵循HTML定位规则absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属 ...
- vue 单页应用中微信支付的坑
vue 单页应用中微信支付的坑 标签(空格分隔): 微信 支付 坑 vue 场景 在微信H5页面(使用 vue-router2 控制路由的 vue2 单页应用项目)中使用微信 jssdk 进行微信支付 ...
- typescript import需要注意的地方以及一点疑问
在使用 import {XXX} from './xxx'的时候,到浏览器上会报错,提示找不到xxx文件,原因在于没有加入后缀,这时候要写成import {XXX} from './xxx.js'注意 ...