javascript
Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】
- Java后端 學習路線 筆記匯總表【黑馬程序員】
目錄
第3節(jié) Cookie案例
會話技術_Cookie_案例_分析
會話技術_Cookie_案例_代碼實現(xiàn)
HTTP狀態(tài)碼500——非法參數(shù)異常
URL編解碼
第4節(jié) JSP改造Cookie案例
JSP_概念
JSP_原理
JSP_腳本
JSP_入門學習
JSP_案例_改造Cookie案例
更改jsp代碼模板
第3節(jié) Cookie案例
會話技術_Cookie_案例_分析
cookie
 1. 概念:客戶端會話技術,將數(shù)據(jù)保存到客戶端。
 2. 快速入門
 3. 實現(xiàn)原理
 4. cookie的細節(jié)
 ?? ?1. 一次可不可以發(fā)送多個cookie?
 ?? ?2. cookie在瀏覽器中保存多長時間?
 ?? ?3. cookie能不能存中文?
 ?? ?4. cookie共享問題?
 ?? ?5. Cookie的特點和作用
? ? 6. 案例:記住上一次訪問時間
 ? ? ? ? 1. 需求:
 ? ? ? ? ? ? 1. 訪問一個Servlet,如果是第一次訪問,則提示:您好,歡迎您首次訪問。
 ? ? ? ? ? ? 2. 如果不是第一次訪問,則提示:歡迎回來,您上次訪問時間為:顯示時間字符串
 ? ? ? ? 2. 分析:
 ? ? ? ? ? ? 1. 可以采用Cookie來完成
 ? ? ? ? ? ? 2. 在服務器中的Servlet判斷是否有一個名為lastTime的cookie
 ? ? ? ? ? ? ? ? 1. 有:不是第一次訪問
 ? ? ? ? ? ? ? ? ? ? 1. 響應數(shù)據(jù):歡迎回來,您上次訪問時間為:2018年6月10日11:50:20
 ? ? ? ? ? ? ? ? ? ? 2. 寫回Cookie:lastTime=2018年6月10日11:50:01
 ? ? ? ? ? ? ? ? 2. 沒有:是第一次訪問
 ? ? ? ? ? ? ? ? ? ? 1. 響應數(shù)據(jù):您好,歡迎您首次訪問
 ? ? ? ? ? ? ? ? ? ? 2. 寫回Cookie:lastTime=2018年6月10日11:50:01
 ? ? ? ? 3. 代碼實現(xiàn):...
會話技術_Cookie_案例_代碼實現(xiàn)
package cn.itcast.cookie;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date;/*** 在服務器中的Servlet判斷是否有一個名為lastTime的cookie* 1. 有:不是第一次訪問* 1. 響應數(shù)據(jù):歡迎回來,您上次訪問時間為:2018年6月10日11:50:20* 2. 寫回Cookie:lastTime=2018年6月10日11:50:01* 2. 沒有:是第一次訪問* 1. 響應數(shù)據(jù):您好,歡迎您首次訪問* 2. 寫回Cookie:lastTime=2018年6月10日11:50:01*/@WebServlet("/cookieTest") public class CookieTest extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//設置響應的消息體的數(shù)據(jù)格式以及編碼response.setContentType("text/html;charset=utf-8");//1.獲取所有CookieCookie[] cookies = request.getCookies();boolean flag = false;//沒有cookie為lastTime//2.遍歷cookie數(shù)組if (cookies != null && cookies.length > 0) {for (Cookie cookie : cookies) {//3.獲取cookie的名稱String name = cookie.getName();//4.判斷名稱是否是:lastTimeif ("lastTime".equals(name)) {//有該Cookie,不是第一次訪問flag = true;//有l(wèi)astTime的cookie//設置Cookie的value//獲取當前時間的字符串,重新設置Cookie的值,重新發(fā)送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("編碼前:" + str_date);//URL編碼str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("編碼后:" + str_date);cookie.setValue(str_date);//設置cookie的存活時間cookie.setMaxAge(60 * 60 * 24 * 30);//一個月response.addCookie(cookie);//響應數(shù)據(jù)//獲取Cookie的value,時間String value = cookie.getValue();System.out.println("解碼前:" + value);//URL解碼:value = URLDecoder.decode(value, "utf-8");System.out.println("解碼后:" + value);response.getWriter().write("<h1>歡迎回來,您上次訪問時間為:" + value + "!</h1>");break;}}}if (cookies == null || cookies.length == 0 || flag == false) {//沒有,第一次訪問//設置Cookie的value//獲取當前時間的字符串,重新設置Cookie的值,重新發(fā)送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("編碼前:" + str_date);//URL編碼str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("編碼后:" + str_date);Cookie cookie = new Cookie("lastTime", str_date);//設置cookie的存活時間cookie.setMaxAge(60 * 60 * 24 * 30);//一個月response.addCookie(cookie);response.getWriter().write("<h1>您好,歡迎您首次訪問!</h1>");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }HTTP狀態(tài)碼500——非法參數(shù)異常
URL編解碼
??
第4節(jié) JSP改造Cookie案例
JSP_概念
JSP:入門學習
 1. 概念:
 ?? ?* Java Server Pages: java服務器端頁面
 ?? ??? ?* 可以理解為:一個特殊的頁面,其中既可以指定定義html標簽,又可以定義java代碼。
 ?? ??? ?* 用于簡化書寫!!!
