servlet中的數據存儲

      網友投稿 832 2025-03-31

      Servlet基礎中,我們:

      用以下幾種方式實現數據存儲和共享:

      1)在客戶端頁面和服務器端程序之間,用request中的getParameter()方法共享數據

      2)在請求和請求之間,可以用get/setAttribute方法來共享數據(轉發的時候)

      3)同一個Servlet對象,可以用servletConfig(xml)來共享數據(主要是獲取配置信息)

      getServletName();獲取servlet的名稱,也就是我們在web.xml中配置的servlet-name

      getServletContext(); 獲取ServletContext對象

      getInitParameter(String); 獲取在servlet中初始化參數的值。這里注意與全局初始化參數的區分。這個獲取的只是在該servlet下的初始化參數

      getInitParameterNames(); //獲取在Servlet中所有初始化參數的名字,也就是key值

      4)在整個web應用范圍內,通過ServletContext的set/getAttribute方法共享數據

      ServletContext: 代表的是整個應用。一個應用只有一個ServletContext對象。是單實例。

      在一定范圍內(當前應用),使多個Servlet共享數據。

      現在我們說一個新的話題:會話管理

      session/cookie

      什么是會話?

      會話可簡單理解為:用戶開一個瀏覽器,點擊多個超鏈接,訪問服務器多個web資源,然后關閉瀏覽器,整個過程稱之為一個會話。

      ?會話過程中要解決的一些問題?

      –每個用戶不可避免各自會產生一些數據,程序要想辦法為每個用戶保存這些數據。

      –例如:用戶點擊超鏈接通過一個servlet購買了一個商品,程序應該想辦法保存用戶購買的商品,以便于用戶點結帳servlet時,結帳servlet可以得到用戶購買的商品為用戶結帳。

      ?Cookie

      –Cookie是客戶端技術,程序把每個用戶的數據以cookie的形式寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶著各自的數據去。這樣,web資源處理的就是用戶各自的數據了。

      ?HttpSession

      –Session是服務器端技術,利用這個技術,服務器在運行時可以為每一個用戶的瀏覽器創建一個其獨享的HttpSession對象,由于session為用戶瀏覽器獨享,所以用戶在訪問服務器的web資源時,可以把各自的數據放在各自的session中,當用戶再去訪問服務器中的其它web資源時,其它web資源再從用戶各自的session中取出數據為用戶服務。

      總結:cookie存在客戶端,session存在服務器端

      cookie:

      API:

      public Cookie(String name,String value)

      setValue與getValue方法

      setMaxAge與getMaxAge方法 (秒)

      setPath與getPath方法

      setDomain與getDomain方法

      getName方法

      使用cookie的大概步驟:

      1)創建并向客戶端發送Cookie

      ?創建Cookie對象

      –調用Cookie的構造方法,給出Cookie的名稱和Cookie的值,二者都是字符串

      ?Cookie c = new Cookie(“userName”,”a1234”)

      ?設置最大時效

      –如果要告訴瀏覽器將Cookie存儲到磁盤上,而非僅保存在內存中,使用setMaxAge方法(參數為秒數)

      –c.setMaxAge(60*60*24*7)//一周(正數)

      ?將Cookie放入到HTTP響應中

      –使用response.addCookie(c)

      –如沒有這一步,將不會有任何Cookie被發送到瀏覽器

      2)從客戶端讀取Cookie

      Cookie[] cookies = request.getCookies();

      if(cookies != null){

      for(Cookie cookie : cookies){

      if("userId".equals(cookie.getName())){

      //doSomethingWith(cookie.getValue()); }

      }

      servlet中的數據存儲

      }

      session:

      同一顏色為一次邏輯,順序為1,2,3,4

      session 主要API:

      ?getAttribute()

      –從會話對象中提取出一個之前存儲的屬性值

      ?如果沒有找到與名稱相關聯的值,則返回null

      ?setAttribute()

      –設置會話對象的屬性名稱和屬性值

      ?removeAttribute()

      –移除與名稱關聯的值

      ?getAttributeNames()

      –返回會話中所有屬性的名稱

      ?getId()

      –返回唯一的標識符

      使用session的大概步驟:

      //獲取HttpSession對象,設置相關屬性

      HttpSession session = req.getSession();

      session.setAttribute("userName", userName);

      //獲取HttpSession對象,取出相關屬性

      HttpSession session = req.getSession();

      session.getAttribute("userName", userName);

      分享一張尚學堂的我覺得很好的圖

      Servlet

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何找設計師訂做PPT(如何尋找設計師)
      下一篇:生產計劃統計報表模板圖片(生產統計報表的模板)
      相關文章
      亚洲香蕉久久一区二区| 亚洲1区1区3区4区产品乱码芒果| 伊人久久综在合线亚洲2019| 亚洲无码日韩精品第一页| 国产精品亚洲综合一区在线观看 | 国产亚洲精品91| 亚洲AV无码国产一区二区三区| 在线a亚洲老鸭窝天堂av高清| 亚洲AV无码码潮喷在线观看| 亚洲精品无码精品mV在线观看| 国产亚洲精品AA片在线观看不加载| 亚洲美女在线国产| 国产成人高清亚洲| 国产av无码专区亚洲av果冻传媒 | 亚洲国产成人久久精品影视| 久久久久久久尹人综合网亚洲| 亚洲色少妇熟女11p| 亚洲中文无码永久免费| 亚洲中文无码永久免费| 亚洲AV噜噜一区二区三区| 亚洲AV成人无码网天堂| 国产成人亚洲精品电影| 亚洲?v无码国产在丝袜线观看| 亚洲国产精品一区二区三区久久| 亚洲精品成人片在线观看| 自拍偷自拍亚洲精品第1页 | 亚洲成年人啊啊aa在线观看| 亚洲精品久久久www| 国产aⅴ无码专区亚洲av麻豆 | 亚洲成色www久久网站夜月| 国产aⅴ无码专区亚洲av| 久久久久久亚洲精品| 亚洲美女免费视频| 亚洲成a人片在线观看精品| 亚洲色少妇熟女11p| 国产天堂亚洲国产碰碰| AV在线播放日韩亚洲欧| 亚洲高清专区日韩精品| 亚洲自偷精品视频自拍| 精品国产成人亚洲午夜福利| 亚洲aⅴ无码专区在线观看春色 |