欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【JSP学习笔记】JSP session对象的应用 模拟商城购物车

程序员文章站 2024-03-20 13:59:46
...

前言:

下面贴出的实现代码核心部分摘抄了xiufeng大佬的代码

正文

session对象简介:

session对象的主要用途也是保存信息,当用户第一次到达网站时,系统为其分配一个session。session和application一样也使用自己的自定义属性。所以可以使用Session 对象存储用户登录网站时候的信息。当用户在页面之间跳转时,存储在Session对象中的变量不会被清除

需求:

利用session保存用户选购的商品信息,本购物车程序包含三个程序:
(1)buy1.jsp:购物网页一。
(2)buy2.jsp:购物网页二。

(3)display.jsp:查看购物车程序

代码实现:

buy1.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>生活</title>
</head>
<body>
<p>生活用品,一律八元</p>
<form action="buydata.jsp" method="POST">
<input type ="checkbox" name="data" value="猪肉">猪肉<br>
<input type ="checkbox" name="data" value="羊肉">羊肉<br>
<input type ="checkbox" name="data" value="牛肉">牛肉<br>
<input type="submit" value="提交">  
<input type="reset" value="重设"> 
</form>
<br> <a href="buy2.jsp">看看其他</a>   <a href="display.jsp">查看购物车</a>
</body>
</html>

buy2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>体育</title>
</head>
<body>
<p>体育用品,一律十元</p>
<form action="buydata.jsp" method="POST">
<input type ="checkbox" name="data" value="篮球">篮球<br>
<input type ="checkbox" name="data" value="足球">足球<br>
<input type ="checkbox" name="data" value="排球">排球<br>
<input type="submit" value="提交">  
<input type="reset" value="重设"> 
</form>
<br> <a href="buy1.jsp">看看其他</a>   <a href="display.jsp">查看购物车</a>
</body>
</html>

buydata.jsp (实现“加入购物车”的过程)

<%@page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>buy data</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
		//获取checkbox里的内容
	    String[] post = request.getParameterValues("data");
		//获取原本保存在session里的内容
		Set<String> now = (Set<String>)session.getAttribute("list");
		//新建一个集合,用来保存选择的商品
		Set<String> set = new HashSet<String>();
		//如果post数组不为空,将post数组里的内容全部加入set集合
		if(post!=null)
			Collections.addAll(set, post);
		// 将原本的数据也加入到set集合中,set集合会自动去除重复的内容
		if(now!=null) 
			set.addAll(now);
		//将set集合对象保存到session里
		session.setAttribute("list", set);	%>
<script type="text/javascript">
 history.go(-1); //返回上一个页面
</script>
</body>
</html>

display.jsp (查看购物车)

<%@ page import="java.io.*,java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HTTP Header Request Example</title>
</head>
<body>
<p>你选择了:</p><br>
	<center>

<%   Set<String> getN = (Set<String>) session.getAttribute("list");
    if (getN != null)
        for (Iterator it = getN.iterator(); it.hasNext(); )
            out.print(it.next().toString() + "<br>");
    %>
    <a href="./clear.jsp">清空购物车</a> 
	</center>
</body>
</html>

clear.jsp(清空购物车)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% session.invalidate(); %>
<script type="text/javascript">
 alert("清除成功,请刷新");
 history.go(-1);
</script>
</body>
</html>


相关标签: JSP