• EL的隐含对象(三)【访问环境信息的隐含对象】


    EL中提供了6个访问环境信息的隐含对象。分别是:

    (1)param对象

    param对象用于获取请求参数的值,应用在参数值只有一个的情况。在应用param对象时,返回的结果为字符串。

    例:在JSP页面中,放置一个名称为user的文本框。首先新建一个index.jsp页面,关键代码如下;

     1 <html>
     2     <head>
     3         <title>通过param对象访问文本框中的name值</title>
     4     </head>
     5     <body>
     6         <form action="index.jsp" method="post">
     7             <input  type="text" name="name"/>
     8             <input type="submit" value="提交"/>
     9         </form>
    10         获取到的值是:${param.name}<br>
    11     </body>
    12 </html>

    注意:如果name文本框中可以输入中文,那么在应用EL输出其内容前,还需要应用“request.setCharacterEcoding("GB18030");”语句设置请求的编码为支持中文的编码,否则将产生乱码。


    (2)paramValues对象

    当一个请求参数名对应多个值时,则需要使用paramValues对象获取请求参数的值。在应用paramValues对象时,返回的结果是数组。

    例:在JSP页面中,放置一个名称为affect的复选框组。关键代码如下:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>通过paramValues对象获取组件值</title>
     8 </head>
     9 <body>
    10     <form action="index_paramValues.jsp" method="post">
    11         <input type="checkbox" id="affect" name="affect" value="登山 ">登山
    12         <input type="checkbox" id="affect" name="affect" value="游泳 ">游泳
    13         <input type="checkbox" id="affect" name="affect" value="慢走 ">慢走
    14         <input type="checkbox" id="affect" name="affect" value="晨跑 ">晨跑
    15         <br><input type="submit" value="提交">
    16         
    17     </form>
    18     <br>
    19     <% request.setCharacterEncoding("UTF-8"); %>
    20     <p>
    21         <label>爱好为:</label>
    22         ${ paramValues.affect[0] }
    23         ${ paramValues.affect[1] }
    24         ${ paramValues.affect[2] }
    25         ${ paramValues.affect[3] }
    26     </p>
    27 </body>
    28 </html>

    运行结果是:

    注意:在应用param和paramValues对象时,如果指定的参数不存在,则返回空的字符串,而不是返回null。

    (3)header和headerValues对象

     header用于获取HTTP请求的一个具体的header的值,但在有些情况下,可能存在同一个header拥有多个不同的值的情况,这时候就必须用到headerValues对象。

    例:要获取HTTP请求的header的connection(是否需要持久连接)属性,可以应用如下代码:

     1 ${ header.connection }或 ${ header["connection"] } 

    以上代码输出如下结果:

    如果要获取HTTP请求的header的user-agent属性,则必须应用以下EL表达式:

      ${ header["user-agent"] } 

    输出结果如下:

    (4)initParam对象

     initParam对象用于获取Web应用初始化参数的值

    例:在Web应用的web.xml文件中设置一个初始化参数author,用于指定作者。

        具体代码如下:

    index_initParam.jsp中的代码

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>initParam对象</title>
     8 </head>
     9 <body>
    10     <label>现居住地:</label>
    11     ${ initParam.address }
    12 </body>
    13 </html>

    在web.xml文件中的</web-app>标记上方添加如下代码:

    1 <context-param>
    2       <param-name>address</param-name>
    3       <param-value>中国江苏省常州市</param-value>
    4   </context-param>

    代码运行结果如下:

    (5)cookie对象

    EL中并没有提供向cookie中保存值的方法,但是可以通过cookie隐含对象实现。如果在cookie中已经设置了一个名称为username的值,那么可以使用${cookie.username}来获取该cookie对象。但是如果要获取cookie中的值,需要使用cookie对象的value属性。

    例:使用response对象设置一个请求有效的cookie对象,然后再使用EL获取该cookie对象的值。

    代码如下:

    1  <%
    2         Cookie cookie = new Cookie("user","mrbccd");
    3         response.addCookie(cookie);
    4     %>
    5     ${ cookie.user.value }

    运行上面代码结果显示:mrbccd

  • 相关阅读:
    [转] Foobar2000 DSP音效外挂元件-Part4
    谷歌三件套
    Android 线刷小白教程
    nginx负载均衡
    HTTPS证书
    防火墙iptables
    LNMP架构部署
    tomcat部署
    shell编程
    HTTP协议
  • 原文地址:https://www.cnblogs.com/lihuibin/p/7730730.html
Copyright © 2020-2023  润新知