本文目錄一覽:
怎麼在java中使用cookie
1、Cookie的來歷與作用
Cookie是WEB服務器通過瀏覽器保存在WWW用戶端硬盤上的一個文本文件,這個文本文件中包含了文本信息。
文本信息的內容以“名/值”對(key/value)的形式進行存儲。
可以讓WEB開發者通過程序讀寫這個文本文件。
XP中保存Cookie的目錄是“C://Documents and Settings\用戶名\Cookies”
Cookie的作用
解決瀏覽器用戶與Web服務器之間無狀態通信。
2Cookie編程
//創建對象
Date date = new Date() ;
Cookie c = new Cookie(“lastVisited”,date.toString()) ;
//設定有效時間 以s為單位
c.setMaxAge(60) ;
//設置Cookie路徑和域名
c.setPath(“/”) ;
c.setDomain(“.zl.org”) ; //域名要以“.”開頭
//發送Cookie文件
response.addCookie(c) ;
//讀取Cookie
Cookie cookies[] = request.getCookies() ;
Cookie c1 = null ;
if(cookies != null){
for(int i=0;i
c1 = cookies[i] ;
out.println(“cookie name : ” + c1.getName() + ” “) ;
out.println(“cookie value :” + c1.getValue() + “
“);
}
}
//修改Cookie
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
for(int i=0;i
c = cookies[i] ;
if(c.getName().equals(“lastVisited”)){
c.setValue(“2010-04-3-28”) ;
c.setMaxAge(60*60*12) ;
response.addCookie(c) ; //修改後,要更新到瀏覽器中
}
}
//刪除Cookie,(將Cookie的有效時間設為0)
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
for(int i=0;i
c = cookies[i] ;
if(c.getName().equals(“lastVisited”)){
c.setMaxAge(0);
response.addCookie(c) ;
}
}
4、使用Cookie的注意事項
·Cookie的大小和數量是有限制的。
·Cookie在個人硬盤上所保存的文本信息是以明文格式進行保存的,沒有任何的加密措施。
·瀏覽器用戶可以設定不使用Cookie。
5、實例:Servlet中的Cookie編程
cookieInput.html頁面
SetCookie.java
GetCookie.java
cookieInput.html頁面中的參數提交到SetCookie.java中,由SetCookie.java保存在瀏覽器的Cookie中,在SerCookie.java中鏈接到GetCookie.java從而讀取剛剛保存的Cookie。
SetCookie.java :
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
String username = request.getParameter(“username”) ;
//保存Cookie
if(username !=””){
Cookie c1 = new Cookie(“username”,username) ;
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”) ;
Cookie c2 = new Cookie(“lastVisited”,sdf.format(new java.util.Date())) ;
c1.setMaxAge(60*60*60*12*30) ;
c2.setMaxAge(60*60*60*12*30) ;
response.addCookie(c1) ;
response.addCookie(c2) ;
out.println(“Cookie保存成功!”);
out.println(“
“) ;
out.println(“讀取Cookie”) ;
}else{
response.sendRedirect(“../cookieInput.html”) ;
}
out.flush();
out.close();
}
GetCookie.java:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
out.println(“
“);
out.println(“”);
out.println(“
“);
out.println(“
“);
//讀取Cookie
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
if(cookies != null){
for(int i=0;i
c = cookies[i] ;
if(c.getName().equals(“username”)){
out.println(“用戶名: “+c.getValue());
out.println(“
“);
}
if(c.getName().equals(“lastVisited”)){
out.println(“上次登錄的時間: “+c.getValue());
}
}
}else{
out.println(“No cookie !”);
}
out.println(“
“);
out.println(“
“);
out.flush();
out.close();
}
關於JAVA訪問網站獲取cookie的問題。
cookie是客戶端的文件,網站主機上是沒有的,如果你的意思是獲取訪問一個網站該網站寫在本地客戶端的cookie的話,很簡單,到文檔裡面找,cookie都在裡面。
java怎麼讀取其他域的cookie
只有先取到document才能取到cookie。。
獲取不了。。。沒有這種方法。。除非你自己開發一個程序,讀取指定位置的文件,那麼可以獲取。。但這個位置也寫死了,瀏覽器是不可能的,安全性考慮。
java 根據訪問的地址 獲得cookie
這個很簡單啊,如果你有HttpServletRequest對象的引用,調用 Cookie[] cookies = request.getCookies();就可以獲取到cookie信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/276685.html