zoukankan      html  css  js  c++  java
  • JSP简明教程(四):EL表达式语言、JavaBean、Cookie、Session

    EL表达式语言

    EL这是Expression Language。的目的是为了简化JSP句法。来看几个例子来清除。


    ${test} 它会被翻译成<%=test%>
    ${test.name} 会翻译成 <%=test.getName()%>
    ${sessionScope.username}} 会翻译成 <%=session.getAttribute("username")%>
    

    仅仅有sessionScope、requestScope等才会翻译成getAttribute("xxx"),而其它的对象,会翻译成getXXX()。




    EL中还支持四则运算、逻辑运算,语法和Java中的一样。EL中有隐含对象:pageContext、pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、headerValues、cookie、initParam。

    param等价于request.getParameter,paramValues等价于request.getParameterValues,返回的是字符串数组。


    Java Bean

    JavaBean仅仅是一种成熟的约定,非常多框架依靠这个约定简化了非常多数据。JavaBean和普通的类相比没什么特别之处。本质事实上就是普通的Java类,也不须要特定的父类。仅仅要符合下列规则的类就是JavaBean:
    • 有默认构造函数
    • 成员变量都是私有的,仅仅能通过getXX和setXX来訪问
    • 可序列化(implements Serializable。可选。在分布式系统中才有意义)

    Cookie


    Cookies就是保存在浏览器上的一小段文本。是一组键值对。

    Cookies中包括三个属性,过期时间、路径、域名。所以在HTTP应答中Cookie的样子例如以下:

    Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=example.com
    当client兴许发送请求的时候就会加上Cookie: name=xyz。

    Servlet中的Cookie类有下面方法:



    JSP中能够向应答中加入多个Cookie,每一个Cookie对象是一个键值对,能够往HTTP应答中写入多个Cookie。下面是一个演示样例:
    Cookie cookie = new Cookie("key", "value");
    cookie.setMaxAge(86400);
    response.addCookie(cookie);

    读取Cookie能够通过request.getCookies获取一个Cookie数组。因为可能存在多个Cookie名字同样的情况,因此不能直接通过名称直接获得对应的Cookie。



    删除Cookie能够将maxAge设为0,然后调用response.addCookie增加到应答中。


    Session

    会话管理。

    HTTP是一个无状态的协议,所以server和浏览器须要一个方式来区分用户的身份。

    首先。浏览器向server发送一个请求,server检測Cookie中是否有会话ID。假设server“不认识”这个会话ID(或者找不到会话ID),那么server会创建一个新的唯一编号,放在Map中,Key就是这个新的会话ID。Value就是空的Session对象。浏览器记下Cookie。在兴许的请求中都使用这个Cookie。假设server认识这个会话ID,那么server就会从Map中获取对应的Session对象。



    sessionid能够放在Cookie中。也能够放在post表单中。也能够放在url中,比方http://example.com/page;JSESSIONID=45678943。

    Session对象经常使用的方法例如以下:


    Session的过期时间能够在web.xml文件里配置,单位为分钟。Tomcat中默认的超时时间是30分钟。


    <session-config>
      <session-timeout>15</session-timeout>
    </session-config>

    Session和Cookie的差别。分析差别之前还是先弄清楚是什么导致了它们的不同。在HTTP刚发明的时候。还没有Session的概念,因此开发人员仅仅能将重要的数据保存在Cookie中。可是Cookie的数据是保存在浏览器中的,用户能够随意改动,很不安全。因此有人提出了Session的概念,在Cookie中仅仅保存一串随机生成的SessionID,server依据SessionID查找相应的数据,这样。重要的数据就保存这里server上,用户不能随意改变,因此更安全。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    UE4物理笔记
    lambda+mutable配合move实现单函数多程序域
    UE导航系统详
    cpp智能指针
    [转载]新手应该如何学习网站分析
    webpack 单独打包指定JS文件
    vue-cli axios ie9 问题
    [分享] 通过修改CSS自定义chrome滚动条样式
    日期格式化转换方法
    vue 路劲
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4659196.html
Copyright © 2011-2022 走看看