使用cookies查询商品详情

9/6/2015来源:Java教程人气:1757

使用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);%>

<%      //获取商品idrequest.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>