Java体系知识之Cookie&Web Storage
(1)Cookie在Java中使用
(2)Cookie在JS中使用
(3)Web Storage 了解
(4)综合案例-购物车
1 Cookie
1.1 HTTP协议
(1)超文本传输协议,请求-响应的协议
(2)无状态协议:
浏览器 服务器
服务器端:
只关心请求;
即使这个客户端已访问过服务端了,服务端也不知道
(3)追踪用户访问情况:
会话追踪技术:
cookie:
cookie,客户端保存数据;
数据不安全;
服务器压力小;
建议存储简单|不重要的|少量的|英文格式的数据
session:
session,服务器端保存数据;sessionId,保存到客户端Cookie中;
数据安全;
服务器压力大;
典型面试题:cookie和session区别
隐藏框:type="hidden"
URL后面拼接参数
1.2 Cookie简介
(1)一小段文本信息
(2)保存在客户端
(3)键值对形式存储,键值对都是字符串
(4)当访问网站时,本地Cookie中的数据会随着请求一块发送到服务端
(5)Cookie中的数据:可增|可删|可修改
数据不安全,建议存储简单|不重要的|少量的|英文格式的数据
1.3 Java中使用Cookie
1.3.1 WriteCookieServlet
package com.javasm.basic;
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.io.PrintWriter;
@WebServlet("/write")
public class WriteCookieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie cookie = new Cookie("myName","tom");
cookie.setPath("/");
cookie.setMaxAge(24*60*60);
resp.addCookie(cookie);
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.print("写出Cookie成功");
writer.flush();
writer.close();
}
}
1.3.2 ReadCookieServlet
package com.javasm.basic;
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.io.PrintWriter;
@WebServlet("/read")
public class ReadCookieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
for (Cookie cookie:cookies) {
System.out.println(cookie.getName()+" "+cookie.getValue());
if