经历了俩个星期,易买网项目如期完工,现在总结一下如何使用cookies实现浏览商品的历史记录。
第一步:创建商品实体类。
第二步:连接oracle数据库。
第三步:创建商品三层架构。
效果图:
在要显示 的地方加入核心代码:
<h2>最近浏览</h2>
<div style="height:200px;display:block;overflow:hidden">
<% //获取所有的cookie
Cookie[] cookies = request.getCookies(); //筛选cookie
if(cookies != null && cookies.length>0){
for(int j = cookies.length-1; j>=0; j--){
String cookieName = cookies[j].getName();
if(cookieName.startsWith("product-view")){ //调用查询商品的方法
List<easybuy_product> list4 = productbiz.product(cookies[j].getValue());
request.setAttribute("list4",list4); %>
<c:forEach var="hao" items="${requestScope.list4}" >
<dl class="clearfix">
<dt><img src="${hao.ep_file_name}" width="50px"/></dt>
<dd><a href="addcookie?id=${hao.ep_id}" target="_blank">${hao.ep_name}</a></dd> </dl>
</c:forEach>
<%}}}%>
</div>
点击跳转查看商品详细页代码如下:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
//获取商品id
request.setCharacterEncoding("utf-8");
String book = request.getParameter("id");
Cookie[] cookies = request.getCookies();
List<Cookie> cookieList = new ArrayList<Cookie>();
Cookie tempCookie =null; //筛选cookie
if(cookies != null && cookies.length>0){
for(Cookie c:cookies){
String cookieName = c.getName();
if(cookieName.startsWith("product-view")){
cookieList.add(c);
} if(c.getValue().equals(book)){
tempCookie = c;
}
}
} if(cookieList.size()>=10 && tempCookie==null){
tempCookie = cookieList.get(0);
} Cookie cookie = new Cookie("product-view"+book,book);
response.addCookie(cookie); %>
这样就实现了商品的浏览记录。