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 {
}
}