1.编写商品展示页面,提交选购商品到servletA;
2.servletA显示已选购商品内容,并且通过session传值方式将已购商品名称和总价传值到servletB;
3.servletB显示已选购商品名称和商品总价。
要求:
禁用cookie实现上述功能;
放上我自己写的代码,已经实现了第一步和第二步的前半部分。
前端代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
.goods_list ul li{
background-color: #FFF;
border-bottom: 1px solid #CCC;
height: 260px;
padding: 40px;
}
.goods_img{
float: left;
border: 1px solid #CCC;
margin-right: 20px;
width: 180px;
height: 180px;
}
.goods_bottom{
padding-top: 52px;
}
.goods_bottom .price{
color: #F02028;
}
.goods_list .num{
float: right;
}
.goods_list .num span{
padding: 0 30px;
}
.pay {
padding-left: 30px;
background-color: #FFF;
width: 100%;
height: 100px;
position: fixed;bottom: 0;
}
.pay .totalNum{
color: #F02028;
}
.pay p{
color: #F02028;
}
.btn{
position:fixed;
bottom:0;right:160;
width: 160px;
height:80px;
background-color:#FF9933;
font-size:30px;
}
.pay button{
position: fixed;bottom:0;right: 0;
width: 160px;
height: 80px;
background-color: #FF3334;
color: #FFF;
font-size: 30px;
}
img{
width:20px;
}
</style>
<script src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//点击增加按钮触发事件
$(".plus").click(function(){
var num = $(this).parent().children("span");
//单品数量增加
num.text(parseInt(num.text())+1);
//商品总数增加
var totalNum = parseInt($(".totalNum").text());
totalNum++
$(".totalNum").text(totalNum);
//计算总价
var goods_price = parseInt($(this).parent().parent().children(".goods_price").text());
$(".totalPrice").text(parseInt($(".totalPrice").text())+goods_price);
});
//点击减少按钮触发事件
$(".minus").click(function(){
var num = $(this).parent().children("span");
if(parseInt(num.text())){
num.text(parseInt(num.text())-1);
var totalNum = parseInt($(".totalNum").text());
totalNum--
$(".totalNum").text(totalNum);
var goods_price = parseInt($(this).parent().parent().children(".goods_price").text());
$(".totalPrice").text(parseInt($(".totalPrice").text())-goods_price);
} else{
num.text("0");
}
});
});
</script>
</head>
<body>
<div class="addgoods">
<div class="goods_list">
<ul id="list">
<li>
<img class="goods_img" src="img/茶具.jpg">
<p>茶具</p>
<a href="MyservletA?prod=茶具">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">400.00</span>
<div class="num">
<img class=minus src="img/minus.jpg" />
<span>0</span>
<img class=plus src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/电池.jpg">
<p>电池</p>
<a href="MyservletA?prod=电池">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">100.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/电脑主机.jpg">
<p>电脑主机</p>
<a href="MyservletA?prod=电脑主机">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">4000.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div>
</li>
<li>
<img class="goods_img" src="img/吉他.png">
<p>吉他</p>
<a href="MyservletA?prod=吉他">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">700.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg"/>
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div>
</li>
<li>
<img class="goods_img" src="img/架子.png">
<p>架子</p>
<a href="MyservletA?prod=架子">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">40.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/口罩.png">
<p>口罩</p>
<a href="MyservletA?prod=口罩">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">30.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/太阳能灯.jpg">
<p>太阳能灯</p>
<a href="MyservletA?prod=太阳能灯">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">160.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/外套.jpg">
<p>外套</p>
<a href="MyservletA?prod=外套">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">350.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/微单.jpg">
<p>微单</p>
<a href="MyservletA?prod=微单">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">3500.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/洗衣机.jpg">
<p>洗衣机</p>
<a href="MyservletA?prod=洗衣机">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">5000.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/银手镯.jpg">
<p>银手镯</p>
<a href="MyservletA?prod=银手镯">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">16000.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
<li>
<img class="goods_img" src="img/T恤.jpg">
<p>T恤</p>
<a href="MyservletA?prod=T恤">加入购物车</a>
<div class="goods_bottom">
¥<span class="goods_price">130.00</span>
<div class="num">
<img class="minus" src="img/minus.jpg" />
<span>0</span>
<img class="plus" src="img/plus.jpg">
</div>
</div></li>
</ul>
<button type="button" class="btn" >购物车</button>
<div class="pay">共计<span class="totalNum">0</span>件
<p>总价¥<span class="totalPrice">0</span></p>
<button type="submit"><a href="MyservletB">去付款</a></button>
</div>
</div>
</div>
</body>
</html>
服务器A:
代码
package com.myservletA;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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;
/**
* Servlet implementation class MyservletA
*/
@WebServlet("/MyservletA")
public class MyservletA extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyservletA() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;utf-8");
//1.获取要保存的商品信息
String prod=request.getParameter("prod");
//2.获取一个session对象
HttpSession session = request.getSession();
//3.将商品信息保存在session对象中
session.setAttribute("prod", prod);
//4.做出回应(成功将XX商品加入购物车)
response.getWriter().write("已经添加"+prod+"到购物车<br>"
+ "<a href=\"Index.html\">继续购买</a><br>");
response.getWriter().write("<a href=\"MyservletB\">支付</a>");
List list = (ArrayList) session.getAttribute("list");
if (list == null) {
list=new ArrayList();
}
list.add(prod);
session.setAttribute("list", list);
response.getWriter().print("你的购物车有"+list.size()+"件商品<br>");
response.getWriter().print("总价值"+ "元");
for(Object o:list) {
response.getWriter().print((String)o);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
服务器B
package com.myservletA;
import java.io.IOException;
import java.util.List;
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;
/**
* Servlet implementation class MyservletB
*/
@WebServlet("/MyservletB")
public class MyservletB extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyservletB() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;utf-8");
HttpSession session = request.getSession();
//2.从session中获取商品信息
String prod = (String) session.getAttribute("prod");
List list=(List)session.getAttribute("list");
int pay = 5000;
//3.模拟支付(成功为xx商品支付xxx)
response.getWriter().write("成功为["+list+"]支付了"+pay+"元");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
格式有点乱,第一次提问,不太会用
https://blog.csdn.net/weixin_30439031/article/details/98011240