只寫了一遍的代碼:頁面的跳轉操做,所有是從web文件中讀取進行的html
web配置文件java
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>demo</servlet-name> <servlet-class>com.it.Demo</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/CarServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>demo1</servlet-name> <servlet-class>com.it.ClearDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo1</servlet-name> <url-pattern>/ClearCartServlet</url-pattern> </servlet-mapping> </web-app>
public class Demo extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); resp.setContentType("text/html;charset=utf-8"); int id = Integer.parseInt(req.getParameter("id")); String[] names = {"iphone7", "小米6", "三星note8", "魅族", "華爲9"}; String name = names[id]; // 先拿map對象,若是沒有值默認爲null Map<String, Integer> cartMap = (Map<String, Integer>) session.getAttribute("cart"); // 根據這個對象,判斷是不是第一次進來 if (cartMap == null) { cartMap = new HashMap<String, Integer>(); // 若是是第一次進來,就添加一個map對象 session.setAttribute("cart", cartMap); } // 判斷這個map對象中是否存在手機名稱的鍵 if (cartMap.containsKey(name)) { cartMap.put(name, cartMap.get(name) + 1); } else { cartMap.put(name, 1); } System.out.println(cartMap); resp.getWriter().write("<a href='index.html'><h3>繼續瀏覽<h3></a><br>"); resp.getWriter().write("<a href='cart.jsp'><h3>去購物車結算<h3></a><br>"); } }
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>首頁</title> </head> <body> <a href="/CarServlet?id=0">iphone7</a> <a href="/CarServlet?id=1">小米6</a> <a href="/CarServlet?id=2">三星note8</a> <a href="/CarServlet?id=3">魅族</a> <a href="/CarServlet?id=4">華爲9</a> </body> </html>
獲取session中的map對象,講值取出來web
<%@ page import="java.util.Map" %> <%@ page import="java.security.Key" %><%-- Created by IntelliJ IDEA. User: maotouying Date: 2019/11/4 Time: 12:53 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>購物車</title> </head> <body> <h2>您的購物車商品以下:</h2> <% Map<String, Integer> map= (Map<String, Integer>)session.getAttribute("cart"); // 遍歷map if (map != null){ for (String key: map.keySet()){ int value = map.get(key); %> <h3>名稱:<%=key%> 數量:<%=value%></h3> <% } } %> <a href="/ClearCartServlet"><h4>清空購物車</h4></a> </body> </html>
清除session中的值,清空購物車session
public class ClearDemo extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); // 使會話失效 session.invalidate(); resp.sendRedirect("cart.jsp"); } }