cookie和session的学习

一.cookiehtml

1.什么是cookiejava

当用户访问服务器时,服务器会给浏览器发送一些信息 这些信息保存在cookie中。当浏览器再次访问服务器时,会在请求头中将cookie传给服务器,方便服务器对浏览器作出正确的响应浏览器

cookie就是这张小纸条服务器

2.cookie案例入门cookie

服务器添加cookie给浏览器session

public class cookie extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Cookie cookie = new Cookie("zhangsan","23");
        response.addCookie(cookie);
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);
    }
}

服务器获取浏览器请求携带的cookieapp

Cookie[] cookies = request.getCookies();
        for(Cookie c:cookies){
            String name = c.getName();
            String value = c.getValue();
            System.out.println(name+": "+value);
        }

①浏览器请求时会接受到服务器传递的cookie。url

②浏览器再次请求时会将cookie传递给服务器spa

二.session.net

 

1.什么是Session

Session通常译为会话,是解决Http协议的无状态问题的方案,能够将一次会话中的数据存储在服务器端的内存中,保证在下一次的会话中能够使用。

在客户端浏览器第一次向服务器端发送请求时,服务器端会为这个客户端建立独有的Session,并具备惟一的Session ID,存储在服务器端的内存中。在客户端第二次访问服务器端时,会携带Session ID在请求中,服务器端会根据Session ID查找对应的Session信息,进行进一步地操做。

在JavaEE中提供了javax.servlet.http.HttpSession接口,经过该接口能够将共享的数据内容存储在HttpSession对象中,从而解决Http协议的无状态问题。

2.getsession的执行

 

第一次执行getSession方法,getSession会去请求头中寻找Cookie信息,Cookie名字:JSESSIONID。第一次执行没有这个cookie信息,因此直接建立一个新的Session对象,并将Session的ID,保存到Cookie中,发给浏览器。

第N次执行getSession方法,getSession会去请求头中寻找Cookie信息,若是Cookie中没找到,就建立一个新的。

若是Cookie中有Jsessionid信息,寻找内存中对应的Session对象,若是找不到,从新建立一个新的,而且写新的JSESSIONID进入cookie;

若是Cookie中Jsessionid信息能够对应上Session对象就直接将这个Session对象返回并使用

getSession()    ==    getSession(true)

getSession(false);   --à惟一区别是,若是找不到session对象,直接返回null

 代码示例:

request.getSession().setAttribute("loginUser", loginResust);

前台获取存入session的值

当前登陆用户:${loginUser.name }
相关文章
相关标签/搜索