首页 / 更多教程 / 实现购物车的Session
实现购物车的Session
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了实现购物车的Session,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4688字,纯文字阅读大概需要7分钟。
内容图文
![实现购物车的Session](/upload/InfoBanner/zyjiaocheng/1001/593dcf7ab35b414abc6c16ae786d8b70.jpg)
[图-1]整体结构图
![实现购物车的Session - 文章图片](/upload/getfiles/0001/2021/5/17/20210517100300663.jpg)
package cn.itcast;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ListBookServlet
*/
public class ListBookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置中文编码。
response.setContentType ( "text/html;charset=utf-8");
//提示
PrintWriter out = response.getWriter();
Collection<Book> books = BookDB.getAll();
out.write("本站提供的图书有:<br />");
//把数目列出来
for (Book book : books){
String url = "/chapter5/PurchaseServlet?id=" + book. getId ();
System.out.println(url);
//地址是/chapter5/PurchaseServlet?id=1
out.write (book.getName ()+ "<a href='"+ url+"'>点击购买</a><br />");
}
}
/**
* @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);
}
}
package cn.itcast;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class CartServlet
*/
public class CartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CartServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
List<Book> cart=null;
boolean purFlag=true;
HttpSession session=request.getSession(false);
if(session==null)
{
purFlag=false;
}
else
{
cart=(List) session.getAttribute("cart");
if(cart==null)
{
purFlag=false;
}
}
//页面展示
if(!purFlag)
{
out.write("对不起");
}
else
{
out.write("您购买的书有");
double price=0;
for(Book book:cart) {
out.write(book.getName());
}
}
}
/**
* @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);
}
}
package cn.itcast;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class PurchaseServlet
*/
public class PurchaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置一个ID接受量
String id=request.getParameter("id");
//id没有,就到数目列表页面
if(id==null)
{
String url="/chapter5/ListBookServlet";
response.sendRedirect(url);
return ;
}
Book book =BookDB.getBook(id);
//创建或者获得session对象
HttpSession session =request.getSession();
//从session中获得购物车
List<Book> cart=(List) session.getAttribute("cart");
//创建购物车
if(cart==null)
{
//首次购买,创建一个购物车
cart=new ArrayList<Book>();
//将购物车存入session对象
session.setAttribute("cart", cart);
}
//将商品放入购物车
cart.add(book);
//创建cookie存放session的标识符
Cookie cookie =new Cookie("jsess",session.getId());
System.out.println(session.getId());
cookie.setMaxAge(60*30);
cookie.setPath("/chapter5");
response.addCookie(cookie);
//重定向到购物车界面
String url="/chapter5/CartServlet";
response.sendRedirect(url);
}
/**
* @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);
}
}
Session创建的时候会返回一个存放此session的id的cookie给浏览器保存在缓存中。
session id会由服务器端写入到cookie中,后期访问服务器端会以此id为标识。cookie失效时间可以服务器端自己设置。
案例中又手动创建了一个Cookie所以又两个Cookie
内容总结
以上是互联网集市为您收集整理的实现购物车的Session全部内容,希望文章能够帮你解决实现购物车的Session所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。