18.9.30 下午 第51天上课

18.9.30 下午 第51天上课

 

问题:不同的请求使用相同的请求数据,但是请求结束后,数据就销毁了。
       其他请求,需要将相同的公共的数据,重新发送。
      解决以上问题,可以采用,浏览器端数据存储技术 cookie
1.cookie
               服务器为了辨别用户的身份,就给每一个客户端办了一个通行证。 
               那么,不同的浏览器进行访问时,都必须携带自己的通信证。
               这样服务器就可以从通行证上获得客户的身份。

                解决:不同请求之间的数据共享问题。
              使用cookie:
                        //创建cookie对象,并设置其路径,有效时间,写到浏览器中
                        Cookie c=new Cookie("key","value");
                        c.setPath("/");
                        c.setMaxAge(单位秒);
                        response.addCookie(c);
                        //遍历cookie
                        Cookie[] cookies=request.getCookies();
                         //取Cookie对象:c 中的key  c.getName();
                                              value  c.getValue();
                        //删除指定cookie    
                         设置其有效时间为0,就可以立即删除cookie对象。
             案例:登录界面上:记住登录状态业务。

 2.session:服务器端技术;
                    解决:同一个用户之间不同请求的数据共享问题。
                           session:开始于浏览器访问应用程序,结束于浏览器关闭
                                                             session.invalidate();
                                                             session默认有效时间30分钟
                           session.setAttribute("key",Object);//存放用户信息
                           session.getAttribute("key");//需要强制类型转化
              
 3.EL :简化对作用域通信对象(pageContext<request< session< application变量的访问。
          ${}  取特定空间中变量值  ${pageScope.key}
               取实体类值   ${实体类.属性}
               ${empty 变量}判断变量是否为null  
               取url?state=110;----> ${param.state}
            
  JSTL:取代jsp界面上嵌入的java代码以提高程序的可读性。
             //声明特定空间内变量
            <c:set var="" value="" scope=""></c:set>
             //判断 与java中的if功能类似
             <c:if test="">
                 标签体
             </c:if>
             //类似于java中的if(){}else{}
              <c:choose>
                  <c:when test="">
                         标签体
                  </c:when>
                   <c:otherwise>
                         标签体
                   </c:otherwise>
               </c:choose>
               //循环
                <c:forEach  items="被迭代集合或数组" var="str">
                         //将迭代元素输出
                          ${str}
                </c:forEach>
              

                  


 

 

 

相关文章: