一、代码
1.代码
package com.cookie;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
@WebServlet("/as")
public class AServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = new Cookie("name", URLEncoder.encode("曹: 操","utf-8"));
cookie.setMaxAge(30);
Cookie cookie2 = new Cookie("age", "18");
//发送cookie给客户端
response.addCookie(cookie);
response.addCookie(cookie2);
//响应cookie的方式二
//response.setHeader("set-cookie","name=lucy");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("hello 百里半");
}
}
package com.cookie;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
@WebServlet( "/bs")
public class BServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取cookie
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
System.out.println(cookie.getName()+"--"+ URLDecoder.decode(cookie.getValue(),"utf-8"));
}
}
}
package com.session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/cs")
public class CServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("C"+request.getSession()+",id:"+request.getSession().getId());
Cookie c = new Cookie("JSESSIONID", request.getSession().getId());
c.setMaxAge(60);
//覆盖同名的cookie
response.addCookie(c);
}
}
package com.session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ds")
public class DServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getSession());
System.out.println("D"+request.getSession()+",id:"+request.getSession().getId());
}
}
package com;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
@WebServlet("/as")
public class AServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//两种方式响应cookie给浏览器
//响应cookie的方式一
Cookie cookie = new Cookie("name", URLEncoder.encode("曹:操","utf-8"));
cookie.setMaxAge(30);
Cookie cookie1 = new Cookie("age", "18");
//发送cookie给服务端
response.addCookie(cookie);
response.addCookie(cookie1);
//响应cookie的方式二
//response.setHeader("set-cookie","name=lucy");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("hello 百里半");
}
}
package com;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
@WebServlet("/bs")
public class BServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取cookie
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
//服务器端获取所有的cookie tomcat8,支持cookie中有中文,但是不支持特殊符号,例如空格和冒号
//可以使用URL编码和解码的方式,存的时候,对value值进行编码 取出来时, 再进行解码
System.out.println(cookie.getName()+"--"+ URLDecoder.decode(cookie.getValue(),"utf-8"));
}
}
}
package com;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/cs")
public class CServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应的消息体的数据格式以及编码
response.setContentType("text/html;charset=utf-8");
//1.获取所有Cookie
Cookie[] cookies = request.getCookies();
boolean flag=false;//没有cookies为lastTime
//2.遍历cookie数组
if (cookies!=null && cookies.length>0){
for (Cookie cookie : cookies) {
//3.获取cookie的名称
String name = cookie.getName();
//4.判断名称是否是:lastTime
if ("lastTime".equals(name)){
//有该Cookie,不是第一次访问
flag=true;//有lastTime的cookie
//获取Cookie的value,时间
String value = cookie.getValue();
System.out.println("解码前:"+value);
//URL解码:
value = URLDecoder.decode(value, "utf-8");
System.out.println("解码后:"+value);
//设置Cookie的value
//获取当前时间的字符串,重新设置Cookie的道,重新发送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日HH:mm:ss");
String str_date = sdf.format(date);
System.out.println("编码前"+str_date);
//URL编码
str_date = URLEncoder.encode(str_date, "utf-8");
System.out.println("编码后:"+str_date);
cookie.setValue(str_date);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie);
//响应数据
response.getWriter().write("<h1>欢迎回来,您上次访问时间为:"+value+"</h1>");
break;
}
}
}
if (flag == false){
//没有,第一次访问
//设置Cookie的value
//设置当前时间的字符串,重新设置Cookie的值,重新发送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日HH:mm:ss");
String str_date = sdf.format(date);
System.out.println("编码前"+str_date);
//URL编码
str_date = URLEncoder.encode(str_date, "utf-8");
System.out.println("编码后:"+str_date);
Cookie cookie = new Cookie("lastTime", str_date);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie);
response.getWriter().write("<h1>您好,欢迎您首次访问</h1>");
}
}
}
总结
以上就是Cookie和Session的相关方法和用法的所有代码。