Servlet基礎梳理(四),servlet基礎梳理

來源:互聯網
上載者:User

Servlet基礎梳理(四),servlet基礎梳理

本篇說一下session和路徑的問題。

session:

是一種在伺服器端儲存http狀態資訊的方案,目前有兩種實現方式:基於Cookie或者URL重寫。

      基於cookie:第一次訪問伺服器,伺服器給響應的cookie中帶有sessionid,再次請求時把cookie帶回。匹配sessionID。

      URL重寫:在請求的url中將sessionid以參數形式進行提交,伺服器擷取並進行匹配。action="<%response.encodeURL("welcome.jsp")%>"

建立時機:

   並非第一次訪問伺服器jsp都會建立session,如果jsp設定session=false不建立

   如果訪問的頁面不是第一次訪問伺服器的第一個資源,那麼返回本次會話的session,自身不再建立

   如果第一次訪問的是Servlet,只有調用request.getsession()或request.getsession(true)才會建立session。

銷毀:

    調用session.invalidate()直接銷毀

    卸載web應用

    超過session的到期時間預設半個小時:(session.getMaxInactiveInterval());可以設定(session.setMaxInactiveInterval()),在  web.xml中設定,時間單位為分鐘。

對於session,最重要的兩個方法:session.setAttribute(arg0, arg1);session.getAttribute(arg0)。

 URL路徑:

     開發中盡量使用絕對路徑,因為絕對路徑一定沒問題,相對路徑可能有問題。寫法如下:

 

response.sendRedirect(request.getContextPath()+"/shoppingCart/person.jsp");

 在Servlet/jsp中,因為路徑中/問題引發很多重路徑問題,這裡主要說一下/的兩種含義:

避免這些錯誤的方式就是使用絕對路徑。

最後提一下①表單重複提交和驗證碼的機制問題:

   因為這兩個啟動並執行原理相同,基本上一起提一下:

   1 在表單原始介面產生驗證碼圖片(①產生字串),並把圖片中字元放入session

   2 表單中輸入驗證碼(①不用輸入自己產生)

   3 Servlet中擷取兩個值比較,一致則受理成功,銷毀session中驗證碼,不一致則打回重新

OK,這一篇暫時說這些吧



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.