赞
踩
Java Server Pages :Java服务器端页面
可以理解:一个特殊的页面,既可以指定定义HTML标签,又可以定义Java代码
用于简化书写
本质是一个Servlet
HTML只能为用户提供静态数据
JSP技术允许在页面中嵌套Java代码,为用户提供动态数据
Servlet很难对数据进行排版
JSP除了可以用Java代码产生动态数据额同时,也容易对数据进行排版
显示注释:允许客户端看见,从HTML风格继承而来
隐示注释:客户端无法看见,从Java风格继承;JSP自己的注释
1、//注释,单行注释 /*多行注释*/
2、<!-- HTML风格的注释 -->
3、<%-- JSP注释 --%>
所有嵌入在HTML代码中的Java程序
三种Scriptlet,都必须使用 Scriptlet 标记出来
格式:<%@ include file = "要包含的文件路径" %> <!-- 相对路径-->
特点:
1. 将内容进行了直接的替换
2. 静态包含只会生成一个源码文件,最终内容全在_JSPService方法体中(源码文件中)
3 .不能出现同名变量
4.运行效率高一些,耦合性较高,不够灵活
格式:<jsp:include page = "要包含页面地址"> <jsp:include>
特点:
1. 动态包含相当于方法的调用
2. 动态包含会生成多个源码文件
3. 可以定义同名文件
4. 效率高,耦合度低
注意:
当动态包含不需要传递参数时,include双标签之间不要加任何内容,包括空格,除非确认要使用参数,否则报错
使用动态包含传递蚕食
<jsp:include page = "">
<jsp:parm name="参数名" value="参数值"/>
<jsp:include>
name属性不支持表达式
value属性支持表达式
获取参数:
request.getParameter(name) 通过指定参数名获取参数
方法 | 类型 | 描述 |
---|---|---|
public void setAttribute(String name,Object o) | 普通 | 设置属性的名称及内容 |
public Object getAttribute(String name) | 普通 | 根据属性名称取属性 |
public void removeAttribute(String name) | 普通 | 删除指定的属性 |
在合理范围尽可能小,避免资源浪费
EL(Expression Language)是为了使JSP写起来更加简单。
语法结构:¥{expression}
EL表达式一般操作的都是域对象中的数据,操作不了局部变量
EL默认查找方式为从小到大查找
1、获取域对象的值
${uname}
获取指定域对象的值
${pageScope.uname}
${requestScope.uname}
${sessionScope.uname}
${applicationScope.uname}
2、获取List
获取list指定下标的值
${list[下标]}
获取集合的长度
${list.size()}
注:
list代表的是限域变量名
3、获取Map
${map["key"]}或${map.key}
注:
map代表的是存在域对象中的变量名(限域变量名)
4、获取JavaBean对象
${user} 获取对象
${user.uname}或${JavaBean对象.get属性名()} 获取对象中的属性
5、empty
判断域对象是否为空
为空,返回true
不为空,返回false;
如果域对象是字符串:
不存在,空字符串,null:返回true
如果域对象是List:
null,没有长度:返回true
如果域对象是Map:
null,空map对象:true
如果域对象是JavaBean:
null:true
空对象:false
判断域对象不为空
${!empty 限域对象名}
1、等值比较
== 或 eq
${aa==bb}
${aa eq bb}
2、算术运算
加法:+
减法:-
乘法:*
除法:/或div
${a +b}
${a div b}
3、大小比较
大于: >
小于: <
大于等于:>=
小于等于:<=
${aa > bb}
Java Server Page Standard Tag Libray(JSTL):JSP标准标签库,是一个定制标签类库的集合,用于解决一些常见的问题
<%@taglib uri="" prefix="" %>
需要的jar包
standard.jar和jstl.jar
http://java.sun.com/jsp/jstl/core
包含Web应用的常见工作,比如:循环、表达式赋值、基本输入输出等
使用该标签先引入核心标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Java | JSTL |
---|---|
if、if…else | if |
switch…case…default | choose…when…otherwise |
if标签先对某个条件进行测试,如果该条件运算结果为true,则处理它的主体内容,测试结果保存在一个Boolean对象中,并创建一 个限域变量来引用Boolean对象。可以利用var属性设置限域变量名,利用scope属性来指定其作用范围。
<c:if test="<boolean>" var="<string>" scope="<string>">
....
1、标签操作的一般都是域对象
2、if标签没有else,如果想要else的效果,就需要设置两个完全相反的条件
</c:if>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
test | 条件 | 是 | 无 |
var | 用于存储条件结果的变量(限域变量名) | 否 | 无 |
scope | var属性的作用域 可取值:page、request、session、application | 否 | page |
<c:choose>
<c:wen test="<boolean>">
...
</c:when>
<c:wen test="<boolean>">
...
</c:when>
<c:otherwise>
...
</c:otherwise>
</c:choose>
属性:
使用该标签先引入核心标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
</c:forEach>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
begin | 开始的元素(0=第一个元素,1=第二个元素) | 否 | 0 |
end | 最后一个元素(0=第一个元素,1=第二个元素) | 否 | Last element |
step | 每一次迭代的步长 | 否 | 1 |
var | 代表当前条目的变量名称 | 否 | 无 |
varStatus | 代表循环状态的变量名称 | 否 | 无 |
items | 要被循环的数据 | 否 | 无 |
forEach varStatus属性:
<c:forEach begin="开始数" end="结束数" step="迭代数" var="限域变量名">
</c:forEach>
相当于
for(int i = 0 ; i < 10;i++){
}
http://java.sun.com/jsp/jstl/fmt
用来格式化显示数据的工作,比如:对不同区域的日期格式化等
JSTL提供了格式化和解析数字和日期的标签,我们讨论里面有: formatNumber.、formatDate、parseNumber及parseDate.
使用该标签先引入格式化标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/fmt"%>
formatNumber标签用于格式化数字,百分比,货币。该标签用指定的格式或精度来格式化数字。(将数值型数据转换成指定格式的字符串类型。)
<fmt:formatNamber
value="<string>"
type="<string>"
var="<string>"
scope="<string>"/>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要格式化的数值 | 是 | 无 |
type | number(数值型默认)、currency(货币类型)或percent(百分比类型)类型 | 否 | Number |
var | 限域变量名,用来接收格式化后的结果 | 否 | Print to page |
scope | var属性的作用域(page、request、session、application) | 否 | page |
注意:
<fmt:formatDate
value="<string>"
type="<string>”
datestyle="<string>"
timestyle="<string>"
pattern="<string>"
timeZone=" <string>"
var="<string>"
scope="<string>"/>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要格式化的日期 | 是 | 无 |
type | date、time或both | 否 | date |
dateStyle | full、long、medium、short或default | 否 | default |
timeStyle | full、long、medium、short或default | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
timeZone | 显示日期的时区 | 否 | 默认时区 |
parseNumber标签用来解析数字,百分数,货币。(parseNumber 标签可以将数字、货币或百分比类型的字符串转换成数值型。)
<fmt:parseNumber
value="<string>"
type="<string>"
var="<string>"/>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要解析的数字 | 否 | Body |
type | number、currency、percent | 否 | number |
var | 存储待解析数字的变量 | 否 | print to page |
scope | var属性的作用域 | 否 | page |
<fmt:parseDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
var="<string>"
scope="<string>"/>
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的日期 | 是 | 无 |
type | date、time、both | 否 | date |
dateStyle | full、long、medium、short、default | 否 | default |
timeStyle | full、long、medium、short、default | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
var | 存储格式化日期的变量名 | 否 | 显示在页面 |
scope | 村吃格式化日志变量范围 | 否 | 页面 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。