知识学习——Servlet会话技术
2018-01-01 21:53
489 查看
1.Cokkie
详细API网上可以轻易百度到:点击前往显示用户上次登录时间
@WebServlet("/Last") public class LastAccessServlet extends HttpServlet { private static final long serialVersionUID = 1L; public LastAccessServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String lastAccessTime=null; //获取所以cookie Cookie[] cookies=request.getCookies(); //遍历,名称为lastAccess,获取它的值 for(int i=0;cookies!=null&&i<cookies.length;i++) { if("lastAccess".equals(cookies[i].getName())) { lastAccessTime=cookies[i].getValue(); break; } } //判断cookie是否存在 if(lastAccessTime==null) { response.getWriter().println("首次访问"); } else { response.getWriter().println("上次访问时间: "+lastAccessTime); } //创建cookie,并把当前时间作为值发给客户端 String currentTime=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()); Cookie cookie=new Cookie("lastAccess", currentTime); //发送cookie response.addCookie(cookie); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
2.Session
API实现购物车
Book类public class Book implements Serializable{ private static final long serialVersionUID = 1L; private String id; private String name; public Book() {} public Book(String id, String name) { super(); this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
模拟数据库操作 BookDB类
public class BookDB { private static Map<String,Book> books=new LinkedHashMap<String,Book>(); static { books.put("1",new Book("1","Java开发")); books.put("2",new Book("2","C开发")); books.put("3",new Book("3","C++开发")); books.put("4",new Book("4","C#开发")); books.put("5",new Book("5","Ruby开发")); } public static Collection<Book> getAll(){ return books.values(); } public static Book getBook(String id) { return books.get(id); } }
显示图书列表的servlet:ListBookServlet类
@WebServlet("/ListBook") public class ListBookServlet extends HttpServlet { private static final long serialVersionUID = 1L; public ListBookServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); Collection<Book> books=BookDB.getAll(); out.write("图书列表:<br />"); for(Book book:books) { String url="/ServletTest/Purchase?id="+book.getId(); out.write(book.getName()+"<a href='"+url+"'>点击购买</a><br />"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
处理类 PurchaseServlet类
功能:将用户购买的图书信息保存到session中,并重定向到已购买页面。
@WebServlet("/Purchase") public class PurchaseServlet extends HttpServlet { private static final long serialVersionUID = 1L; public PurchaseServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取购买商品id String id=request.getParameter("id"); //如果ID为空,重定向到图书列表页面 if(id==null) { response.sendRedirect("/ServletTest/ListBook"); return; } Book book=BookDB.getBook(id); //获取session对象 HttpSession session=request.getSession(); List<Book> cart=(List) session.getAttribute("cart"); if(cart==null) { //首次购买,创建购物车 cart=new ArrayList<Book>(); //将购物车存入session对象 session.setAttribute("cart", cart); } cart.add(book); //创建Cookie存放session的标识号 Cookie cookie=new Cookie("JSESSIONID", session.getId()); cookie.setMaxAge(60*30); cookie.setPath("/ServletTest"); response.addCookie(cookie); response.sendRedirect("/ServletTest/Cart"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
购物车类:CartServlet
@WebServlet("/Cart") public class CartServlet extends HttpServlet { private static final long serialVersionUID = 1L; public CartServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); List<Book> cart=null; boolean purFlag=true; HttpSession session=request.getSession(false); if(session==null) { purFlag=false; } else { cart=(List)session.getAttribute("cart"); if(cart==null) { purFlag=false; } } if(!purFlag) { out.write("对不起,您没购买任何商品"); } else{ out.write("您购买的商品有:<br />"); for(Book book:cart) { out.write(book.getName()+"<br />"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- 20160403servlet学习笔记会话技术之cookie
- Servlet学习-会话技术cookie
- Servlet学习-会话技术session
- Servlet学习之会话技术
- Servlet学习-会话技术cookie
- java web Servlet 学习笔记 -3 会话管理技术
- java web Servlet 学习笔记 -3 会话管理技术
- Servlet会话技术简介
- 学习逆向知识之用于游戏外挂的实现.第一讲,通过游戏外挂.学习逆向技术指超级马里奥.
- jsp/servlet相关技术及知识
- Java核心技术知识学习
- 在学习技术的过程中就是要一步一个脚印,总有一天会豁然开朗,不知不觉的发现所有知识都串起来了,一件很神奇的事情
- Servlet会话跟踪技术
- 学习笔记:计算机的加密和解密技术知识普及
- 2015-02-05最近觉得技术上止步不前,原来我很久没有更新知识了,很久没有学习新知识了。
- [学习笔记] Java核心技术 卷一:基础知识 集合(六)
- servlet技术学习随笔
- Java EE学习笔记之一——JSP/Servlet相关技术
- 传智播客servlet学习,Servlet的概念和前置知识
- [学习笔记] Java核心技术 卷一:基础知识 异常、断言和曰志(四)