Struts Token 使用及原理

2022-09-17 07:03:13 字數 1071 閱讀 7409

1,先在乙個action中,呼叫s**etoken(httpservletrequest request)方法。然後轉向帶有表單的jsp頁面。

2,在jsp頁面提交表單給乙個action,再這個action中進行是否為重複提交的判斷。

1,  由第乙個action呼叫s**etoken(httpservletrequest request),這個方法內部實現如下:

這個方法的實現如下:

}這個方法呼叫generatetoken方法實現如下:

}generatetoken完畢後,將得到的唯一值setattribute到session中。

session.setattribute(globals.transaction_token_key, token);

globals.transaction_token_key的值是:」 org.apache.struts.action.token」

然後跳轉到jsp頁面。

2,  jsp頁面的struts自定義標籤 的標籤類:org.apache.struts.taglib.html. formtag

這個類的dostarttag()方法會呼叫本類的rendertoken()方法。

這樣子會生成類似於

的隱藏標籤。

然後提交到乙個action中,在action中用istokenvalid()方法進行比較session中」 org.apache.struts.action.token」的這個key所對應的值和提交來的request中的」 org.apache.struts.action.token」的這個value是否一致。

如果為true,那麼證明可以提交。如果為false,證明已經重複,不允許提交。

閉鎖(CountDownLacth)使用及原理分析

1.countdowmlatch是什麼?countdownlatch也叫閉鎖,可以使得乙個 多個執行緒等待閉鎖開啟後執行 2.應用場景示例 public class countdownlatchtest try catch exception e system.out.println 主線程在子執行...

Spark Streaming程式設計模型及原理

spark streaming程式設計模型及原理 離散資料流 discretized stream or dstream 是spark streaming 中最基本的抽象資料結構,它代表了連續的流式資料,與rdd類似,dstream有兩種產生方式,一種是從源頭獲取的輸入資料,另外一種則是對源資料經過...

Ruby SQLite GUI使用實錄(原)

ruby sqlite gui是乙個簡單的 跨平台的sqlite資料庫管理工具,它使用ruby編寫,使用了ruby gtk2和activerecord後端。因此需要安裝gtk,至於activerecord在大家安裝rails時就裝好了,所以下面就不敘述了。code c ruby v ruby 1.8...