JSP20技术手册 与范围有关的EL隐含对象包含以下四个: page Scope、 requestScope、 session Scope和 applicationScope,它们基本上就和JSP的 page Context、 request、 session和 application一样, 所以笔者在这里只稍略说明。不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP 中的 getAttribute( String name),却不能取得其他相关信息,例如:JSP中的 request对象除可以存 取属性之外,还可以取得用户的请求参数或表头信息等等。但是在E中,它就只能单纯用来取得对应 范围的属性值,例如:我们要在 session中储存一个属性,它的名称为 username,在JSP中使用 session. getAttribute(" username")来取得 username的值,但是在EL中,则是使用 session Scope. username}来取得其值的。接下来分别对这四个隐含对象做简短的说明: pagescope 范围和JSP的Page相同,也就是单单一页 JSP Page的范围( Scope)。 范围和JSP的 Request相同, requestScope的范围是指从一个JSP网页请求到另一个JSP网页 请求之间,随后此属性就会失效。 sessionscope 范围和 JSP Scope中的 session相同,它的属性范围就是用户持续在服务器连接的时间 ● application Scope 范围和 JSP Scope中的 application相同,它的属性范围是从服务器一开始执行服务,到服务 器关闭为止。 6-3-2与输入有关的隐含对象 与输入有关的隐含对象有两个: param和 param Values,它们是EL中比较特别的隐含对象。一般 而言,我们在取得用户的请求参数时,可以利用下列方法: request. getParameter(String name) request getParameter Values(String name) 在EL中则可以使用 param和 param Values两者来取得数据 Java爱好者htp/ w.javafan. net制作
JSP2.0 技术手册 Java 爱好者 http://www.javafan.net 制作 与范围有关的 EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和 applicationScope,它们基本上就和 JSP 的 pageContext、request、session 和 application 一样, 所以笔者在这里只稍略说明。不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即 JSP 中的 getAttribute(String name),却不能取得其他相关信息,例如:JSP 中的 request 对象除可以存 取属性之外,还可以取得用户的请求参数或表头信息等等。但是在 EL 中,它就只能单纯用来取得对应 范围的属性值,例如:我们要在 session 中储存一个属性,它的名称为 username,在 JSP 中使用 session.getAttribute("username") 来 取 得 username 的 值 , 但 是 在 EL 中 , 则 是 使 用 ${sessionScope.username}来取得其值的。接下来分别对这四个隐含对象做简短的说明: ● pageScope 范围和 JSP 的 Page 相同,也就是单单一页 JSP Page 的范围(Scope)。 ● requestScope 范围和 JSP 的 Request 相同,requestScope 的范围是指从一个 JSP 网页请求到另一个 JSP 网页 请求之间,随后此属性就会失效。 ● sessionScope 范围和 JSP Scope 中的 session 相同,它的属性范围就是用户持续在服务器连接的时间。 ● applicationScope 范围和 JSP Scope 中的 application 相同,它的属性范围是从服务器一开始执行服务,到服务 器关闭为止。 6-3-2 与输入有关的隐含对象 与输入有关的隐含对象有两个:param 和 paramValues,它们是 EL 中比较特别的隐含对象。一般 而言,我们在取得用户的请求参数时,可以利用下列方法: request.getParameter(String name) request.getParameterValues(String name) 在 EL 中则可以使用 param 和 paramValues 两者来取得数据
JsP20技术手册 param name slparamvalues. name) 这里 param的功能和 request. get Parameter( String name)相同,而 param values和 request. get Parameter Values( String name)相同。如果用户填了一个表格,表格名称为 username,则我们 就可以使用${ param username}来取得用户填入的值。 为了让读者更加了解 param和 paramvalues隐含对象的使用,再来看下面这个范例。此范例共 有两个文件,分别为给用户输入值用的 Param. htm1和显示出用户所传之值的 Param.jsp Param. html <htmI> Head> <title>CH6- Param. html</title> /head> <body> <h2>EL隐含对象 param、 paramvalues</h2〉 <form method =post action="Param. jsp"> <p>k&: (input type="text"name="username"size=15"/></p> p>密码:< Input type=" password"name=" password"size="15″/</p> p>性别:< Input type=" radio"name="sex" value="Male" checked/>男 Input type="radio" name="sex" value="Female" />k</p> <p>年龄: Java爱好者htp/ w.javafan. net制作
JSP2.0 技术手册 Java 爱好者 http://www.javafan.net 制作 ${param.name} ${paramValues.name} 这 里 param 的 功 能 和 request.getParameter(String name) 相 同 , 而 paramValues 和 request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为 username,则我们 就可以使用${param.username}来取得用户填入的值。 为了让读者更加了解 param 和 paramValues 隐含对象的使用,再来看下面这个范例。此范例共 有两个文件,分别为给用户输入值用的 Param.html 和显示出用户所传之值的 Param.jsp。 Param.html <html> <head> <title>CH6 - Param.html</title> </head> <body> <h2>EL 隐含对象 param、paramValues</h2> <form method = "post" action = "Param.jsp"> <p>姓名:<input type="text" name="username" size="15" /></p> <p>密码:<input type="password" name="password" size="15" /></p> <p>性别:<input type="radio" name="sex" value="Male" checked/> 男 <input type="radio" name="sex" value="Female" /> 女</p> <p>年龄:
JsP20技术手册 <select name=old> Option value="10")10-20</option) Option value=20" selected>20-30/option> Option value="30">30-40</option> Option value=40>40-50</option) </select> p)兴趣 Input type="checkbox"name="habit"value="Reading/>4+5 < Input type=" checkbox"name=" habit" value="Game"/>玩游戏 Input type="checkbox" name="habit" value="Travel"/>E < input type=" checkbox"name=" habit" value=" Music"/>听音乐 < Input type=" checkbox"name=" habit" value="Tv"/>看电视 /p> < Input type=" submit" value="传送"/> < Input type=" reset" value="清除"/ om </body> /html> Java爱好者htp/ w.javafan. net制作
JSP2.0 技术手册 Java 爱好者 http://www.javafan.net 制作 <select name="old"> <option value="10">10 - 20</option> <option value="20" selected>20 - 30</option> <option value="30">30 - 40</option> <option value="40">40 - 50</option> </select> </p> <p>兴趣: <input type="checkbox" name="habit" value="Reading"/>看书 <input type="checkbox" name="habit" value="Game"/>玩游戏 <input type="checkbox" name="habit" value="Travel"/>旅游 <input type="checkbox" name="habit" value="Music"/>听音乐 <input type="checkbox" name="habit" value="Tv"/>看电视 </p> <p> <input type="submit" value="传送"/> <input type="reset" value="清除"/> </p> </form> </body> </html>
JsP20技术手册 Param.htm1的执行结果如图6-1所示。当我们把窗体填好后按下传送钮,它将会把信息传送到 Param.jsp做处理。 收常天国体 址如 日w EL隐含对象 param、 paramvalues 别:男 年龄,国-词 兴趣,C看书厂玩游戏G放游口析音乐厂着电视 厂本 图6-1 Param.html的执行结果,并填入信息 接下来, Param.jsp接收由 Param. html传来的信息,并且将它显示出来: ara <%e page content Type="text/html; charset=GB2312"%> <%etaglibprefix=c"uri=http://iava.suncom/isp/istl/core"%> <%etaglibprefix=fmt"uri=http://iava.suncom/isp/istl/fmt"%> htmI> <title>CH6- Param. jsp</title> /head> <body> <h2>EL隐含对象 para、 paramvalues</h2 Java爱好者htp/ w.javafan. net制作
JSP2.0 技术手册 Java 爱好者 http://www.javafan.net 制作 Param.html 的执行结果如图 6-1 所示。当我们把窗体填好后按下传送钮,它将会把信息传送到 Param.jsp 做处理。 图 6-1 Param.html 的执行结果,并填入信息 接下来,Param.jsp 接收由 Param.html 传来的信息,并且将它显示出来: Param.jsp <%@ page contentType="text/html;charset=GB2312" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <html> <head> <title>CH6 - Param.jsp</title> </head> <body> <h2>EL 隐含对象 param、paramValues</h2>
JsP20技术手册 <fmt: request Encoding value="GB2312"/> 姓名:${ para. username</br 密码:${ param. password}</br> 性别:${ param.sex}</br> 年龄:${ param.old}</br> 兴趣:s{ paramvalues. habit[o] sparamvalues. habit[1]) /html> 由 Param html窗体传过来的值,我们必须指定编码方式,才能够确保 Param. jsp能够顺利接收中 文,传统的做法为: request setCharacterEncoding(GB2312") 假若是使用JSTL写法时,必须使用I8N格式处理的标签库,如下: <fmt: request Encoding value="GB2312/> Param. jsp主要使用EL的隐含对象 param来接收数据。但是必须注意:假若要取得多重选择的复 选框的值时,必须使用 param Values,例如:使用 param values来取得“兴趣”的值,不过这里笔者 最多只显示两笔“兴趣”的值: siparam. username) slparamValues. habit[OJH slparamValues. habit[1]l Java爱好者htp:/ w.javafan.net制作
JSP2.0 技术手册 Java 爱好者 http://www.javafan.net 制作 <fmt:requestEncoding value="GB2312" /> 姓名: ${param.username}</br> 密码: ${param.password}</br> 性别: ${param.sex}</br> 年龄: ${param.old}</br> 兴趣: ${paramValues.habit[0]} ${paramValues.habit[1]} </body> </html> 由 Param.html 窗体传过来的值,我们必须指定编码方式,才能够确保 Param.jsp 能够顺利接收中 文,传统的做法为: <% request.setCharacterEncoding("GB2312"); %> 假若是使用 JSTL 写法时,必须使用 I18N 格式处理的标签库,如下: <fmt:requestEncoding value="GB2312" /> Param.jsp 主要使用 EL 的隐含对象 param 来接收数据。但是必须注意:假若要取得多重选择的复 选框的值时,必须使用 paramValues,例如:使用 paramValues 来取得“兴趣”的值,不过这里笔者 最多只显示两笔“兴趣”的值: ${param.username} ……… ${paramValues.habit[0]} ${paramValues.habit[1]}