易买网项目完工,把一些新知识记录下来,以便以后查阅,也方便他人借阅。介绍使用cookies查询商品详情。

第一步:建立商品实体类。

第二步:连接Oracle数据库。

第三步:使用三层架构。

效果图如下:

当我看中新疆牛肉干,商品点击时,进入查看商品详情页。

商品详情页:

核心代码如下:

 <%//创建商品业务逻辑对象productBiz prodctbiz = new productBizImpl();List<easybuy_product> productlist = prodctbiz.findproductList();request.setAttribute("productlist",product);
%>//EL表达式
核心架包<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>//EL表达式:
<c:forEach var="news" items="${requestScope.productlist}" ><li class="ck"><dl><dt><a href="addcookie?id=${news.ep_id}"><img src="${news.ep_file_name}" /></a></dt><dd class="title"><a href="addcookie?id=${news.ep_id}">${news.ep_name}</a></dd><dd class="price">¥${news.ep_price}.00</dd></dl></li></c:forEach>

第二步:在Servlet创建addcookie.java页面,获取商品id:(注意:必须在web.xml写入)

        <!--商品id存在cookies--><servlet><servlet-name>addcookie</servlet-name><servlet-class>Servlet.addcookie</servlet-class></servlet><!-- 映射servlet --><servlet-mapping><servlet-name>addcookie</servlet-name><url-pattern>/addcookie</url-pattern></servlet-mapping>

package Servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class addcookie extends HttpServlet {/*** Constructor of the object.*/public addcookie() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here
    }public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();request.setCharacterEncoding("utf-8");//获取商品idString id = request.getParameter("id");//转发的页面response.setHeader("refresh", "0;url=/yimaiWang/product-view.jsp?id="+id);Cookie[] cookies = request.getCookies();String visitlist = null;if (cookies != null) { for (Cookie cookie : cookies) {if (cookie.getName().equals("visitlist")) {visitlist = cookie.getValue();break;}}if (visitlist == null) {Cookie cookie = new Cookie("visitlist", id);cookie.setMaxAge(180);response.addCookie(cookie);} else {String[] existIds = visitlist.split(",");for (String exsitId : existIds) {if (exsitId.equals(id)) {return;}}Cookie cookie = new Cookie("visitlist", visitlist + "," + id);cookie.setMaxAge(180);response.addCookie(cookie);}} else {Cookie cookie = new Cookie("visitlist", id);cookie.setMaxAge(180);response.addCookie(cookie);}}}

第三步:跳转商品详情页product-view.jsp(这俩个查询语句不同,一个是查询商品id,一个是商品List集合)

public easybuy_product findProductForid(int id) {con=this.getConnection();int i =id;String sql = "select * from easybuy_product where ep_id =?";easybuy_product pd = new easybuy_product();try {st=con.prepareStatement(sql);st.setInt(1,id);rs=st.executeQuery();    while(rs.next()){pd.setEp_id(rs.getInt(1));pd.setEp_name(rs.getString(2));pd.setEp_description(rs.getString(3));pd.setEp_price(rs.getInt(4));pd.setEp_stock(rs.getInt(5));pd.setEpc_id(rs.getInt(6));pd.setEpc_child_id(rs.getInt(7));pd.setEp_file_name(rs.getString(8));}} catch (SQLException e) {// TODO Auto-generated catch block
        e.printStackTrace();return null;}finally{this.ShiFang(rs, st, con);}return pd;
}
}

public List<easybuy_product> product(String id) {List<easybuy_product> listproduct=new ArrayList<easybuy_product>();// TODO Auto-generated method stub
con = this.getConnection();String sql="select * from easybuy_product where ep_id=?";try {st=con.prepareStatement(sql);st.setString(1,id);rs=st.executeQuery();while(rs.next()){easybuy_product product = new easybuy_product();product.setEp_id(rs.getInt(1));product.setEp_name(rs.getString(2));product.setEp_description(rs.getString(3));product.setEp_price(rs.getInt(4));product.setEp_stock(rs.getInt(5));product.setEpc_id(rs.getInt(6));product.setEpc_child_id(rs.getInt(7));product.setEp_file_name(rs.getString(8));listproduct.add(product);}} catch (SQLException e) {// TODO Auto-generated catch block
        e.printStackTrace();this.ShiFang(rs, st, con);}return listproduct;
}

<%
//获取商品id
int id = Integer.parseInt(request.getParameter("id"));
productBiz bizvoid = new productBizImpl();
easybuy_product shop = bizvoid.findProductForid(id);
request.setAttribute("shop",shop);
%>

<% //获取商品id
request.setCharacterEncoding("utf-8");
String a = request.getParameter("id");
%><%//创建商品信息业务逻辑对象productBiz productbiz = new productBizImpl();List<easybuy_product> list =productbiz.product(a);request.setAttribute("list",list);%><div id="product" class="main"><c:forEach var="product" items="${requestScope.list}" ><h1><%=shop.getEp_name() %></h1></c:forEach><div class="infos"><c:forEach var="product" items="${requestScope.list}" ><div class="thumb"><img src="${product.ep_file_name}" width="300px" /></div><div class="buy"><p>商品描述:<span class="price">${product.ep_description}</span></p><p>商城价:<span class="price">¥${product.ep_price}.00</span></p><c:if test="${product.ep_stock==null}"> <p class="w1 c">缺货</p></c:if><c:if test="${product.ep_stock!=null}"> <p class="w1 c">有货</p></c:if><c:if test="${name==null}"> <script type="text/javascript">function ck(){alert("你未登入,请去登入吧!");return false;}</script></c:if>

