`

Struts2 <s:token/>标签

阅读更多

关键字: struts2 <s:token/>标签
1、使用Struts2的表单标签,其中需要增加token标签。如下:
……
Java代码
<%@ taglib uri="/struts-tags" prefix="s" %>  
……  
<s:form action="page1" theme="simple">  
<s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/>  
<s:token/>  
<s:reset/><s:submit/>  
   </s:form> 

<%@ taglib uri="/struts-tags" prefix="s" %>
……
<s:form action="page1" theme="simple">
<s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/>
<s:token/>
<s:reset/><s:submit/>
   </s:form>

2、在struts配置文件中增加token拦截器。如下:
Java代码
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE struts PUBLIC  
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>  
 
<package name="lee" extends="struts-default">  
<action name="page1" class="org.bruce.Page1">  
<interceptor-ref name="defaultStack" />  
<interceptor-ref name="token" />  
<result>/page1.jsp</result>  
<result name="invalid.token">/page1error.jsp</result>  
</action>  
</package>  
</struts> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<package name="lee" extends="struts-default">
<action name="page1" class="org.bruce.Page1">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result>/page1.jsp</result>
<result name="invalid.token">/page1error.jsp</result>
</action>
</package>
</struts>注意,需要name为invaid.token的result。这是当拦截器判断是重复提交的时候,会转向的结果。

3、invaid.token页面打印错误信息,一样可以使用struts标签。如下:
<s:actionerror/>

理解:
1、JSP使用<s:token/>标签的时候,Struts2会建立一个GUID(全局唯一的字符串)放在session中,并且会成为一个hidden放在form中。
2、token拦截器会判断客户端form提交的token和session中保存的session是否equals。如果equals则执行Action。否则拦截器直接返回invaid.token结果,Action对应的方法也不会执行
分享到:
评论

相关推荐

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. &lt;s:...

    struts_jstl

    stl的配置方法:&lt;br&gt;1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)&lt;br&gt;&lt;br&gt;2、在jsp页面头部引入taglib方法如下:&lt;br&gt; &lt;%@ taglib prefix="c" uri=...

    点击浏览器中的URL链接,启动特定的App。

    [query]"&gt;启动应用程序&lt;/a&gt; 这一句就可以了。 各个项目含义如下所示: scheme:判别启动的App。 ※详细后述 host:适当记述 path:传值时必须的key ※没有也可以 query:获取值的Key和Value ※没有也可以 作为测试...

    230206-029shopDemo(JwtBearer身份认证配置的定义实现)

    /// &lt;summary&gt; /// 【签发机关】 /// &lt;remarks&gt; /// 摘要: /// 获取/设置用于生成所有令牌(Token)字符串实例,提供数据支撑的“签发机关”。 /// &lt;/remarks&gt; /// &lt;/summary&gt; public string Issuer { get; ...

    csgate.apk

    &lt;FcmToken&gt;fgFEl367nCg:APA91bFMguX-4dCelKCSjpaMeBYYRjk1HGRM3earJjchdSiEyEDm7kMdZpKe5ZAq6aeJu3aEwtN9YqcuhVb7wp7Iq9rB3bWkpj6g5GTQ8q3BAyyx5lFAOzAhp6sS9kn2sXC2Q2SGIE5U&lt;/FcmToken&gt; &lt;AppToken&gt;8bd333e2...

    重复提交解决实例

    本实例主要是用&lt;s:token/&gt;标签来实现重复提交的。 使用方法: 部署项目,浏览器中输入访问地址: http://localhost:8080/chongfutijiao/login.jsp 随便在输入框中输入文字,点击提交。 然后就会跳到提交成功页面,...

    C# 语法参考

    C# 语法参考&lt;br/&gt;&lt;br/&gt;文档中描述的词法和语法以及不安全代码的语法扩展的摘要。...element(输入元素 输入元素) &lt;br/&gt;input-element:(输入元素:) &lt;br/&gt;whitespace(空白)&lt;br/&gt;comment(注释)&lt;br/&gt;token(标记)

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;...

    阿里巴巴API开发sdk .net平台

    将得到的CODE码复制到文本框中:&lt;asp:TextBox ID="tbxCode" runat="server" Width="508px"&gt;&lt;/asp:TextBox&gt; &lt;br /&gt; &lt;br /&gt; 二、得到令牌,并存在本地&lt;br /&gt; &lt;asp:Button ID="btnGetToken" runat="server" ...

    springboot-springsecurity-jwt-demo

    下面对我们的程序进行简单的验证:&lt;br/&gt; 1.请求获取用户列表接口:http://localhost:8080/users/userList接口,会收到403错误&lt;br/&gt; { "timestamp": 1518333248079, "status": 403, "error": "Forbidden", ...

    java web 视频、电子书、源码(李兴华老师出版)

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;标签 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;标签 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;标签 ...

    李兴华Java Web开发实战经典(高清版) Part2

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    16.1、Struts标签库简介 16.2、Bean标签 16.2.1、&lt;bean:define&gt;标签 16.2.2、&lt;bean:size&gt;标签 16.2.3、资源访问标签 16.2.4、&lt;bean:write&gt;标签 16.2.5、&lt;bean:include&gt;标签 16.2.6、&lt;bean:resource&gt;标签 ...

    土豆聊天机器人.pdf

    /setcommands - 编辑机器⼈指令 /deletebot - 删除机器⼈ 机器⼈设置 /token - ⽣成机器⼈token /revoke - 撤销机器⼈token /setjoingroups - 是否允许您的机器⼈加⼊群组? /setprivacy - 群内消息设置...

    拦截器和控制器的区别

    &lt;s:token&gt;&lt;/s:token&gt; 3、500字struts2的科学说明文 每人一份 2018-03-19 下午演讲(脱稿) 4、小结 1、struts2对servlet封装(request,response) ,资源调配和资源的映射 2、框架设计的思想 istruts 配置,...

    让Struts2直接支持浏览FreeMarker的FTL文件

    &lt;servlet-class&gt;org.apache.struts2.views.freemarker.FreemarkerServlet&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;freemarker&lt;/servlet-name&gt; &lt;url-pattern&gt;*.ftl&lt;/url-pattern&gt; &lt;/...

Global site tag (gtag.js) - Google Analytics