日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA web 会话技术CookieSession

發布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA web 会话技术CookieSession 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?會話技術,指的是從打開瀏覽器開始訪問某個站點,到關閉瀏覽器的整個過程,稱為一次會話。

會話技術分為Cookie和Session。

Cookie是指 將數據存儲在本地,減少服務器的存儲壓力,安全性不好,客戶端可清除Cookie。

Session是指將數據存儲在服務器,增加服務器的存儲壓力,安全性高,客戶端不可清除。

一、Cookie技術

? (一)、 服務器端怎么發送一個Cookie到客戶端

? 1、創建一個Cookie

? Cookie cookie = new Cookie( String cookieName,String cookieValue );

? Cookie 中不能存儲中文。

2 、設置Cookie的在客戶端的持久時間

?cookie.setMaxAge(int seconds)

如cookie.serMaxAge(60*60) 存儲60*60秒,過期后瀏覽器自動刪除cookie。

3、 設置Cookie的存儲路徑

//4。為cookie設置攜帶路徑cookie.setPath("/WEB05/SendCookieServlet");//只有WEB05下所有都攜帶cookie.setPath("/WEB05");//服務器都攜帶cookcookie.setPath("/");//產生cookie路徑下的所有資源都攜帶cookie.setPath("");

4、向客戶端發送Cookie

response.addCookie(cookie);

5、刪除客戶端的Cookie

如果刪除已存在的Cookie信息,只要創建一個同名同路徑且持久時間為0的Cookie覆蓋就可以了。

?

? ?(二)、服務器端怎么接受客戶端攜帶Cookie的發送。

Cookie是以請求頭的方式發送的,Cookie:“name=zhangsan”

1、通過request獲得Cookie

? Cookie[] cookie = request.getcookies();

2、 遍歷cookie數組,獲得想要的 cookie信息。

?

for(Cookie cookie : cookies){ if(cookie.getName().equal(cookieName)){ String cookieValue = cookie.getValue(); } }

實例: 如何用Cookie獲得網站的上一次訪問時間:

package com.oracle.web;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //顯示上次訪問時間Servlet public class LastAccessServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//當前時間String time=sdf.format(date);//1.創建Cookie對象,記錄當前最新訪問時間Cookie cookie=new Cookie("lastAccessTime",time);cookie.setMaxAge(60*10);//發送Cookie到客戶端 response.addCookie(cookie);//2.獲取客戶端攜帶的CookieString lastAccessTime=null;Cookie[] cookies=request.getCookies();if(cookies!=null){for(Cookie c:cookies){if(c.getName().equals("lastAccessTime")){lastAccessTime=c.getValue();}}}//解決中文亂碼response.setContentType("text/html;charset=utf-8");if(lastAccessTime==null){response.getWriter().write("你是第一次訪問!");}else{response.getWriter().write("你上一次訪問的時間為"+lastAccessTime);}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }

?

Session技術

Session技術是將數據存儲在服務器端的技術,會為每個客戶端都創建一塊內存空間????? 存儲客戶的數據,但客戶端需要每次都攜帶一個標識ID去服務器中尋找屬于自己的內???? 存空間。所以說Session的實現是基于Cookie,Session需要借助于Cookie存儲客???? 戶的唯一性標識JSESSIONID。

?一、獲得Session對象

?

HttpSession session = request.getSession();

?

二、? 怎樣向session中存取數據(session也是一個域對象)

session.setAttribute(String name,Object obj);

session.getAttribute(String name);

session.removeAttribute(String name);

?

三、 Session的生命周期

創建:第一次執行request.getSession()時創建

銷毀:

1)服務器(非正常)關閉時

2)session過期/失效(默認30分鐘)

?

問題:時間的起算點 從何時開始計算30分鐘?

從不操作服務器端的資源開始計時

?

可以在工程的web.xml中進行配置

<session-config>

??????? <session-timeout>30</session-timeout>

</session-config>

3)手動銷毀session

session.invalidate();

?

作用范圍:

默認在一次會話中,也就是說在,一次會話中任何資源公用一個session對象

轉載于:https://www.cnblogs.com/time-to-despair/p/9842589.html

總結

以上是生活随笔為你收集整理的JAVA web 会话技术CookieSession的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。