Cookie试用

来源:互联网 发布:怎么和淘宝小二联系 编辑:程序博客网 时间:2024/04/28 11:15

简述:

写一段带Cookie的代码, 之后进一步讨论cookie 中sessionID的问题(Apache Tomcat下的测试)


实现:

首次登陆没有cookie, 所以输出的是初始的的cookie

之后访问了TestCookieServlet之后, cookie有了值之后的情况


代码:

TestCookieServlet.java

package test.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;/** * Servlet implementation class TestCookieServlet */public class TestCookieServlet extends HttpServlet {private static final long serialVersionUID = 1L;           public TestCookieServlet() {        super();    }/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();Cookie []cookies = request.getCookies();if(cookies != null){for(Cookie cookie : cookies){out.print(cookie.getName() + ", " + cookie.getValue());}}else{out.println("No Cookie!");}Cookie cookie1 = new Cookie("Jeremy", "20");Cookie cookie2 = new Cookie("Jimmy", "20");response.addCookie(cookie1);response.addCookie(cookie2);}}



web.xml对应servlet的mapping

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  version="2.5">  <display-name>TestWebProject</display-name>  <welcome-file-list>      <welcome-file>welcome.jsp</welcome-file>    </welcome-file-list>    <servlet>  <servlet-name>TestCookieServlet</servlet-name>  <servlet-class>test.servlet.TestCookieServlet</servlet-class>    </servlet>      <servlet-mapping>  <servlet-name>TestCookieServlet</servlet-name>  <url-pattern>/TestCookie</url-pattern>    </servlet-mapping>  </web-app>


测试1(从另一个页面用href进入servlet):

首页

(首次)点击进入:

其实Cookie中已经有数据了 是记录session的信息

Tomcat中用户登陆之后,服务器端会为用户开辟一块内存区域,用以存放会话的内容,Tomcat中就是使用这个JSESSIONID来找到你的内存区域

之后每向服务器做请求,从浏览器发过来的Cookie中就会包含这个JSESSIONID,在服务器端找寻你之前的session, 取出你要的数据。


(二次)刷新页面,发现在TestCookieServlet中,已经加入了Cookie



测试2:

之后重新设计了,直接请求Servlet


刷新之后:





cookie设置时间

$.ajax({type: "post",url: '/cpa/topic/student/getUserInfo',  dataType:"json", data: {userId: userId}, success: function(userInfo){  setUserInfoToPopWindow(popWin, userInfo)var dateNow = new Date();var dateExpired = new Date();dateExpired.setTime(dateNow.getTime() + (60 * 1000));$.cookie(userId, JSON.stringify(userInfo), {expires: dateExpired})}  });




原创粉丝点击