jsp购物车简单实现思想(一)
目录
学习目标:
1.通过超链接a传参将所点击购买的商品id传到处理页面doShopCart.jsp进行处理
2.接收超链接a所传productid并进行处理
3.接收处理后的存储多个id的ArrayList aList购物车列表,通过ProItemDaoImp类的getProItemByIds(aList)方法从数据库取出商品id所对应的商品信息
4.通过实现类ProItemDaoImp调getProItemByIds(aList)方法获得商品集合通过遍历输出在页面上
学习目标:
理解并掌握jsp中购物车的简单实现思想
核心步骤
1.通过超链接a传参将所点击购买的商品id传到处理页面doShopCart.jsp进行处理
所需的主要知识:超链接传参,jsp表达式
核心代码:
<a href="doShopCart.jsp?productid=<%=p.get("productid") %>">
商品列表展示:
2.接收超链接a所传productid并进行处理
所需的主要知识:session对象getAttribute(),setAttrubute()方法,request对象的get.getParameter()方法
核心代码:
<%//从商品列表获取添加到购物车 String id=null;//判断购物车列表是否为空,若不为空则先获取该列表再传商品id//此判断是重点⭐⭐⭐if(session.getAttribute("cartList")!=null){//获得idid=request.getParameter("productid");//接收购物车列表ArrayList<String> cartList=(ArrayList<String>)session.getAttribute("cartList");cartList.add(id);//更新购物车列表session.setAttribute("cartList",cartList);//重定向到购物车response.sendRedirect("shopCart.jsp");}else{//若为空则先创建购物车列表再添加商品id//创建购物车列表存储idArrayList<String> cartList=new ArrayList<String>();//同上id=request.getParameter("productid");cartList.add(id);session.setAttribute("cartList",cartList);response.sendRedirect("shopCart.jsp");} %>
3.接收处理后的存储多个id的ArrayList aList购物车列表,通过ProItemDaoImp类的getProItemByIds(aList)方法从数据库取出商品id所对应的商品信息
所需要的知识:数据库连接(略),sql语句的查询,ArrayList,泛型
核心代码
//工具类
public class DataBase {static String driver="com.mysql.jdbc.Driver";//驱动字符串static String url="jdbc:mysql:///mypos?characterEncoding=utf-8";////连接字符串1 **所需连接数据库的名称***static String username="root";//数据库访问用户名static String password="123";//数据库访问密码PreparedStatement ps=null; Connection conn=null;Statement sm=null;ResultSet rs=null;public Connection getConn() {return conn;}public void setConn(Connection conn) {this.conn = conn;}public Statement getSm() {return sm;}public void setSm(Statement sm) {this.sm = sm;}public ResultSet getRs() {return rs;}public void setRs(ResultSet rs) {this.rs = rs;}public DataBase(){try {//1.加载驱动Class.forName(driver);//2.建立连接conn=DriverManager.getConnection(url, username, password);sm=conn.createStatement(); //3.执行sql语句(封装到方法中) } catch (ClassNotFoundException e) { e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}//执行sql语句获得结果集public ResultSet getResult(String sql){try {return rs=sm.executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs; }}//类的daopublic interface ProItemDao { public ArrayList<HashMap<String,Object>> getProItemByIds(ArrayList<String> idList);
}//类的daoImppublic class ProItemDaoImp extends DataBase implements ProItemDao {@Overridepublic ArrayList<HashMap<String, Object>> getProItemByIds(ArrayList<String> idList) {ArrayList<HashMap<String, Object>> aList=new ArrayList<HashMap<String,Object>>();String sql=null;ResultSet rs=null;//通过遍历将购物车列表中的id分别执行查询,并且将所有结果添加到ArrayList结果集中for (String id:idList) {sql="SELECT p.productid,p.name,i.listprice,i.status"+" FROM product p,item i,category c"+" WHERE p.productid=i.productid && p.productid='"+id+"' && p.category=c.catid";//根据自己的需求去拼接sql语句//通过getResult 方法获得结果集rs = this.getResult(sql); try {while(rs.next()){//创建HashMap对象将数据存进去HashMap<String, Object> map=new HashMap<>();//根据数据库中表所对应列名存进HashMapmap.put("productid", rs.getString("productid")); map.put("name", rs.getString("name")); map.put("listprice", rs.getDouble("listprice")); map.put("status", rs.getString("status"));//将该对象存到ArrayList中返回获得的结果集aList.add(map); }} catch (SQLException e) { e.printStackTrace();}} return aList;}}
4.通过实现类ProItemDaoImp调getProItemByIds(aList)方法获得商品集合通过遍历输出在页面上
所需要的知识:HashMap中操作方法,遍历
核心代码:
<%//从carList存储的id获得购物车列表ProItemDaoImp pidi=new ProItemDaoImp(); //接收购物车列表ArrayList<String> a=(ArrayList<String>)session.getAttribute("cartList");//通过ProItemDaoImp类中的getProItermByIds方法,//获得购物车列表中存的多个id获取商品信息ArrayList<HashMap<String,Object>> cart=pidi.getProItemByIds(a); //遍历获得的商品列表,通过循环输出到网页购物车中for(HashMap<String,Object> hm:cart){
%><tr ><td><%=hm.get("productid") %></td><td ><%=hm.get("name") %></td><td ><%=hm.get("listprice") %></td><td>1</td><td><input type="button" value="删除" /></td></tr> <%}%>
购物车列表展示:
总结:该功能重点在通过session对象传递商品id列表和对id列表进行sql处理
jsp购物车简单实现思想(一)相关推荐
- 基于javaweb+JSP+Servlet简单购物车
基于javaweb+JSP+Servlet简单购物车 开发工具:eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 public ...
- 【java web】用jsp实现简单的购物车程序
这里写自定义目录标题 index.jsp 首页 zuce.jsp 注册界面 login.jsp 登录界面 index_OK.jsp 登录成功界面 l1.jsp 商品1[自提交] l2.jsp 商品2[ ...
- jsp oracle 登录页面,Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能
本文主要向大家介绍了Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库表的建立: c ...
- 《复杂》读书笔记(part1)--一些思想是由简单的思想组合而成,我称此为复杂
学习笔记 学习书目:<复杂>- 梅拉妮·米歇尔 文章目录 复杂是什么 复杂系统的共性 如何度量复杂性 复杂是什么 一些思想是由简单的思想组合而成,我称此为复杂:比如美.感激.人.军队.宇宙 ...
- 韩顺平 mysql sqlhelper类_(最全)韩顺平jsp购物车源代码(包含数据库)
[实例简介] 韩顺平的jsp购物车项目,所有源码都在,包含数据库,是网络上最全的 [实例截图] [核心代码] myshopping └── myshopping ├── myshopping │ ...
- python是一种代表简单主义思想的语言_setuptools-36.6.0
setuptools-36.6.0 所属分类:Windows编程 开发工具:Python 文件大小:708KB 下载次数:1 上传日期:2017-10-25 10:37:48 上 传 者:Lhy123 ...
- vue实现购物车简单的功能-单选全选总价计算、批量删除
vue实现购物车简单的功能-----单选全选总价计算.批量删除等 观看了后盾人视频教学,视频里面对于全选和单选的功能没有讲全,于是自己研究了一下,前端小白,也是第一次写博客,有什么不足和可以优化的地方 ...
- JSP实现简单的登录页面实现及代码(非连接数据库)
** JSP实现简单的登录页面实现及代码(非连接数据库) ** 1.实现一个简单的登陆页面: 2.如果登陆成功,提示页面欢迎你,进入我的主页: 3.如果登陆不成功跳转到登陆页面: 4.使用固定用户名和 ...
- python是一种代表简单主义思想的语言_python区别于其他语言的优势是什么
python区别于其他语言的优势: 1.简单,Python是一种代表简单主义思想的语言 阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是 ...
- python购物车简单小程序
通过学习循环.列表等知识,写了购物车简单的程序 注意输入工资,以及输入Id时,需要把其转换为Int类型 # Author:barry allen # -*- coding:utf-8 -*- sala ...
最新文章
- 站在巨人的肩膀上“思考”问题,重在思考而不是拿来主义
- 打一场AI竞赛,让你知道我的厉害
- 一个很不错的开源网站
- 关于eclipse的maven
- 【python】路径前添加 r表示不转义
- 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
- 二叉树N叉数的前中后序遍历总结,python实现递归法和迭代法
- LeetCode 221. 最大正方形(DP)
- linux 测试本地端口是否打开,有效地测试Linux上的端口是否打开?
- java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?
- 计算机二级公共知识总结,计算机二级公共基础知识考点总结
- 过滤字符串 和 select选择后控件值变更
- 客户端地图拼图算法解析
- 用Razor做静态页面生成器
- java dbutils_Java学习之DBUtils
- arm板配置ssh服务
- 计算机电缆对绞节距,耐高温双绞计算机电缆DJFFP2√厂家
- linux下的office 速度慢,针对Libreoffice卡顿奇慢的怪病,这里有一味特效药
- 什么是disjoint-support?
- 【allegro 17.4软件操作保姆级教程一】软件操作环境设置
热门文章
- 联想微型计算机设置键盘开机,联想台式机怎么样设置键盘开机
- 用DIV+Css+Jquery 实现的旧版微信飞机大战。
- 草根站长的你是感觉自豪还是苦逼
- Allavsoft 下载 .m3u8 视频
- 计算机图形学 之 中点画线算法
- dubbo 支持服务降级吗_Dubbo服务降级设置
- Wifite批量破解WEP/WPA/WPS
- 麦子学院bootstrap实战项目官网,后台,jquery.singlePageNav.min.js ,wow.min.js,animate.css使用...
- 【计算机组成与设计】3.4计算机CPU除法运算
- 极光IM简单接入步骤