傳智播客168期JavaEE就業班(第十一天 cookie session)
* 課程回顧:
* response物件(響應)
* 響應行
* 狀態碼 :setStatus(int a) 設定狀態碼 302重定向 304控制快取
* 響應頭
* setHeader() 一個key對應一個value
* addHeader() 一個key對應多個value
* 響應體
* getOutputStream() 位元組輸出流
* getWriter() 字元輸出流
* 案例:重定向到登陸頁面
設定狀態碼(302) 設定頭location
重定向的方法:sendRedirect("客戶端絕對路徑"); 寫專案名
* 頁面的定時重新整理
使用refresh頭完成頁面的定時重新整理 setHeader("refresh","5;url=/day10/xxx");
使用HTML的標籤<meta>
* 禁用瀏覽器的快取(設定三個頭資訊 CEP)
* 向頁面輸出中文亂碼的問題
* 位元組
設定瀏覽器開啟檔案時的編碼
response.setHeader("Content-Type","text/html;charset=UTF-8");
獲取字串的位元組陣列
"中文".getBytes("UTF-8");
* 字元
* 設定瀏覽器開啟檔案時的編碼
response.setHeader("Content-Type","text/html;charset=UTF-8");
* 設定response緩衝區的編碼(預設是ISO-8859-1)
response.setCharacterEncoding("UTF-8");
* 簡寫的方式
response.setContentType("text/html;charset=UTF-8");
* 檔案下載
* 通過IO流進行讀取
* 設定頭資訊 setHeader("Content-Disposition","attachment;filename="+檔名稱); 以附件的形式開啟
* 驗證碼(用到哪些類)
* 在記憶體中生成圖片 BufferedImage
* 獲取畫筆的物件
* 畫一些東西
* 把圖片輸出客戶端 ImageIO.write(BufferedImage,"jpg",response.getOutputStream());
* 需要驗證加入圖片中 通過img標籤的src的屬性
* request物件(請求)
* 獲取客戶機的資訊
request.getRemoteAddr() 獲取ip
request.getMethod() 獲取請求方式
request.getContextPath() 獲取虛擬路徑
* 獲取請求引數(*****)
request.getParameter("表單中name屬性的值");
request.getParameterValues(); 獲取核取方塊的內容
request.getParameterMap() 獲取鍵值對的形式
* request獲取中文亂碼的問題
* post
* 設定request緩衝區的編碼
request.setCharacterEncoding("UTF-8");
* get
* 通過String的構造方式
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
* request域物件(*****)
* ServletContext域物件:代表整個WEB應用。
* request域:一次請求範圍內。
* 重定向和轉發區別
* 重定向兩次請求,兩次響應,轉發一次。
* 重定向位址列發生了變化,轉發位址列沒變
* 重定向不能使用request傳值,轉發就可以。
* 重定向可以定向到任何資源。轉發只能是系統內部。
==============================================================================================================
* JSP、EL表示式的入門(要用)
* Servlet/JSP 是兩種動態的WEB資源的兩種技術。
* 使用Servlet生成HTML的頁面
response.getWriter("<form action='' method='post'>");
response.getWriter("<input type='text' name='username'>");
* JSP簡介
* java server pages java伺服器端的網頁們,是在伺服器端執行。
* JSP不僅可以寫HTML+java程式碼+JSP自己的程式碼
* JSP的執行原理(*****):JSP -- 翻譯成Servlet -- 編譯 -- 訪問
* JSP的指令碼元素(JSP的頁面可以編寫java程式碼)
<%! %> :定義類、定義變數、定義方法(不常用) 成員變數。
<%= %> :輸出語句(輸出到頁面,不能有分號)
<% %> :定義變數、語句
* EL快速入門
* 獲取域物件中的內容 request.setAttribute("xx","yy");
${xx}
* 兩個會話的技術
* 會話概念:開啟瀏覽器,可以訪問WEB資源,多次訪問WEB資源,關閉瀏覽器,整個過程一次會話。
* 購買商品
使用者點選超連結通過一個servlet購買了一個商品,程式應該儲存使用者購買的商品,
以便於使用者點結帳servlet時,結帳servlet可以得到使用者商品為使用者結帳。
* 把商品存入到ServletContext獲取request域中呢?
* cookie和seesion的原理
看圖02
* cookie
* 顯示上次的訪問時間(案例)
* 第一次訪問,輸出歡迎,在伺服器端,記錄當前的時間,把當前的時間通過cookie回寫到瀏覽器。
* 第二次訪問,會帶著上次的時間,獲取時間,可以把時間顯示到頁面上,記錄當前的時間,再把回寫瀏覽器。
輸出上次的訪問時間。
* Cookie的API
* cookie的構造方式 Cookie(String name, String value)
* String getName() 獲取cookie的名稱
* String getValue() 獲取cookie的值
* void setMaxAge(int expiry) :設定有效時間
* 失效cookie setMaxAge(0); 前提條件:設定有效路徑(和之前設定過相同)
* void setPath(String uri) :設定有效路徑
* 預設的有效路徑()
* 配置 /last 預設路徑 /day11
* 配置 /servlet/last 預設路徑 /day11/servlet
* void setDomain(String pattern) :設定有效域名
* www.sina.com.cn
* sports.sina.com.cn
* xxx.sina.com.cn
* 設定有效域名 setDomain(".sian.com.cn");
* 會話級別的cookie:預設儲存到瀏覽器的記憶體中。
* 持久的cookie:把cookie儲存到磁碟上。通過setMaxAge(int a)進行設定。
* 顯示使用者上次訪問過的商品資訊(需求)
* 1.獲取請求引數
* 2.獲取cookie陣列,通過指定的名稱(自己指定)查詢cookie
* 3.如果cookie==null,第一次訪問
* * 如果是第一次訪問,建立cookie,回寫瀏覽器
* 4.如果cookie!=null,不是第一次訪問
* * 如果不是第一次訪問,說明我的cookie中已經存在id
* * 判斷,當前的id是否已經存在cookie的中value
* * 如果存在,不用操作
* * 如果不存在,在後面追加(product=1,2)
* 5.重定向到商品頁面
* session(伺服器)
* cookie基於客戶端,不安全,並且大小和個數的限制。
* session域物件,範圍一次會話範圍,存個人相關的資料。
* setAttribute(String name, Object value)
* Object getAttribute(String name)
* String getId() 獲取seesion的唯一的ID
* void invalidate() 銷燬的seesion
* 完成簡單的購物車
* 購物車 Map<String,Integer> cart 購物車,把購物車存入seesion中。
* 獲取資料
* 判斷是否是第一次訪問 session.getAttribute("cart");
* 如果第一次訪問,cart 建立一個購物車,放入商品的名稱和數量
* 如果不是第一次訪問,cart!=null
判斷是否包含該商品?
* 如果包含,數量拿出來,++,放回去,存入seesion中
* 如果不包含,正常放入到購物車中。存入seesion中
* response物件(響應)
* 響應行
* 狀態碼 :setStatus(int a) 設定狀態碼 302重定向 304控制快取
* 響應頭
* setHeader() 一個key對應一個value
* addHeader() 一個key對應多個value
* 響應體
* getOutputStream() 位元組輸出流
* getWriter() 字元輸出流
* 案例:重定向到登陸頁面
設定狀態碼(302) 設定頭location
重定向的方法:sendRedirect("客戶端絕對路徑"); 寫專案名
* 頁面的定時重新整理
使用refresh頭完成頁面的定時重新整理 setHeader("refresh","5;url=/day10/xxx");
使用HTML的標籤<meta>
* 禁用瀏覽器的快取(設定三個頭資訊 CEP)
* 向頁面輸出中文亂碼的問題
* 位元組
設定瀏覽器開啟檔案時的編碼
response.setHeader("Content-Type","text/html;charset=UTF-8");
獲取字串的位元組陣列
"中文".getBytes("UTF-8");
* 字元
* 設定瀏覽器開啟檔案時的編碼
response.setHeader("Content-Type","text/html;charset=UTF-8");
* 設定response緩衝區的編碼(預設是ISO-8859-1)
response.setCharacterEncoding("UTF-8");
* 簡寫的方式
response.setContentType("text/html;charset=UTF-8");
* 檔案下載
* 通過IO流進行讀取
* 設定頭資訊 setHeader("Content-Disposition","attachment;filename="+檔名稱); 以附件的形式開啟
* 驗證碼(用到哪些類)
* 在記憶體中生成圖片 BufferedImage
* 獲取畫筆的物件
* 畫一些東西
* 把圖片輸出客戶端 ImageIO.write(BufferedImage,"jpg",response.getOutputStream());
* 需要驗證加入圖片中 通過img標籤的src的屬性
* request物件(請求)
* 獲取客戶機的資訊
request.getRemoteAddr() 獲取ip
request.getMethod() 獲取請求方式
request.getContextPath() 獲取虛擬路徑
* 獲取請求引數(*****)
request.getParameter("表單中name屬性的值");
request.getParameterValues(); 獲取核取方塊的內容
request.getParameterMap() 獲取鍵值對的形式
* request獲取中文亂碼的問題
* post
* 設定request緩衝區的編碼
request.setCharacterEncoding("UTF-8");
* get
* 通過String的構造方式
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
* request域物件(*****)
* ServletContext域物件:代表整個WEB應用。
* request域:一次請求範圍內。
* 重定向和轉發區別
* 重定向兩次請求,兩次響應,轉發一次。
* 重定向位址列發生了變化,轉發位址列沒變
* 重定向不能使用request傳值,轉發就可以。
* 重定向可以定向到任何資源。轉發只能是系統內部。
==============================================================================================================
* JSP、EL表示式的入門(要用)
* Servlet/JSP 是兩種動態的WEB資源的兩種技術。
* 使用Servlet生成HTML的頁面
response.getWriter("<form action='' method='post'>");
response.getWriter("<input type='text' name='username'>");
* JSP簡介
* java server pages java伺服器端的網頁們,是在伺服器端執行。
* JSP不僅可以寫HTML+java程式碼+JSP自己的程式碼
* JSP的執行原理(*****):JSP -- 翻譯成Servlet -- 編譯 -- 訪問
* JSP的指令碼元素(JSP的頁面可以編寫java程式碼)
<%! %> :定義類、定義變數、定義方法(不常用) 成員變數。
<%= %> :輸出語句(輸出到頁面,不能有分號)
<% %> :定義變數、語句
* EL快速入門
* 獲取域物件中的內容 request.setAttribute("xx","yy");
${xx}
* 兩個會話的技術
* 會話概念:開啟瀏覽器,可以訪問WEB資源,多次訪問WEB資源,關閉瀏覽器,整個過程一次會話。
* 購買商品
使用者點選超連結通過一個servlet購買了一個商品,程式應該儲存使用者購買的商品,
以便於使用者點結帳servlet時,結帳servlet可以得到使用者商品為使用者結帳。
* 把商品存入到ServletContext獲取request域中呢?
* cookie和seesion的原理
看圖02
* cookie
* 顯示上次的訪問時間(案例)
* 第一次訪問,輸出歡迎,在伺服器端,記錄當前的時間,把當前的時間通過cookie回寫到瀏覽器。
* 第二次訪問,會帶著上次的時間,獲取時間,可以把時間顯示到頁面上,記錄當前的時間,再把回寫瀏覽器。
輸出上次的訪問時間。
* Cookie的API
* cookie的構造方式 Cookie(String name, String value)
* String getName() 獲取cookie的名稱
* String getValue() 獲取cookie的值
* void setMaxAge(int expiry) :設定有效時間
* 失效cookie setMaxAge(0); 前提條件:設定有效路徑(和之前設定過相同)
* void setPath(String uri) :設定有效路徑
* 預設的有效路徑()
* 配置 /last 預設路徑 /day11
* 配置 /servlet/last 預設路徑 /day11/servlet
* void setDomain(String pattern) :設定有效域名
* www.sina.com.cn
* sports.sina.com.cn
* xxx.sina.com.cn
* 設定有效域名 setDomain(".sian.com.cn");
* 會話級別的cookie:預設儲存到瀏覽器的記憶體中。
* 持久的cookie:把cookie儲存到磁碟上。通過setMaxAge(int a)進行設定。
* 顯示使用者上次訪問過的商品資訊(需求)
* 1.獲取請求引數
* 2.獲取cookie陣列,通過指定的名稱(自己指定)查詢cookie
* 3.如果cookie==null,第一次訪問
* * 如果是第一次訪問,建立cookie,回寫瀏覽器
* 4.如果cookie!=null,不是第一次訪問
* * 如果不是第一次訪問,說明我的cookie中已經存在id
* * 判斷,當前的id是否已經存在cookie的中value
* * 如果存在,不用操作
* * 如果不存在,在後面追加(product=1,2)
* 5.重定向到商品頁面
* session(伺服器)
* cookie基於客戶端,不安全,並且大小和個數的限制。
* session域物件,範圍一次會話範圍,存個人相關的資料。
* setAttribute(String name, Object value)
* Object getAttribute(String name)
* String getId() 獲取seesion的唯一的ID
* void invalidate() 銷燬的seesion
* 完成簡單的購物車
* 購物車 Map<String,Integer> cart 購物車,把購物車存入seesion中。
* 獲取資料
* 判斷是否是第一次訪問 session.getAttribute("cart");
* 如果第一次訪問,cart 建立一個購物車,放入商品的名稱和數量
* 如果不是第一次訪問,cart!=null
判斷是否包含該商品?
* 如果包含,數量拿出來,++,放回去,存入seesion中
* 如果不包含,正常放入到購物車中。存入seesion中
相關文章
- Python學習資源(傳播智客第15期Python就業和基礎班 AI人工智慧學習班 機器學習班級)Python就業AI人工智慧機器學習
- 傳智播客2018年python基礎班就業班人工智慧深度學習機器學習黑馬15期Python就業班全套培訓教程Python就業人工智慧深度學習機器學習
- 【備忘】傳智播客35期JavaEE工程師從基礎到實戰視訊Java工程師
- 傳智播客Java培訓---JDBCJavaJDBC
- 傳智播客中JavaWeb程式設計任務教程的作業JavaWeb程式設計
- 【傳智播客上海校區】TreeMap原始碼解析原始碼
- 2016傳智播客大資料第三期完整版大資料
- 傳智播客PHP面試題寶典開放下載PHP面試題
- 傳智播客:人工智慧學習線路概況人工智慧
- 軟體工程系得到傳智播客的大力支援軟體工程
- 最新傳智播客nodejs入門到精通(全套視訊)NodeJS
- 傳智播客 java基礎 相關資料 Day1Java
- 陳力:傳智播客古代 珍寶幣 泡泡龍遊戲開發第十三講:盒子的定位例項遊戲開發
- 傳智播客java培訓EMS2010-5-27Java
- 【網路傳輸】Cookie、Session、Token、JWTCookieSessionJWT
- 【備忘】傳智播客第五期視訊教程(5-8月)IOS視訊教程下載iOS
- 馬士兵Java和傳智播客Java系列視訊教程免費下載Java
- 傳智播客上海校區:你為什麼一定要學Python?Python
- 【傳智播客上海校區】java類和物件的關係的通俗理解Java物件
- cookie & sessionCookieSession
- cookie sessionCookieSession
- PHP基礎班+就業班全套視訊學習教程PHP就業
- 傳智播客黑馬.NET+Unity3D 遊戲開發視訊教程Unity3D遊戲開發
- Session與CookieSessionCookie
- cookie 和 sessionCookieSession
- cookie與sessionCookieSession
- session和cookieSessionCookie
- Cookie和SessionCookieSession
- cookie&sessionCookieSession
- 傳智播客C語言視訊第一季(有效下載期為10.1-10.7,10.8關閉)C語言
- Python全棧工程師特訓班五期-直播回放-CSDN就業班-專題視訊課程Python全棧工程師就業
- 第十一天
- Java就業班day09_xml&tomcatJava就業XMLTomcat
- 傳智播客上海校區受邀參與“2017華為雲技術私享會
- Cookie & Session詳解CookieSession
- 理解 cookie、session、tokenCookieSession
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- cookie、session、web storageCookieSessionWeb