我遇到了這個<s:token />
標籤,它被包含在一個JSP頁面中的<s:form></s:form>
標籤中。 其他一些StackOverflow鏈接討論了它在維護會話和防止雙重提交表單中的用法。這個標籤的用途究竟是什麼?如果它阻止了表單的雙重提交,那麼當我提交表單時會發生什麼,以及它如何阻止它?Struts2中令牌標記的用法是什麼?它如何工作?
回答
在這裏,我回答了我自己的問題,因爲這可能有助於未來的人,但我會嘗試挖掘更多這一點,並得到它更新。
的純英文解釋,我發現:
「的標記標籤產生一個獨特的標記,用來找出是否一個表格已經雙提交 當形式呈現,一個隱藏的變量。放置爲標記值,比如說標記是「ABC」,當這個表單被提交時,Struts Filter會檢查存儲在會話中的令牌,如果匹配,它會從現在,如果表單被意外重新提交(通過刷新或通過點擊瀏覽器後退按鈕),表單將以「ABC」作爲標記重新提交,在這種情況下,篩選器將檢查標記與存儲在標記中的標記s再次激情。但由於令牌「ABC」已經從會話中刪除,它不會匹配和Struts的過濾器將拒絕該請求。」(Source)
但是這兩個StackOverflow的答案,更多的知識補充。
注意:* Struts Filter *應該由**攔截器**替換。 –
我不知道:P接受! –
<s:token/>
的用途標籤:
停止雙重提交表格。
令牌標記用於幫助「雙擊」提交 問題。如果您使用
TokenInterceptor
或TokenSessionInterceptor
,則需要此選項。s:token
標籤只是放置一個包含唯一標記的隱藏的 元素。
(來源:https://struts.apache.org/docs/token.html)
什麼是在Struts2使用令牌標籤?
請參閱example。
它是如何工作的?
它的工作原理主要是利用一類,一種輔助類和XML配置文件: Token.java,TokenHelper.java,struts-token.xml。
- 1. 什麼是登錄系統中的簽名或令牌?它如何工作?
- 2. Struts2屬性標記escapeHtml不工作我錯過了什麼?
- 3. 會話令牌 - 它是如何工作的?
- 4. 什麼是Orchard中的ParentPath標記,我如何使用它?
- 5. Jenkins的種子工作是什麼?它是如何工作的?
- 6. SVN中標記的用法是什麼?
- 7. 這是什麼語法結構,它是如何工作的?
- 8. 什麼是延遲後臺工作?它是如何工作的?
- 9. 什麼是IOR文件,它是做什麼的,它是如何工作的?
- 10. 無法在jsp中包含令牌struts2
- 11. JWT令牌如何工作?
- 12. 什麼是Cometd?爲什麼它被使用和如何工作
- 13. struts2中的密碼標記無法正常工作
- 14. 重置Struts2令牌?
- 15. 什麼是Wicket中的ResourceReferences,它們是如何工作的?
- 16. Android中的android:weightSum是什麼,它是如何工作的?
- 17. 什麼是SQL中的binary_checksum?它是如何工作的?
- 18. PreparedStatement緩存 - 它是什麼意思(它是如何工作的)
- 19. Ext.net PageProxy:它是什麼,它是如何工作的?
- 20. 在Git中標記,它是如何工作的?
- 21. promisifyAll如何工作,或者它的工作要求是什麼?
- 22. 爲什麼中斷()無法按預期工作,它是如何工作
- 23. 什麼preprocessing.scale()做什麼?它是如何工作的?
- 24. 在Ruby中「=>」是什麼意思,它是如何工作的?
- 25. 什麼是spnego令牌?
- 26. 什麼是C令牌?
- 27. 什麼是API令牌
- 28. Struts2 + Freemarker + DisplayTag:如何讓它工作
- 29. 什麼是OAuth 2中的承載令牌和令牌類型?
- 30. 「刷新令牌」的用途是什麼?
[Token Interceptor和Token Session Interceptor之間的區別?](http://stackoverflow.com/q/19525888/1700321) –
@AleksandrM這個問題/答案與Struts2標記無關,只是一個這段代碼告訴差異,但並未展示它的工作原理。 –
你想知道什麼? –