package com.dp.javaweb.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
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 com.dp.javaweb.Bean.Book;
import com.dp.javaweb.Bean.BookDtatbase;
import com.dp.javaweb.Constant.Costant;
public class ShowBooksAll extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
//显示书籍的详细内容
String id=request.getParameter("id");
Book book=BookDtatbase.findBookId(id);
out.write(book.toString());
//向客户端写回bookhistory名字的Cookie
String ids=makeIds(request,id);
Cookie c=new Cookie(Costant.BOOK_HISTORY, ids);
c.setMaxAge(60*60);
c.setPath(request.getContextPath());
response.addCookie(c);
}
//组织ID情况分析
// 原有的cookie中的id 当前新访问的书的id 应该写回的id
//a、Cookie[] cs为null 1 bookHistory=1
//b、没有bookHistory的cookie 1 bookHistory=1
//c、1 2 bookHistory=2-1
//d、2-1 1 bookHistory=1-2
//e、1-2 3 bookHistory=3-1-2
//f、1-2-3 2 bookHistory=2-1-3
//g、2-1-3 4 bookHistory=4-2-1
private String makeIds(HttpServletRequest request, String id) {
Cookie cs[]=request.getCookies();
//a情况
if(cs==null){
return id;
}
//b情况
Cookie cookie=null;
for(Cookie c:cs){
if(Costant.BOOK_HISTORY.equals(c.getName())){
cookie=c;
break;
}
}
//cdefg
String ids[]=cookie.getValue().split("\\-");
//用linkedlist就可以做这种方式的添加与删除
LinkedList<String> list=new LinkedList<String>(Arrays.asList(ids));
//cde
if(list.size()<3){
if(list.contains(id)){
list.remove(id);
}
list.addFirst(id);
}else{//fg
if(list.contains(id)){
list.remove(id);
}else{
list.remove(id);
}
list.addFirst(id);
}
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
if(i>0){
sb.append("-");
}
sb.append(list.get(i));
}
return sb.toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
javaweb中Cookie对用户密码保存的例子
3星 · 超过75%的资源 需积分: 50 79 浏览量
2015-09-29
18:07:16
上传
评论 1
收藏 13KB RAR 举报
黯雅悸动
- 粉丝: 146
- 资源: 106
最新资源
- IMG_20240425_120538.jpg
- My Complete Genome_6k Base-Pairs of Phenotype SNPs_Complete Raw Data.zip
- qt 的mqtt测试demo
- 移动应用开发教程-zip.zip
- mosquitto-2.018-install-windows-x64
- FTPServer FTP 服务器,绿色免安装,单文件
- 梦畅语音点名软件,上课点名
- 利用ADNI数据集和标签,在tensorflow框架上使用tensorlayer接口,通过架构u-net实现海马体的分割
- Kutools for Word v9.0 office word 插件
- 修复Windows 10 LTSC 2021资源占用率高
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