JAVA基础14-JavaWeb(十六)cookie的简单运用

(1)cookie的简单运用
loginServlet

@WebServlet("/cookie/login")
public class loginServlet extends HttpServlet{
	
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");//设置请求的编码
		resp.setContentType("text/html;charset=utf-8");//设置输出的类型和编码
		PrintWriter out = resp.getWriter();//获取一个输出流
		
		String username = req.getParameter("username");	
		System.out.println(username);
		//添加cookie
		Cookie cookie = new Cookie("currentName",username);
		resp.addCookie(cookie);
		
		out.print("欢迎:"+username+"<br/>");
		out.print("<a href='/cookie/list'>收件箱</a>");
	}
}

listServlet

@WebServlet("/cookie/list")
public class listServlet extends HttpServlet {
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");//设置请求的编码
		resp.setContentType("text/html;charset=utf-8");//设置输出的类型和编码
		PrintWriter out = resp.getWriter();//获取一个输出流
		String username = "";
		//获取多个cookie
		Cookie[] cookie = req.getCookies();
		for (Cookie cookie2 : cookie) {
			String name = cookie2.getName();
			String value = cookie2.getValue();
			System.out.println("name:"+name+"value:"+value);
			if("currentName".equals(name)){
				username=value;
			}
		}
		
//		String username = req.getParameter("username");	
//		System.out.println(username);
		out.print("欢迎:"+username+"<br/>");
		for (int i = 0; i < 10; i++) {
			out.print("<a href='/cookie/getmail'>一份邮件</a><br/>");
		}
		
	}
}

lgetServlet

@WebServlet("/cookie/getmail")
public class lgetServlet extends HttpServlet{
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");//设置请求的编码
		resp.setContentType("text/html;charset=utf-8");//设置输出的类型和编码
		PrintWriter out = resp.getWriter();//获取一个输出流
		String username = "";
		//获取多个cookie
		Cookie[] cookie = req.getCookies();
		for (Cookie cookie2 : cookie) {
			String name = cookie2.getName();
			String value = cookie2.getValue();
			System.out.println("name:"+name+"value:"+value);
			if("currentName".equals(name)){
				username=value;
			}
		}
//		String username = req.getParameter("username");	
//		System.out.println(username);
		out.print("欢迎:"+username+"<br/>");
		out.print("涂大帅哥");
	}
}

(2)cookie的细节
1、在cookie中属性名和属性值不能使用中文–解决方案:使用UrlEncoder.encode(string,“UTF-8”)编码,使用UrlDncoder.decode(string,“UTF-8”)解码
2、cookie的分类:会话cookie:关闭浏览器之后cookie就会销毁,持久化cookie:cookie可以保存指定时间段
3、删除cookie:cookie.setMaxAge(0)
(3)cookie的路径和缺陷
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36675851/article/details/86501053
今日推荐