一些知识点:
要将session进行持久化:
要将cookie进行持久化,则要将cookie中的JSSESSIONID进行持久化。这里要创建一个cookie来覆盖服务器之前自动生成的JSSESSIONID。
这里分为添加进购物车,查看购物车,和前端
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
a:hover{color: red;}
h2{
color: red;}
</style>
</head>
<body bgcolor="black">
<center><h2 align="center" >商品列表</h2>
<a href="/hello/addCart?name=杯子" onclick="alert('添加成功')">杯子</br></a>
<a href="/hello/addCart?name=帽子" onclick="alert('添加成功')">帽子</br></a>
<a href="/hello/addCart?name=笔记本" onclick="alert('添加成功')">笔记本<br/></a>
</center>
</body>
</html>
添加进购物车:
package net.zixue.session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "AddCartServlet",urlPatterns = "/addCart")
public class AddCartServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得商品的名称
String name = request.getParameter("name");
HttpSession session = request.getSession();
List<String> list = (List<String>) session.getAttribute("list");
//如果第一次或购物车为空
if(list==null)
{
list=new ArrayList();
}
list.add(name);
//设置或者说保存session
session.setAttribute("list",list);
//设置持久化
Cookie cookie=new Cookie("JSESSIONID",session.getId());
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
}
}
查看购物车:
package net.zixue.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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebServlet(name = "GetCartServlet",urlPatterns = "/getCart")
public class GetCartServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//拿到session
HttpSession session = request.getSession();
List<String> list = (List<String>)session.getAttribute("list");
response.setContentType("text/html;charset=utf-8");
for (String s : list) {
response.getWriter().write(s+"<br/>");
}
}
}