Servlet对Cookie的使用

本文介绍了Cookie的基本概念及其在服务器与客户端间的数据交换作用。探讨了如何通过Servlet设置不同类型的Cookie,并展示了如何读取这些Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.服务器端可以向客户端写的内容就是Cookie
2.只能写入文本内容
3.客户端可以在IE中设置隐私禁止写入Cookie
4.只能通过web端写入
5.Cookie分为两种
属于窗口/子窗口(放在内存中)
属于文本(有生命周期)
6.一个servlet/jsp设置的cookies能够被同一个URL路径下面或者子URL路径下面的servlet/jsp读取

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>setCookies</servlet-name>
<servlet-class>com.meiyoudao.SetCookies</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>setCookies</servlet-name>
<url-pattern>/setCookies</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>showCookies</servlet-name>
<servlet-class>com.meiyoudao.ShowCookies</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>showCookies</servlet-name>
<url-pattern>/showCookies</url-pattern>
</servlet-mapping>
</web-app>

package com.meiyoudao;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SetCookies extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
int i = 2;
while(i > 0){
//该cookie只存在内存中.
Cookie cookie = new Cookie("Key-"+i,"Value-"+i);
arg1.addCookie(cookie);

//该cookie设置了360秒后消失.即,新打开的窗口也可以获取cookie.
cookie = new Cookie("Time-Key-"+i,"Time-Value-"+i);
cookie.setMaxAge(360);
arg1.addCookie(cookie);

i--;
}
arg1.setContentType("text/html;charset=gb2312");
PrintWriter out = arg1.getWriter();

out.println("<html><head><title>设置Cookie</title></head>"
+ "<BODY>\n"
+ "<H1 ALIGN=\"CENTER\">"
+ "设置Cookie" + "</H1>\n"
+ "6个Cookie\n"
+ "<A HREF=\"showCookies\">\n"
+ "查看</A>.\n"
+ "</BODY></HTML>");

out.flush();
out.close();

}

}

package com.meiyoudao;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ShowCookies extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
arg1.setContentType("text/html;charset=gb2312");
PrintWriter out = arg1.getWriter();
String title = "显示 Cookies";
out.println("<html><head><title>获取客户端Cookie</title></head>" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
"<TABLE BORDER=1 ALIGN=\"CENTER\">\n" +
"<TR BGCOLOR=\"#FFAD00\">\n" +
" <TH>Cookie Name\n" +
" <TH>Cookie Value");
Cookie[] cookies = arg0.getCookies();
if (cookies != null) {
Cookie cookie;
for(int i=0; i<cookies.length; i++) {
cookie = cookies[i];
out.println("<TR>\n" +
" <TD>" + cookie.getName() + "</TD>\n" +
" <TD>" + cookie.getValue() + "</TD></TR>\n" );
}
}
out.println("</TABLE></BODY></HTML>");
out.flush();
out.close();
}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值