cookie的使用方法以及注意事項

短腿哥哥發表於2018-05-21

     首先介紹cookie的一些方法

              response.addCookie(Cookie cookie)是將一個cookie物件傳入客戶端。

              Cookie cookie=new Cookie(String name,String value):構造一個cookie物件

              request.getCookies():得到所有的cookie物件

             cookie.getName():得到此cookie物件的名字

             cookie.getValue(String name):得到對應名稱的cookie的值

 

    其次我來說一些注意事項:

        1.在使用cookie的時候,首先要注意瀏覽器是否支援cookie,可以用過設定瀏覽器,使其支援使用cookie

    2.如果要使cookie儲存中文的資訊,需要使用java.net.URLEncoder類的encode方法進行編碼,需要使用java.net.URLDecoder的decode方法進行解碼,下面案例中會使用到。

          這種方法和String類的編碼和解碼類似,String的編碼方法是byte[] b=str.getBytes();//這是使用本地預設的編碼格式進行編碼,或者是byte[] b=str.getBytes("utf-8");//這種是以utf-8的方式進行解碼,也可以使用其他的型別。我們要用同一種編碼格式進行解碼和編碼,不然有可能會出現亂碼問題,這種編碼和解碼的方式也可以解決get方式亂碼問題。

    最後,我們進行例項演示

 這是我的檔案目錄

 

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@ page import="java.net.URLDecoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>取出Cookie</title>
</head>
<body>
<%! String name=""; %>
<%
    Cookie[] cookies=request.getCookies();
    if(cookies!=null){
    	for(Cookie c:cookies){
    		if(c.getName().equals("name")){
    			name=URLDecoder.decode(c.getValue(),"utf-8");//對字串進行解碼,類似於字串的解碼
    		}
    	}
    }
%>
<form name="form" action="deal.jsp" method="post">
   <%
        if("".equals(name)){
   %>
        <strong>歡迎初次登入</strong>
  <%
        }else{
   %>
         <strong>歡迎再次登入,已儲存上次登入使用者名稱</strong>
   <%} %><br>
   請輸入姓名:<input type="text" name="name" value="<%=name%>">
   <input type="submit" value="提交">
   
</form>
</body>
</html>

deal.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.net.URLEncoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>儲存Cookie</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");//對request傳過來的引數設定編碼格式,以免傳入中文的時候出現問題,必須在request.getParameter之前設定
String name=URLEncoder.encode(request.getParameter("name"),"utf-8");//對字串以utf8的格式進行編碼
Cookie cookie=new Cookie("name",name);
response.addCookie(cookie);
%>
<script type="text/javascript">window.location.href="index.jsp"</script><!-- js中實現頁面的跳轉 -->
</body>
</html>

執行結果:

 剛開始的介面,我們下面輸入“張三”

這是執行成功後的結果。


相關文章