色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Cookie在Java中的使用

瀏覽:111日期:2022-08-12 11:44:08
目錄什么是CookieCookie的必要Cookie如何工作模擬用戶登錄什么是Cookie

在現實生活中,當顧客第一次在超市購物,通常服務員會詢問是否辦理一張會員卡來積分以便日后折扣等福利活動。會員卡會記錄顧客的姓名、積分、消費記錄等信息,如果顧客要參與超市的福利活動等都需要提供會員卡,服務員在后臺刷卡查詢即可知道是哪個用戶在使用會員卡。

現在將現實生活中的案例中的角色互換一下。

當用戶沒有在Web服務器登記過用戶信息,而使用網站提供的需登錄的服務時,服務器會告知瀏覽器跳轉到登陸頁面進行用戶信息的登記操作,登錄完成之后,瀏覽器向服務器發起一次登陸請求,服務器將用戶的信息存儲到Cookie中,并響應給瀏覽器新的Cookie,瀏覽器得到Cookie之后將它存儲到緩存區。

當用戶在Web服務器登記過用戶信息,而使用網站提供的需登錄的服務時,服務器會通過請求中攜帶的Cookie判斷此次請求時哪個用戶,并以這個Cookie的信息去查詢數據庫等操作,完成用戶需要的服務。

Cookie的必要

HTTP是無狀態協議,意味著服務器不會在兩個請求之間保留任何數據(狀態)。由于Web服務器要面對很多用戶的并發訪問,為了提高Web服務器對并發訪問的處理能力,在設計HTTP協議時規定Web服務器發送HTTP應答報文和文檔時,不保存發出請求的Web瀏覽器進程的任何狀態信息,從而減輕服務器端的負載,同時無狀態也減小了HTTP請求的開銷。

但是在必要的場景,如登陸、購物等都需要保存用戶的狀態(信息),就不得不用到Cookie。

Cookie如何工作

第一次訪問服務器,沒有Cookie,向服務器登記新的Cookie。

Cookie在Java中的使用

第二次及以后訪問服務器,有Cookie,無需登記新的Cookie。

Cookie在Java中的使用

模擬用戶登錄

需求分析:

當用戶訪問homepage.jsp時,判斷請求中是否攜帶username的Cookie,如果不存在就通知瀏覽器跳轉到登錄頁面進行用戶信息的登記。當用戶再次訪問homepae.jsp時,不會被攔截,可以讓用戶訪問個人主頁頁面。

編寫代碼:

個人主頁的Servlet

@WebServlet(name = 'homepageServlet', urlPatterns = '/homepage')public class HomePageServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie[] cookies = req.getCookies();for (Cookie cookie : cookies) { if (!cookie.getName().equals('username')) {// 如果用戶是第一次訪問個人主頁,就通知瀏覽器跳轉到登陸頁面進行登錄resp.sendRedirect(req.getContextPath() + '/login.jsp'); }} }}

用戶登錄的Servlet

@WebServlet(name = 'loginServlet', urlPatterns = '/login')public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 獲取http請求參數usernameString username = request.getParameter('username');// 設置響應內容的類型response.setContentType('text/html;charset=utf-8');// 獲取Cookie值Cookie[] cookies = request.getCookies();for (Cookie cookie : cookies) { if (!cookie.getName().equals('username')) { // 用戶第一次訪問Cookie userCookie = new Cookie('username', username);userCookie.setMaxAge(300);response.addCookie(userCookie); } response.sendRedirect(request.getContextPath() + '/homepage.jsp');} }}

打開瀏覽器,實驗一下:

Cookie在Java中的使用

在第一次訪問homepage頁面時,看到瀏覽器緩存區并沒有名為username的Cookie,只有當登錄之后,瀏覽器緩存區才有了這個Cookie。

以上就是Cookie在Java中的使用的詳細內容,更多關于Cookie的使用的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩在线一区二区三区免费视频 | 久久久成人啪啪免费网站 | 狠狠色狠狠色综合日日32 | 亚洲精品欧洲一区二区三区 | 精品国产成人高清在线 | 亚洲男女视频 | 色噜噜亚洲男人的天堂 | 国产高清精品自在久久 | 国产精品自拍视频 | 日韩美女网站在线看 | 呦女亚洲一区精品 | xx欧美老妇| 91日本在线观看亚洲精品 | 99久久精品国产一区二区三区 | 成人在线不卡视频 | 日韩欧美中文字幕一区二区三区 | 国产成人精品女人不卡在线 | 国产精品久久久久久久久99热 | 国产三级在线 | 性欧美久久 | 色综合视频一区二区观看 | 丝袜一级片| 欧美jizzhd极品欧美 | 欧美成人影院免费观 | 国产精品久久久久久久久福利 | 天堂1在线观看 | 看性过程三级视频在线观看 | 国产欧美日韩图片一区二区 | 姐姐真漂亮在线视频中文版 | 欧美成人激情在线 | 国产资源免费 | 色综合久久88色综合天天小说 | 免费成人在线网站 | 欧美成人在线影院 | 国产欧美日韩在线观看一区二区三区 | 美女视频黄视大全视频免费网址 | 成人性一级视频在线观看 | 色老汉丁香网 | 欧美一区二区三区在线播放 | 女人毛片a毛片久久人人 | 高清欧美不卡一区二区三区 |