若是應用了Struts 1.x框架,那麼在任何一個Action被訪問以前,都會通過ActionServlet來控制轉向,ActionServlet類中在接收到咱們客戶端的請求(*.do)後(以前會作一系列初始化工做),並非直接去處理咱們的請求並調用相應的Action,而是將處理工做交給RequestProcessor類,其process方法中會調用一系列的方法來完成相應的請求處理和轉向操做,其中有一個processLocale()方法,在第一次請求時會建立session對象,而當請求轉發到咱們的Action時,不管如何,session對象已經存在了。
因此默認狀況下,不管咱們使用request.getSession()[等同於request.getSession(true)],仍是request.getSession(false),都必定會獲得一個session對象,而不多是null。
換句話說,默認狀況下,咱們是不用故意寫request.getSession(false)的,沒意義。session
若是不但願ActionServlet默認建立session,而由咱們本身控制session的建立的話,能夠經過struts-config.xml文件的配置實現。
<controller locale="true"></controller>,這個配置若是咱們沒有添加在struts-config.xml中,則默認至關於locale="true"
若是咱們要ActionServlet默認不建立session,那麼就設置locale="false"就能夠了。框架
以上爲我的理解,有不一樣意見,歡迎討論。.net
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wts/archive/2009/12/31/5111617.aspxxml