JSP中EL表达式的用法详解(必看篇)(3)

这里param 的功能和request.getParameter(String name)相同,而paramValues和
request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值。

看到这里,大家应该很明确EL表达式只能通过内置对象取值,也就是只读操作,如果想进行写操作的话就让后台代码去完成,毕竟EL表达式仅仅是视图上的输出标签罢了。

pageContext

我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下表列出了几个比较常用的部分

Expression

 

说明

 

${pageContext.request.queryString}

 

取得请求的参数字符串

 

${pageContext.request.requestURL}

 

取得请求的URL,但不包括请求之参数字符串,即servlet的HTTP地址。

 

${pageContext.request.contextPath}

 

服务的webapplication的名称

 

${pageContext.request.method}

 

取得HTTP的方法(GET、POST)

 

${pageContext.request.protocol}

 

取得使用的协议(HTTP/1.1、HTTP/1.0)

 

${pageContext.request.remoteUser}

 

取得用户名称

 

${pageContext.request.remoteAddr}

 

取得用户的IP地址

 

${pageContext.session.new}

 

判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用

 

${pageContext.session.id}

 

取得session的ID

 

${pageContext.servletContext.serverInfo}

 

取得主机端的服务信息

 

这个对象可有效地改善代码的硬编码问题,如页面中有一A标签链接访问一个SERVLET,如果写死了该SERVLET的HTTP地址

那么如果当该SERVLET的SERVLET-MAPPING改变的时候必须要修改源代码,这样维护性会大打折扣。

EL算术运算

表达式语言支持的算术运算符和逻辑运算符非常多,所有在Java语言里支持的算术运算符,表达式语言都可以使用;

甚至Java语言不支持的一些算术运算符和逻辑运算符,表达式语言也支持。

<%@ page contentType="text/html; charset=gb2312"%> <html> <head> <title>表达式语言 - 算术运算符</title> </head> <body> <h2>表达式语言 - 算术运算符</h2> <hr> <table bgcolor="aaaadd"> <tr> <td><b>表达式语言</b></td> <td><b>计算结果</b></td> </tr> <!-- 直接输出常量 --> <tr> <td>\${1}</td> <td>${1}</td> </tr> <!-- 计算加法 --> <tr> <td>\${1.2 + 2.3}</td> <td>${1.2 + 2.3}</td> </tr> <!-- 计算加法 --> <tr> <td>\${1.2E4 + 1.4}</td> <td>${1.2E4 + 1.4}</td> </tr> <!-- 计算减法 --> <tr> <td>\${-4 - 2}</td> <td>${-4 - 2}</td> </tr> <!-- 计算乘法 --> <tr> <td>\${21 * 2}</td> <td>${21 * 2}</td> </tr> <!-- 计算除法 --> <tr> <td>\${3/4}</td> <td>${3/4}</td> </tr> <!-- 计算除法 --> <tr> <td>\${3 div 4}</td> <td>${3 div 4}</td> </tr> <!-- 计算除法 --> <tr> <td>\${3/0}</td> <td>${3/0}</td> </tr> <!-- 计算求余 --> <tr> <td>\${10%4}</td> <td>${10%4}</td> </tr> <!-- 计算求余 --> <tr> <td>\${10 mod 4}</td> <td>${10 mod 4}</td> </tr> <!-- 计算三目运算符 --> <tr> <td>\${(1==2) ? 3 : 4}</td> <td>${(1==2) ? 3 : 4}</td> </tr> </table> </body> </html>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzjxpw.html