Jsp 2 新特性、el表达式
简述:相比 jsp1.2 ,jsp 2 主要增加了以下特性:直接配置JSP属性表达式语言简化的自定义标签APITag 文件语法要使用JSP2 语法,其web.xml 文件须使用Servlet 2.4 以上的版本配置。如:<!-- 不再使用DTD,而用Schema 描述 --><?xml version="1.0" encoding="UTF-8"?><web-app xmlns="
简述:
相比 jsp1.2 ,jsp 2 主要增加了以下特性:
- 直接配置JSP属性
- 表达式语言
- 简化的自定义标签API
- Tag 文件语法
要使用JSP2 语法,其web.xml 文件须使用Servlet 2.4 以上的版本配置。
如:
<!-- 不再使用DTD,而用Schema 描述 -->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- servlet 3.1 规范对应 jsp 2.3-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置JSP属性:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<jsp-property-group>
<!--指定该组配置对哪些文件生效-->
<url-pattern>*.jsp</url-pattern>
<!--是否忽略EL表达式,true表示忽略-->
<el-ignored>true</el-ignored>
<!--页面编码字符集,可以替代每个页面里page指令 contentType属性的charset部分-->
<page-encoding>GBK</page-encoding>
<!--是否允许使用脚本,true表示不允许-->
<scripting-invalid>true</scripting-invalid>
<!--隐式导入页面头,这两个文件依然是JSP文件,只是修改了后缀而已-->
<include-prelude>top.jspf</include-prelude>
<!--隐士导入页面尾,可以代替在每个页面里使用include编译指令来包含其他页面。-->
<include-coda>bottom.jspf</include-coda>
</jsp-property-group>
</jsp-config>
</web-app>
在jsp2.0之前是默认不启用EL表达式的,可以使用<%@ page isELIgnored=”false”%>来启用,但在jsp2.0后,默认启用了EL表达式。
EL表达式
表达式语言并不是一种通用的程序语言,而仅仅是一种数据访问语言,可以方便的访问应用程序数据,避免使用JSP脚本。
1、EL表达式支持算术运算符、逻辑运算符
如:${1.2+2.3} 、${(1==2)?3:4}
如果需要在支持表达式的页面中正常输出"$",需要添加转义字符"\"
el表达式不仅可以实现在数字之间的比较,还可以在 字符 和 字符 间比较,字符串的比较是根据其对应的Unicode 值 进行比较。
EL 表达式 11 大内置对象
使用el表达式可以直接 获取请求参数值,可以获取页面中JavaBean 的指定属性值,获取请求头 ,以及 page、request、session、application 范围的属性值等。
- pageContext : 代表该页面的pageContext 对象,与jsp的pageContext 内置对象相同。
- pageScope : 用于获取page 范围的属性值
- requestScope : 用于获取requestScope 范围属性值。
- sessionScope : 用于获取sessionScope 范围属性值
- applicationScope :用于获取applicationScope 范围属性值
- param :用于获取请求参数值
- paramValues:获取请求参数值,与param不同的是,该对象用于获取属性值为数组的属性值
- header : 用于获取请求头的属性值
- headerValues :获取请求头参数值,与header不同的是,该对象用于获取属性值为数组的属性值
- initParam :用于获取web 应用的初始化参数
- cookie : 用于获取指定cookie的值。
el除了使用基本的运算符之外,还可以自定义函数。自定义函数的开发非常类似于自定义标签的开发,区别在于 自定义标签直接在页面上生成输出,而自定义函数则需要在表达式中使用。
el中函数的本质是: 提供一种语法允许在el中调用某个类的静态方法;就是将指定的java类的静态方法暴露成可以在el中使用的函数,所以该处理方法必须用 public static 修饰。
更多推荐
所有评论(0)