使用cookies查询商品详情

易买网项目完工,把一些新知识记录下来,以便以后查阅,也方便他人借阅。介绍使用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");
         //获取商品id
        String 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>
时间: 2024-08-09 19:50:47

使用cookies查询商品详情的相关文章

使用cookies查询商品浏览记录

经历了俩个星期,易买网项目如期完工,现在总结一下如何使用cookies实现浏览商品的历史记录. 第一步:创建商品实体类. 第二步:连接oracle数据库. 第三步:创建商品三层架构. 效果图: 在要显示 的地方加入核心代码: <h2>最近浏览</h2> <div style="height:200px;display:block;overflow:hidden"> <% //获取所有的cookie Cookie[] cookies = requ

easymall项目的商品删除,前台商品分页,商品详情,购物车模块

简单的挑选一下昨天所学的重点知识模块,以备后续的复习 一.购物车模块1.1购物车两种实现的区别:!!!!!!!! 用session保存  缺点:浏览器关闭,session失效时保存在session中购物信息将会消失  后续优化,将购买的信息除了保存在session中以外,还要将购物的信息保存在cookie中,这样  就解决了浏览器关闭购买商品信息丢失的问题(但是解决不了跟换电脑信息丢失的问题)  优点:不用操作数据库,可以减少数据库访问压力 数据库中:  缺点:只用登录的用户才能添加购物车   

商品详情页面的显示

当点击商品图片的时候,会跳转到商品的详情页面,我们看下具体是如何实现的: 1.点击商品的图片,打开商品详情页面 a)         商品基本信息 b)        延迟加载商品详情.延迟一秒加载使用ajax c)         商品的规格参数.按需加载,当用户点击商品规格参数tab页,加载ajax. 如图:点击图片后显示内容如下: 所以需要从三个表中获取数据,发布服务接口: 需要在taotao-rest工程中发布服务 1.取商品基本信息的服务 2.取商品描述的服务 3.取商品规格的服务 需

SSH网上商城---商品详情页的制作

在前面的博文中,小编分别简单的介绍了邮件的发送以及邮件的激活,逛淘宝的小伙伴都有这样的体会,比如在搜索框中输入连衣裙这个商品的时候,会出现多种多样各种款式的连衣裙,连衣裙的信息包括价格,多少人购买,商品的名称等等,但是这些信息不够详情,我们需要了解更多的关于连衣裙的详情,点击某个商品,跳转页面,查看连衣裙的详情,以前小编逛淘宝的时候,从来都没有想过这个功能是如何实现,只知道一个劲儿的在那儿逛,小编现在接手的这个项目中就遇到这样的功能,点击商品跳转到某个商品的详情页面,这个功能该如何实现呢?不要着

亿级商品详情页架构演进技术解密 | 高可用架构系列

亿级商品详情页架构演进技术解密 | 高可用架构系列 --http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&idx=1&sn=3be9d2b53c7fec88716ee8affd2515f8&scene=1&srcid=UfXZNNOVZZyZjQmp0VOh&from=groupmessage&isappinstalled=0#rd 此文是开涛在[三体高可用架构群]之分享内容

电商网站商品模型之商品详情页设计方案

如下设计方案参考淘宝和华为商城 SKU SPU的关系 SPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.例如iphone4就是一个SPU,与套餐.存储容量.颜色无关. SKU=stock keeping unit(库存量单位)SKU即库存进出计量的单位, 可以是以件.盒.托盘等为单位.SKU是物理上不可分割的最小存货单元.在使用时要根据不同业态,不同管理模式来处理.例如32G

构建需求响应式亿级商品详情页

原文出处: 张开涛 该文章是根据velocity 2015技术大会的演讲<京东网站单品页618实战>细化而来,希望对大家有用. 商品详情页是什么 商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口.京东商城目前有通用版.全球购.闪购.易车.惠买车.服装.拼购.今日抄底等许多套模板.各套模板的元数据是一样的,只是展示方式不一样.目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基础服务做不了的都放我们这,因此我们需要一种架构能快速响应和优雅的解决这些需求问题.

JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存

1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 第一步:引用相关的jar包. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> &l

商品详情页系统架构

一般的电商演变: 商品详情页系统架构演进历程 第一个版本 架构设计 J2EE+Tomcat+MySQL 动态页面,每次请求都要调用多个依赖服务的接口,从数据库里查询数据,然后通过类似JSP的技术渲染到HTML模板中,返回最终HTML页面 架构缺陷 每次请求都是要访问数据库的,性能肯定很差 每次请求都要调用大量的依赖服务,依赖服务不稳定导致商品详情页展示的性能经常抖动 第二个版本 架构设计 页面静态化技术 通过MQ得到商品详情页涉及到的数据的变更消息 通过Java Worker服务全量调用所有的依