HttpSession实现购物车功
来源:互联网 发布:3dmax有没有mac版 编辑:程序博客网 时间:2024/05/21 14:10
应用简介:
- 任务:使用HttpSession实现购物车功能
- 应用程序:实现购物车功能 商品首页列出商品,可以查看商品详情,实现自动登录功能,添加购物车,查看购物车
java代码部分
/*****************IndexServlet.java*********************************/package controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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 IndexServlet */@WebServlet("/IndexServlet")public class IndexServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public IndexServlet() { 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()); Cookie[] cookies = request.getCookies(); String name = null; String pwd = null; if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("name")) { name = cookie.getValue(); } if (cookie.getName().equals("pwd")) { pwd = cookie.getValue(); } } if (name == "admin" && pwd == "123") { request.getRequestDispatcher("index.html").forward(request, response); return; } else { response.sendRedirect("error.html"); } } HttpSession session = request.getSession(); // 访问会话对象 String value = (String) session.getAttribute("value"); // 得到创建的value if (value == "1") { request.getRequestDispatcher("index.html").forward(request, response); } else { System.out.println("跳转到登陆页面--\n"); response.sendRedirect("login.html"); } } /** * @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); }}
/****************AddCartServlet.java***************************/package controller;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 AddCart */public class AddCartServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AddCartServlet() { 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 // 判断Cookie信息是否存在,存在直接添加到购物车,否则显示登录页面 request.setAttribute("test", "Listerner Test"); HttpSession session = request.getSession(); // 访问会话对象 String value = (String) session.getAttribute("value"); Cookie[] cookies = request.getCookies(); // 获取Cookie System.out.println("获取Cookie\n"); if (value != "1" cookies == null) { response.sendRedirect("login.html"); // 如果没有cookie,跳转到login页面 System.out.println("获取Cookie失败!"); } else { for (Cookie cookie : cookies) { if (cookie.getName().equals("name")) { System.out.println("name" + cookie.getValue()); } if (cookie.getName().equals("pwd")) { System.out.println("pwd" + cookie.getValue()); } } System.out.println("存在Cookie"); String name = request.getParameter("name"); String price = request.getParameter("price"); name = new String(name.getBytes("iso-8859-1"), "utf-8"); // price = new String(price.getBytes("iso-8859-1"), "utf-8"); System.out.println("添加的商品为:" + name); List<String> cart = (List<String>) session.getAttribute("cart"); // 添加价格属性有两种实现方法: /* * 1.获取href属性中的price,每添加一次购物车,都要添加价格。 * 2.将cart数据类型转变为Goods型,属性包括:name,price,num,没有获取price方法的麻烦, * 但是在购物车中删除商品的时候实现困难,所以没有选用这种方式。 */ List<String> prices = (List<String>) session.getAttribute("price"); if (cart == null) { cart = new ArrayList<String>(); prices = new ArrayList<String>(); cart.add(name); prices.add(price); } else { cart.add(name); prices.add(price); } session.setAttribute("cart", cart);// 将信息存入会话 session.setAttribute("price", prices); response.sendRedirect("index.html"); // 跳转到商品页面 } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doGet(request, response); }}
/*******************DeleteCartServlet.java***************************/package controller;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 DeleteCartServlet *///@WebServlet("/DeleteCartServlet")public class DeleteCartServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public DeleteCartServlet() { 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()); String name = request.getParameter("name"); name = new String(name.getBytes("iso-8859-1"), "utf-8"); HttpSession session = request.getSession(); // 访问会话对象 List<String> cart = (List<String>) session.getAttribute("cart"); System.out.println(name); cart.remove(name); session.setAttribute("cart", cart);// 将信息存入会话 response.sendRedirect("showCart"); } /** * @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); }}
/***************LoginServlet.java******************************/package controller;import java.io.IOException;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;public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { 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 String name = request.getParameter("userName"); String pwd = request.getParameter("userPwd"); // 此处应该访问数据库,查看用户是否存在,查看Cookie, //默认密码为admin,123 if (name != null && name.equals("admin") && pwd != null && pwd.equals("123")) { // 会话 HttpSession session = request.getSession(); // 访问会话对象 session.setAttribute("value", "1"); // 创建一个新的属性 String autoLogin = request.getParameter("autoLogin"); // 得到value值 if (autoLogin != null && autoLogin.equals("on")) { // 响应的处理,保存用户名密码到Cookie中 Cookie c = new Cookie("name", name); Cookie c2 = new Cookie("pwd", pwd); c.setMaxAge(60 * 6); c2.setMaxAge(6 * 60); // 放到响应中, response.addCookie(c); response.addCookie(c2); System.out.println("用户名密码保存到Cookie中!"); } System.out.println("跳转到商品详情页面-----"); request.getRequestDispatcher("index.html").forward(request, response); return; } // System.out.println(); response.sendRedirect("login.html"); System.out.println("用户名或密码错误"); // response.encodeRedirectURL("login.html"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub this.doGet(request, response); }}
web.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>shoppingcart</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>AddCartServlet</servlet-name> <servlet-class>controller.AddCartServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddCartServlet</servlet-name> <url-pattern>/addCart</url-pattern> </servlet-mapping> <servlet> <servlet-name>ShowCartServlet</servlet-name> <servlet-class>controller.ShowCartServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowCartServlet</servlet-name> <url-pattern>/showCart</url-pattern> </servlet-mapping> <servlet> <servlet-name>IndexServlet</servlet-name> <servlet-class>controller.IndexServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>IndexServlet</servlet-name> <url-pattern>/index.do</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>controller.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>DeleteCartServlet</servlet-name> <servlet-class>controller.DeleteCartServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DeleteCartServlet</servlet-name> <url-pattern>/deleteCart</url-pattern> </servlet-mapping></web-app>
<!-- detailA.html--><!DOCTYPE html><html><head><meta charset="UTF-8"><title>详细信息</title></head><body> <table> <tr> <td>商品名</td> <td>商品A </td> </tr> <tr> <td>商品描述</td> <td>男装</td> </tr> </table> <a href="index.html">返回首页</a> <a href="addCart?id=1&name=商品A&price=35">添加到购物车</a></body></html>
<!-- detailB.html --><!DOCTYPE html><html><head><meta charset="UTF-8"><title>详细信息</title></head><body> <table> <tr> <td>商品名</td> <td>商品B</td> </tr> <tr> <td>商品描述</td> <td>女装</td> </tr> </table> <a href="index.html">返回首页</a> <a href="addCart?id=2&name=商品B&price=40">添加到购物车</a></body></html>
<!-- detailC.html --><!DOCTYPE html><html><head><meta charset="UTF-8"><title>详细信息</title></head><body> <table> <tr> <td>商品名</td> <td>商品C</td> </tr> <tr> <td>商品描述</td> <td>童装</td> </tr> </table> <a href="index.html">返回首页</a> <a href="addCart?id=3&name=商品C&price=45">添加到购物车</a></body></html>
<!--index.html--><!DOCTYPE html><html><head><meta charset="UTF-8"><title>商品列表</title></head><body> 商品列表为: <hr/> <table> <tr> <td>商品名</td> <td>价格</td> <td colspan="2">操作</td> </tr> <tr> <td>商品A</td> <td>35</td> <td><a href="detailA.html">查看详情</a></td> <td><a href="addCart?id=1&name=商品A&price=35">添加到购物车</a></td> </tr> <tr>
0 0
- HttpSession实现购物车功
- Java HttpSession完成简单购物车功能
- 购物车的实现
- JSP 购物车实现
- profile实现购物车
- Ajax实现购物车
- HashTable实现购物车
- session实现购物车
- 购物车实现
- 购物车实现原理
- 实现购物车
- 购物车的实现
- 购物车的实现
- 购物车实现基本
- 购物车的实现
- 购物车实现功能
- 购物车实现步骤
- 购物车实现
- 键盘方法论: 在键盘前面,你就是钢琴师!
- 基于yeoman定制的交互式命令行脚手架
- 从All-In-One到SOA——技术及架构的演进过
- 掌握css3布局
- 日志大了,怎么办?用我的日志切割脚本
- HttpSession实现购物车功
- z【11-1-2】栈数组模式实现
- 京东用户注意啦:快点改密码吧
- Hdu_2585 Hotel(递归)
- 数据流图
- idea 创建maven web 项目时报错
- 移动应用实战(移动OA)之六_生成Android手机APP之一
- Memcached存Session数据、访问安全性、使用场景总结
- ubuntu14.04 lts rabbitVcs安装记录