首先编写Action:TokenTest
代码 1 package example;
2
3 import com.opensymphony.xwork2.ActionSupport;
4
5 public class TokenTest extends ActionSupport {
6 /**
7 *
8 */
9 private static final long serialVersionUID = -9171705568952325237L;
10 private String token_message;
11
12 public String getToken_message() {
13 return token_message;
14 }
15
16 public void setToken_message(String token_message) {
17 this.token_message = token_message;
18 }
19
20 public String execute(){
21 System.out.println("The meaage is "+token_message);
22 return SUCCESS;
23 }
24 }
25
2
3 import com.opensymphony.xwork2.ActionSupport;
4
5 public class TokenTest extends ActionSupport {
6 /**
7 *
8 */
9 private static final long serialVersionUID = -9171705568952325237L;
10 private String token_message;
11
12 public String getToken_message() {
13 return token_message;
14 }
15
16 public void setToken_message(String token_message) {
17 this.token_message = token_message;
18 }
19
20 public String execute(){
21 System.out.println("The meaage is "+token_message);
22 return SUCCESS;
23 }
24 }
25
XML文件中添加对应项目:
1 <action name="TokenTest" class="example.TokenTest">
2 <interceptor-ref name="defaultStack" />
3 <interceptor-ref name="token" />
4 <result name="invalid.token">/tokenInput.jsp</result>
5 <result>/tokenInput.jsp</result>
6 </action>
2 <interceptor-ref name="defaultStack" />
3 <interceptor-ref name="token" />
4 <result name="invalid.token">/tokenInput.jsp</result>
5 <result>/tokenInput.jsp</result>
6 </action>
注意:一定要添加token拦截器,并且填写返回结果 invalid.token 时的处理页
编写JSP文件tokenInput.jsp:
1 <%@ page language="java" contentType="text/html; charset=gbk"
2 pageEncoding="gbk"%>
3 <%@ taglib prefix="s" uri="/struts-tags" %>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=gbk">
8 <title>重复提交测试</title>
9 </head>
10 <body>
11 <s:actionerror/>
12 <s:form name="tokenForm" action="TokenTest" namespace="/example">
13 <s:textfield name="token_message"></s:textfield>
14 <s:property value="token_message"/>
15 <s:submit/>
16 <s:token/>
17 </s:form>
18 </body>
19 </html>
2 pageEncoding="gbk"%>
3 <%@ taglib prefix="s" uri="/struts-tags" %>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=gbk">
8 <title>重复提交测试</title>
9 </head>
10 <body>
11 <s:actionerror/>
12 <s:form name="tokenForm" action="TokenTest" namespace="/example">
13 <s:textfield name="token_message"></s:textfield>
14 <s:property value="token_message"/>
15 <s:submit/>
16 <s:token/>
17 </s:form>
18 </body>
19 </html>
一定要添加<s:actionerror/> <s:token/> 两项,后者可以再客户端生成一个SID,能够唯一确定某个绘画,点击提交后,页面显示提交的内容个,再次按F5刷新时,页面提示你已经提交过了!

浙公网安备 33010602011771号