JSP_原理
JSP:入門學習
 1. 概念
2. 原理
 ?? ?* JSP本質上就是一個Servlet。
??
JSP_腳本
JSP:入門學習
 1. 概念
 2. 原理
3. JSP的腳本:JSP定義Java代碼的方式
 ?? ?1. <% ?代碼 %>:定義的java代碼,在service方法中。service方法中可以定義什么,該腳本中就可以定義什么。
 ?? ?2. <%! 代碼 %>:定義的java代碼,在jsp轉換后的java類的成員位置。
 ?? ?3. <%= 代碼 %>:定義的java代碼,會輸出到頁面上。輸出語句中可以定義什么,該腳本中就可以定義什么。
4. JSP的內置對象
JSP_入門學習
JSP:入門學習
 1. 概念
 2. 原理
3. JSP的腳本:JSP定義Java代碼的方式
4. JSP的內置對象:
 ?? ?* 在jsp頁面中不需要獲取和創(chuàng)建,可以直接使用的對象
 ?? ?* jsp一共有9個內置對象。
 ?? ?* 今天學習3個:
 ?? ??? ?* request:請求
 ?? ??? ?* response:相應
 ?? ??? ?* out:字符輸出流對象。可以將數(shù)據(jù)輸出到頁面上。和response.getWriter()類似
 ?? ??? ??? ?* response.getWriter()和out.write()的區(qū)別:
 ?? ??? ??? ??? ?* 在tomcat服務器真正給客戶端做出響應之前,會先找response緩沖區(qū)數(shù)據(jù),再找out緩沖區(qū)數(shù)據(jù)。
 ?? ??? ??? ??? ?* response.getWriter()數(shù)據(jù)輸出永遠在out.write()之前
JSP_案例_改造Cookie案例
JSP:入門學習
html代碼 與 Java代碼 嵌套。
<%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.net.URLEncoder" %> <%@ page import="java.net.URLDecoder" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>itcast</title> </head> <body><%//1.獲取所有CookieCookie[] cookies = request.getCookies();boolean flag = false;//沒有cookie為lastTime//2.遍歷cookie數(shù)組if (cookies != null && cookies.length > 0) {for (Cookie cookie : cookies) {//3.獲取cookie的名稱String name = cookie.getName();//4.判斷名稱是否是:lastTimeif ("lastTime".equals(name)) {//有該Cookie,不是第一次訪問flag = true;//有l(wèi)astTime的cookie//設置Cookie的value//獲取當前時間的字符串,重新設置Cookie的值,重新發(fā)送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("編碼前:" + str_date);//URL編碼str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("編碼后:" + str_date);cookie.setValue(str_date);//設置cookie的存活時間cookie.setMaxAge(60 * 60 * 24 * 30);//一個月response.addCookie(cookie);//響應數(shù)據(jù)//獲取Cookie的value,時間String value = cookie.getValue();System.out.println("解碼前:" + value);//URL解碼:value = URLDecoder.decode(value, "utf-8");System.out.println("解碼后:" + value);%><h1>歡迎回來,您上次訪問時間為:<%=value%></h1><input><%break;}}}if (cookies == null || cookies.length == 0 || flag == false) {//沒有,第一次訪問//設置Cookie的value//獲取當前時間的字符串,重新設置Cookie的值,重新發(fā)送cookieDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String str_date = sdf.format(date);System.out.println("編碼前:" + str_date);//URL編碼str_date = URLEncoder.encode(str_date, "utf-8");System.out.println("編碼后:" + str_date);Cookie cookie = new Cookie("lastTime", str_date);//設置cookie的存活時間cookie.setMaxAge(60 * 60 * 24 * 30);//一個月response.addCookie(cookie);%><h1>您好,歡迎您首次訪問</h1><span></span><%}%><input> </body> </html>更改jsp代碼模板
是日已過,命亦隨減,如少水魚,斯有何樂。當勤精進,如救頭燃,但念無常,慎勿放逸。——佛教偈語
總結
以上是生活随笔為你收集整理的Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Cookie和Session-学习笔记0
- 下一篇: Cookie和Session-学习笔记0
