========学习笔记
Spring mvc框架
调用getHistory();
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.ModelMap;
import com.product.iterface.EntProductInterface;
import com.product.vo.EntProduct;
@Service
public class CookieUtil {
@Autowired
private EntProductInterface entProductInterface;
public String getBrowseringHistroy(String id, HttpServletRequest request) {
String BrowseringHistroy = null;
Cookie[] cookies = request.getCookies();
for (int i = 0; cookies != null && i < cookies.length; i++) {
if (cookies[i].getName().equals("BrowseringHistory")) {
BrowseringHistroy = cookies[i].getValue();
}
}
if (BrowseringHistroy == null) {
return id;
}
LinkedList<String> list = new LinkedList<String>(Arrays.asList(BrowseringHistroy.split(",")));
if (list.contains(id)) {
list.remove(id);
list.addFirst(id);
} else {
if (list.size() >= 4) {
list.removeLast();
list.addFirst(id);
} else {
list.addFirst(id);
}
}
StringBuffer sb = new StringBuffer();
for (String cid : list) {
sb.append(cid + ",");
}
return sb.deleteCharAt(sb.length() - 1).toString();
}
public void history(String id,HttpServletRequest request,HttpServletResponse response,ModelMap model) throws Exception {
//将浏览过的ID保存到Cookie中
String cookieValue = this.getBrowseringHistroy(id, request);
Cookie cookie = new Cookie("BrowseringHistory",cookieValue);
cookie.setMaxAge(2*24*3600);
cookie.setPath("/");
response.addCookie(cookie);
//显示曾经浏览过的商品
List<EntProduct> listProduct = new ArrayList<EntProduct>();
Cookie[] cookies = request.getCookies();
for (int i = 0;cookies!=null && i < cookies.length; i++) {
if (cookies[i].getName().equals("BrowseringHistory")) {
String [] ids = cookies[i].getValue().split(",");
for(String hId : ids ){
EntProduct entProduct = entProductInterface.getEntProduct(hId);
listProduct.add(entProduct);
}
}
}
model.addAttribute("history", listProduct);
}
public void getHistory(HttpServletRequest request,ModelMap model) throws Exception{
//显示曾经浏览过的商品
List<EntProduct> listProduct = new ArrayList<EntProduct>();
Cookie[] cookies = request.getCookies();
for (int i = 0;cookies!=null && i < cookies.length; i++) {
if (cookies[i].getName().equals("BrowseringHistory")) {
String [] ids = cookies[i].getValue().split(",");
for(String hId : ids ){
EntProduct entProduct = entProductInterface.getEntProduct(hId);
listProduct.add(entProduct);
}
}
}
model.addAttribute("history", listProduct);
}
}