显示浏览过的商品--Servlet代码

 
GoodsDetailServlet文件    在web.xml文件中访问网址写为/detail.do
package cn.csdn.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.csdn.web.domain.Goods;
import cn.csdn.web.service.GoodsService;
import cn.csdn.web.service.GoodsServiceImpl;


public class GoodsDetailServlet extends HttpServlet {

	private GoodsService gService = new GoodsServiceImpl();
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String id = request.getParameter("id");
		Integer numId = Integer.parseInt(id);
		Goods entity = gService.findById(numId);
		response.setCharacterEncoding("utf-8");
		response.setHeader("Context-type", "text/html;charset=utf-8");
		

		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>XXX网站的首页</TITLE></HEAD>");
		out.println("  <BODY>");
		out.println("<table >");
		out.println("<tr>");
		out.println("<th>序号</th><th>名称</th><th>价格</th><th>图片</th><th>描述信息</th>");
		out.println("</tr>");
		
			out.println("<tr><td>"+entity.getId()+"</td>" +
					"<td>"+
					entity.getName()+
							"<td>"+entity.getPrice()+"</td>"+
							"<td>"+entity.getImg()+"</td>"+
							"<td>"+entity.getRemark()+"</td><tr>");
	
		out.println("</table>");
		out.println("  </BODY>");
		out.println("</HTML>");
		
		//发送cookies信息
		String value = MakeCookieValue(request,id);
		//产生一个cookie对象
		Cookie cookie = new Cookie("goodsHistory",value);
		cookie.setMaxAge(60*60);
		cookie.setPath("/20111024");
		//响应
		response.addCookie(cookie);
		
		
		out.flush();
		out.close();
		
	}


	private String MakeCookieValue(HttpServletRequest request, String id) {
		//声明返回变量
		String goodsHistory = null;
		//获取cookie
		Cookie	cookies[] = request.getCookies();
		for(int i=0;cookies!=null&i<cookies.length;i++){
			if("goodsHistory".equals(cookies[i].getName())){
				goodsHistory=cookies[i].getValue();
			}
		}
		//第一访问:
		//goodsHistory==null id=1  goodsHistory=1;
		//第二次访问:
		//goodsHistory==1 id=2  goodsHistory==2_1
		//第三次访问
		//goodsHistory==2_1 id=3 goodsHistory==3_2_1
		//第四次访问
		//goodsHistory==3_2_1  id=2 goodsHistory==2_3_1
			
		if(goodsHistory==null){
			goodsHistory=id;
		}else{
			LinkedList<String> list = new LinkedList<String>(Arrays.asList(goodsHistory.split("\\_"))) ;
			if(list.contains(id)){
				list.remove(id);
				list.addFirst(id);
			}else{
				if(list.size()>=3){
					list.removeLast();
					list.addFirst(id);
				}else{
					list.addFirst(id);
				}
			}
			StringBuffer sb = new StringBuffer();
		for(String ids:list){
			sb.append(ids+"_");
		}
		sb.deleteCharAt(sb.length()-1);
		goodsHistory = sb.toString();
		}	
		return goodsHistory;
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
		
	
	}

}

   GoodsListServlet文件    在web.xml文件中访问网址写为/list.do
GoodsListServletGoodsListServletGoodsListServletGoodsListServletGoodsListServletGoodsListServlet

package cn.csdn.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.csdn.web.domain.Goods;
import cn.csdn.web.service.GoodsService;
import cn.csdn.web.service.GoodsServiceImpl;
//用这个servlet显示首页
public class GoodsListServlet extends HttpServlet {

	private GoodsService gService = new GoodsServiceImpl();

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		
		//显示所有的商品信息
		List<Goods> entities = gService.findAll();
		response.setCharacterEncoding("utf-8");
		response.setHeader("Context-type", "text/html;charset=utf-8");
		

		PrintWriter out = response.getWriter();
		out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
		out.println("<HTML>");
		out.println("  <HEAD><TITLE>XXX网站的首页</TITLE></HEAD>");
		out.println("  <BODY>");
		out.println("<table>");
		out.println("<caption>显示本网站所有的商品信息</caption>");
		out.println("<tr>");
		out.println("<th>序号</th><th>名称</th><th>价格</th>");
		out.println("</tr>");
		for(Goods entity:entities){
			out.println("<tr><th>"+entity.getId()+"</td>"+
					"<td><a href = \"detail.do?id="+entity.getId()+"\">"+entity.getName()+"</td>"+
					"<td>"+entity.getPrice()+"</td><tr>");
	    
		}
		out.println("</table>");	
		out.println("  </BODY>");
		out.println("</HTML>");
		
		//显示浏览过的商品信息
		
		//声明浏览过的商品的value值
		String value = null;
		//cookie
		Cookie cookies[] = request.getCookies();
		//遍历
		for(int i=0;cookies!=null&&i<cookies.length;i++){
			//浏览过商品的cookie cookie name value
			if("goodsHistory".equals(cookies[i].getName())){
				value = cookies[i].getValue();
			}
		}
		//判断value 1    2_1    3_2_1
		if(value!=null){
			//第一步:拆分
			String ids[] = value.split("\\_");
	
			out.println("显示曾经浏览过的商品信息");
			out.println("<table>");
			out.println("<tr><th>商品名称</th></tr>");
			for(int i=0;i<ids.length;i++){
				out.println("<tr>");
					out.println("<td>"+gService.findById(Integer.parseInt(ids[i])).getName()+"</td>");
				out.println("</tr>");
			}
			
			out.println("</table>");
		}
		
		out.flush();
		out.close();
		
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值