转载于:https://www.cnblogs.com/wlx520/p/4578836.html

使用cookies查询商品详情相关推荐

  1. 淘淘商城第78讲——查询商品详情添加缓存的分析

    通过上文的学习,我相信大家一定实现了商品详情页面的展示,接下来我们将学习如何在商品详情页面展示时添加缓存. 因为查询商品详情涉及到查询数据库,当商品详情页面的访问的并发量比较高时,查询商品详情都去查询 ...

  2. 商城-3 查询商品详情页信息

    查询商品详情页信息 上面章节完成了查询spu列表 在商品列表中选中商品后,会显示这个商品的详情信息 商品详情页我们需要显示的信息包括 根据spuId查询spu信息 根据spuId查询spuDetail ...

  3. 盒马鲜生app商品详情查询 python 淘宝h5 sign

    包含查询分类商品列表 mtop.wdk.classify.queryclassifyitemsv4 查询商品详细数据 mtop.wdk.detail.openservice import time i ...

  4. 实战 Java 第8天:开发商品详情查询接口

    实战 Java 第8天:开发商品详情查询接口 前言 一.在 ProductService 类中添加接口 二.在 ProductMapper 类中添加接口 三.增加 sql 语句 四.在 Product ...

  5. 尚硅谷谷粒商城第十二天 商品详情页及异步编排

    1. 商品详情 当用户搜索到商品,肯定会点击查看,就会进入商品详情页,接下来我们完成商品详情页的展示. 商品详情浏览量比较大,并发高,我们会独立开启一个微服务,用来展示商品详情. 1.1. 创建mod ...

  6. JavaWeb - 仿小米商城(5):商品详情展示

    JavaWeb - 仿小米商城(5):商品详情展示 1 功能描述 接上篇 JavaWeb - 仿小米商城(4):商品列表形式 本篇博客将分析和实现小米商城商品详情内容的查 询和展示.如下所示: 2 功 ...

  7. API电商平台获取淘宝商品详情

    API淘宝详情获取 请求接口都需要携带token 获取token 一.购物车的存储形式 1.cookie存放数据 无须登录.无须查库.保存在浏览器端优点:性能好.访问快.没有和数据库交互.缺点1:换浏 ...

  8. 谷粒商城十五商品详情CompletableFuture异步编排

    多线程异步任务的问题 例如a,b,c三个异步任务,不是随机运行就可以,它们还有一定的关系,c需要等待a的返回结果,b不需要等待谁的结果. 当异步任务产生一些关系和顺序之后,我们要编排好它们的关系进行调 ...

  9. 框架 day81 涛涛商城项目-实现首页搜索功能,商品详情,描述,规格展示

    淘淘商城第九天 讲师:入云龙 今天的内容: 1.在taotao-portal工程中调用taotao-search工程发布的服务.实现商品搜索功能. 2.点击商品的图片,打开商品详情页面 a)      ...

最新文章

  1. 构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)
  2. linux libasan.so,Address Sanitizer 用法
  3. K8S安全军规101:对CNCF最佳实践的扩充
  4. 智能合约从入门到精通:Solidity Assembly
  5. 监控WIN2003文件服务器上的文件夹和文件的复制、删除
  6. 程序员为什么需要框架?
  7. gulp的安装和配置详解
  8. SDOI 2016 游戏
  9. 支付宝架构到底有多牛逼!原来是这样的,真的超乎想象~
  10. ESP32 Https server 错误Header fields are too long for server to interpret
  11. 地理坐标系VS大地坐标系
  12. OUC_SE_Group04_Blog2
  13. 威斯康星乳腺癌良性预测
  14. Candy Crush Soda 赏析
  15. leetcode 1217. 玩筹码
  16. ERP行业推荐参考书籍
  17. 装了linux无法进入bios设置u盘启动,装了linux无法进入bios设置密码
  18. 什么是开源?开源等于免费吗?
  19. go程序设计语言-目录
  20. 关于发明专利申请的一点小常识

热门文章

  1. mysql mvcc 读写阻塞_mysql面试题MVCC原理事务隔离级别_aiailingfei的博客-CSDN博客
  2. 突破次元壁障,Python爬虫获取二次元女友
  3. c+智能指针源码分析_C ++中的智能指针
  4. c foreach循环_C ++中的foreach循环
  5. hadoop和hdfs命令_Hadoop 1.x和2.x HDFS基本开发人员命令,“ hadoop”命令
  6. Java面试题:Java设计模式11道常见面试题
  7. MikroTik RouterOS使用U盘安装提示FATAL ERROR: no CD-ROM found Press ENTER to reboot的问题解决...
  8. [SCOI2005][BZOJ 1084]最大子矩阵
  9. hidden symbol `pthread_atfork'
  10. mycat1.4.1小白用户入门(一)