smallFishBug 发表于 2017-8-3 00:12:35

JSP&Servlet13

Cookie详解
                Cookie不只有name和value两个属性
                Cookie的maxAge:最大时长,单位:秒
                        例如:cookie.setMaxAge(60)表示这个Cookie会被浏览器保存到硬盘上
                maxAge>0:浏览器会把Cookie保存到硬盘上,有效时长为maxAge值
                maxAge<0:Cookie只在浏览器内存中存在,当用户关闭浏览器时,浏览器进程结束,Cookie同时销毁
                MaxAge=0:浏览器马上删除这个Cookie
               
                Cookie的path
                        Cookie的path由服务器创建Cookie时配置
                        浏览器访问服务器相应的路径,则归还相应的Cookie
                        > 例如:
                              <> aCookie.path=/day11_1/; bCookie.path=/day11_1/jsps/; cCookie.path=/day11_1/jsps/cookie/;
                              <> 访问:/day11_1/index.jsp时,归还:aCookie
                              <> 访问:/day11_1/jsps/a.jsp时,归还:aCookie、bCookie
                              <> 访问:/day11_1/jsps/cookie/b.jsp时,归还:aCookie、bCookie、cCookie
                       
                        Cookie的path默认值:当前访问路径的父路径。例如在访问/day11_1/jsps/a.jsp时,响应的cookie,那么这个cookie的默认path为/day11_1/jsps/
                       
                        Cookie的domain(了解)
                          > domain用来指定Cookie的域名!当多个二级域中共享Cookie时才有用。
                          > 例如;www.baidu.com、zhidao.baidu.com、news.baidu.com、tieba.baidu.com之间共享Cookie时可以使用domain
                          > 设置domain为:cookie.setDomain(".baidu.com");
                          > 设置path为:cookie.setPath("/");
                       
                        Cookie中不能存在中文
                        如果要存,必须进行编码、解码
                        // 保存
                        Cookie c = new Cookie("username", URLEncoder.encode("张三", "utf-8"));//出错!
                        response.addCookie(c);
                       
                        // 获取
                        Cookie[] cs = request.getCookies();
                        if(cs != null) {
                          for(Cookie c : cs){
                          if("username".equals(c.getName())) {
                              String username = c.getValue();
                              username = URLDecoder.decode(username, "utf-8");
                          }
                          }
                        }
                       
       
HttpSession
        1、Httpsession不是HTTP协议制定的
                由JavaWeb提供的,用来会话跟踪的类。Session是服务器端对象,保存在服务器端
                Httpsession是Servlet三大域对象之一(request ,session,application(ServletContext))
                        所以它也有setAttribute()   getAttribute()removeAttribute()
                Httpsession底层依赖Cookie,或者URL重写
               
        2、作用
                会话范围:
                会话范围是某个用户从首次访问服务器开始,到该用户关闭浏览器结束
               
                服务器会为每个客户端创建一个session对象,session被服务器保存到一个Map中,这个Map被称之为session缓存
               
                Servlet中得到session对象:
                HttpSessionsession=request.getSession()
               
                JSP中得到session对象:
                Session是jsp内置对象,直接使用
        例子1:保存,获取session
                <%
                  session.setAttribute("aaa","AAA");
                   %>
               
               <%
                  String s=(String)session.getAttribute("aaa");
                     %>
                  <%=
                  s
                     %>
       
页: [1]
查看完整版本: JSP&Servlet13