读书笔记-JSP2的部分特性

1.表达式语言:Expression Language

⑴表达式语言支持算术运算符和逻辑运算符

${1+2}//算术运算符
${1>2}//逻辑运算符

⑵表达式语言中有11个内置对象,用于获取不同范围内的属性值:

pageContext:代表该页面的pageContext对象,与JSP的pageContext对象相同

pageScope:用于获取page范围内的属性值

requestScope:用于获取request范围内的属性值

sessionScope:用于获取session范围内的属性值

param:用于获取请求的参数值

paramValues:用于获取请求的参数值,与param的区别在于,该对象用于获取属性值为数组的属性值

header:用于获取请求头的参数值

headerValues:用于获取请求头的参数值,与header的区别在于,该对象用于获取属性值为数组的属性值

initParam:用于获取Web应用的初始化参数

cookie:用于获取指定的Cookie值

注意:当需要获取request.getParameter(name)时要用${param.name},requestScope相当于request.getAttribute()


⑶表达式语言支持自定义函数:

开发步骤:①类似于开发自定义标签,要开发函数处理类,类中必须包含静态方法。

public class FunctionClass {
   public static String out(String name) {
	return name+"成功使用了自定义函数";
}
}

②在*.tld文件中配置自定义函数,通过<Function></Funciton>定义自定义函数,<Function>中还包含三个子元素:

<name>,<function-class>,<funciton-signature>

<?xml version="1.0" encoding="GBK"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
	version="2.0">
	<tlib-version>1.0</tlib-version>
	<short-name>Function</short-name>
	<!-- 定义该标签库的URI -->
	<uri>http://www.crazyit.org/Function</uri>
	<function>
		<!--定义自定义函数的名字-->
		<name>out</name>
		<!--定义自定义函数的处理类-->
		<function-class>Function.FunctionClass</function-class>
		<!--定义自定义函数实现的方法-->
		<function-signature>java.lang.String out(java.lang.String)</function-signature>
	</function>
</taglib>

③在JSP中使用:

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@taglib prefix="Function" uri="http://www.crazyit.org/Function"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Function</title>
</head>
<body>
<!--使用表达式语言的算术运算符-->
${1+2}<br/>
<!--使用表达式语言的逻辑运算符-->
${2>1}<br/>
<!--使用表达式语言的自定义函数 -->
${Function:out("USER")}<br/>
</body>
</html>

JSP运行结果:



2.支持Tag File:

Tag File是自定义标签的简化用法,使用Tag File可以无需定义标签处理类和标签库文件。

步骤:

①建立Tag文件:文件名就是标签名

Tag File具有5个编译指令:

taglib:用于导入其他标签库

include:用于导入其他JSP页面或HTML静态页面

tag:作用类似于JSP中的page指令,有pageEncoding等设置页面编码的属性

attribute:用于设定自定义标签的属性,类似自定义标签处理类中的标签属性

variable:用于设置自定义标签的变量,这些变量传给JSP页面使用

<%@ tag pageEncoding="gbk" %>
<%@ attribute name="USER"%>
<%@ attribute name="num"%>
<%out.println(USER+"已经成功创建Tag File,包含"+num+"个属性!"); %>

②在JSP中使用Tag File:

<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@taglib prefix="TagFile" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Tag File Test</title>
</head>
<body>
<TagFile:TagFileTest USER="用户1" num="2"/>
</body>
</html>
JSP运行结果:


注意:此处的tag文件放在WEB-INF的tags文件夹中!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值