cookie session application
2013-03-20 12:44 功夫猫 阅读(273) 评论(0) 收藏 举报cookie
1.保存在客户端,浏览器提供一个位置用来保存;
2.它只能保存文件;
3.有两种方式保存,一保存在浏览器内存里,二以文件的形式保存;
4.如果设置了SetMaxAge()就以文件的形式保存,设置时间过期后消失;否则保存在浏览器内,浏览器关闭,消失。
5.只能拿到当前路径和子路径下创建的cookie.(保证创建的cookie和cookie的servlet);
package com.kebin.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class buyServlet extends HttpServlet { //接收页面数据,POST请求 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置网页编码,UTF-8,GBK,GB2312等; request.setCharacterEncoding("GB2312"); response.setCharacterEncoding("GB2312"); //request.getParameterValues() 方法接收数组 String[] books = request.getParameterValues("books"); int num=0; Cookie[] cookies = request.getCookies(); for(int i =0;i<books.length;i++) { //在cookie 里面查找是否已经购买此书 for(int j=0;j<cookies.length;j++) { if(books[i].equals(cookies[j].getName())) { num = Integer.parseInt(cookies[j].getValue()); break; } } Cookie cookie = new Cookie( books[i], num+1+""); response.addCookie(cookie); } response.sendRedirect("showServlet"); } }
package com.kebin.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class showServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("GB2312"); response.setCharacterEncoding("GB2312"); Cookie[] cookies = request.getCookies(); PrintWriter out = response.getWriter(); out.print("您购买的书籍有:"); for (int j=0;j<cookies.length;j++) { System.out.println(cookies[j].getName()+"===="+cookies[j].getValue()); out.print(cookies[j].getName()+"有"+cookies[j].getValue()+"本 "); } out.flush(); out.close(); request.getRequestDispatcher("b.jsp").forward(request, response); } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="buyServlet" method="post"> 购买的书籍:<br /> java:<input type="checkbox" name="books" value="java"><br/> c:<input type="checkbox" name="books" value="c"><br/> c++:<input type="checkbox" name="books" value="c++"><br/> .net:<input type="checkbox" name="books" value=".net"> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> </body> </html>
b.jsp 什么都不用写。
Session
1.保存在服务器,java内存内;
2.可保存java所有数据类型;
3.过期时间,由服务器设置。
4.cookie session 用户级别的;application 全局共享;
package com.kebin.listener; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyapplicationListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { System.out.println("1111111111111"); } public void contextInitialized(ServletContextEvent event) { // event.getServletContext().setAttribute("userList", new ArrayList<String>()); // 当前网站历史总访问量: int num = 1; ServletContext application = event.getServletContext(); if (application.getAttribute("num")!=null) { num = Integer.parseInt(application.getAttribute("num").toString()); num++; } application.setAttribute("num", num); //当前在线用户: /* String userlist =((User) (request.getSession().getAttribute("user"))).getUsername(); application.setAttribute("userlist", userlist); */ } }
浙公网安备 33010602011771号