//這部分主要是CookieSession的筆記部分/** //獲取來訪的客戶端類型String clientTye=req.getHeader("User-Agent");//如果是火狐瀏覽器,那么使用以下代碼if(clientTye.contains("Firefox")){fileName=DownLoadUtil.base64EncodeFileName(fileName);}else{//IE,或者是谷歌瀏覽器//對中文的名字進行編碼處理fileName=URLEncoder.encode(fileName,"UTF-8");}*///DownLoadUtil部分是Base64的代碼部分。如下/** //Base4加密解密方式public class DownLoadUtil {public static String base64EncodeFileName(String fileName) {BASE64Encoder base64Encoder = new BASE64Encoder();try {return "=?UTF-8?B?"+ new String(base64Encoder.encode(fileName.getBytes("UTF-8"))) + "?=";} catch (UnsupportedEncodingException e) {e.printStackTrace();throw new RuntimeException(e);}} }*///重定向問題的兩種寫法//1.早期寫法:/*設置狀態碼?重新定位狀態碼resp.setStatus(302);定位跳轉的位置是哪一個頁面resp.setHeader("location","sucess-login.html");2.直接跳轉的寫法跳轉到成功的界面resp.sendRedirect("sucess-login.html");*//*######請求轉發的問題* //請求轉發的寫法://req.getRequestDispatcher("sucess-login.html").forward(req, resp);*//** ###Cookie學習筆記* 直譯餅干的意思,其實是一份小數據,是服務器給客戶端的,并且存在客戶端上的一份小數據 * * 應用場景:自動登錄,瀏覽記錄,購物車* * ###為什么要有這個Cookie?* http的請求是無狀態。客戶端與服務器在通訊的時候,是無狀態的,其實就是客戶端在第二次來訪的時候,服務器根本不知道* 這個客戶端以前有沒有來訪問過。為了更好的用戶體驗,更好的交互。* 其實從公司層面講,就是為了更好的收集客戶信息* * * ###Cookie怎么用?* 創建CookieDemo01* 添加Cookie給客戶* 1.在響應的時候,添加Cookie* Cookie cookie=new Cookie("name", "zyz");* 給響應添加一個cookie* resp.addCookie(cookie);* * 2客戶端收到的信息里面,響應頭中多了一個字段Set-Cookie* * * *###獲取客戶端帶過來的Cookie* //獲取客戶端帶過來的cookieCookie[] cookies=req.getCookies();if(cookies!=null){for(Cookie c:cookies){String cookieName=c.getName();String cookieValue=c.getValue();System.out.println(cookieName+"=="+cookieValue);}}###cookie的有效期, 默認情況下,關閉瀏覽器后,Cookie就沒有了。expiry:有效----------->有效值以秒計算 正值:表示在這個數字之后,cookie將會失效 負值,表示關閉瀏覽器,那么cookie就會失效,默認是值是-1####常用方法 //設置Cookie的周期cookie.setMaxAge(60);//賦值新的值//cookie.setValue(newValue);//用于指定只有請求了指定的域名,才會帶上該cookie//cookie.setDomain("");//只有訪問該域名下的cookieDemo的這個路徑地址才會帶cookie//cookie.setPath("/cookieDemo");###例子---->顯示最近訪問的時間 獲取帶過來的cookie1.沒有cookie第一次登錄1輸出登錄成功或者失敗2給客戶端添加cookienew Cookie("last",時間)2有cookie第二次登錄1.輸出成功或者失敗2獲取以前的cookie#####Cookie的安全問題 由于Cookie會保存在客戶端上,所以有安全隱患問題,還有一個問題,Cookie的大小與個數有限制, 為了解決問題------->Session####Session 會話,Session是給予Cookie的一種會話機制,Cookie是服務器返回一小份數據給客戶端,并且 存放在客戶端上,Session是,數據存放在服務器端。####Session常用的API//獲得會話HttpSession session=req.getSession();//得到會話的idString id=session.getId();//存值session.setAttribute("name","value");//取值session.getAttribute("name");//移除值session.removeAttribute("name");###Session的創建和銷毀創建 如果有在Servlet里面調用了request.getSession()銷毀 Session是存放在服務器的內存中的一份數據,當然可以持久化,Redis.即使關了瀏覽器,Session也不會銷毀銷毀方法1關閉服務器2 Session會話時間結束,默認有效期30分鐘*/
?