1.说明
系统拦截器的应用。
表单重复提交:当使用请求转化进行跳转的时候,存在着表单重复提交的问题。
2.在表单中加入s:token
如果页面加入了struts2的标签,页面的请求必须进入struts2的核心控制器。
s:token会被解析为隐藏域,隐藏域中的值是服务器产生的一个token,当提交表单的时候,会将token的值提交到服务器,struts2将客户端提交的token和session中的token比较:
如果匹配,正常提交,执行处理请求的方法
如果不匹配,返回值指定的result,result的名字为invalid.token
1
3. 定义Action
1 public class UserAction extends ActionSupport 2 { 3 // org.apache.struts2.interceptor.TokenInterceptor 4 private String uname; 5 private String upwd; 6 public String getUname() 7 { 8 return uname; 9 }10 public void setUname(String uname)11 {12 this.uname = uname;13 }14 public String getUpwd()15 {16 return upwd;17 }18 public void setUpwd(String upwd)19 {20 this.upwd = upwd;21 }22 public String userReg()23 {24 System.out.println(uname + "\t" + upwd);25 return Action.SUCCESS;26 }27 }
4. 配置Action
1 2 56 7 238 9 1510 1411 12 13 17 18 2219 /index.jsp 20/show.jsp 21
TokenSession:自己测试,不需要配置<result name="invalid.token">/index.jsp</result>
Invalid.token,默认在哪里刷新,停留在哪里。