jsp 九大内置对象 EL表达式 JSTL标签

jsp

简介:

java server oage,是一种动态网页编程技术

准备工作:

1、修改JSP页面的编码

选择"Window",选择"Preferfences",搜索"JSP",选择"JSP Files",设置编码为UTF-8

2、修改模板

搜索"JSP",选择"JSP Files"找到Templates下的New JSP File(html),双击New JSP,将模板中的html4修改为html5

JSP的注释

两类三种

第一类:隐式注释

在浏览器中看不见的注释

1、jsp自己的注释<%-- --%>

2、继承java风格的注释

//单行注释

/*多行注释*/

第二类:显示注册

在浏览器审查元素或查看源代码可以看到的注释

继承HTML风格的注释<!-- -->

Scriptlet脚本小程序

嵌套在HTML代码中的java程序

JSP一共有三种脚本小程序

第一种:Java脚本段,可以定义局部变量、写java语句等

生成

格式:<%  %>

第二种:声明全局变量,方法、类等

格式:<%!  %>

第三种:输出,可以输出变量或字面值

格式:<%=  %>

Page指令:

格式:<%@ page 属性名="属性值" 属性名="属性值"%>

常用的属性:(多个属性之间用空格隔开)

language:语言,目前只有java

contebtType:响应类型及编码格式

pageEncoding:页面编码格式

页面的编码以contentType中的charset的值为准,若charset未设置,则以pageEncoding的属性值为准

pageEncoding的属性也未设置,则使用默认编码ISO-8859-1;

import:导包,该属性可以在page指令中出现多次

errorPage:当页面报错时,跳转的页面

isErrorPage:是处理报错页面,默认是false(errorPage一起使用)

include静态包含

格式:<%@include file="文件路径"%>

特点:

相当于将内容直接复制

只会生成一个源码文件,不能有同名变量

运行效率快一些,耦合度高,不够灵活

include动态包含

格式:

1、<jsp:include page="要包含的页面"></jsp:include>

2、有参数的:<jsp:include page="要包含的页面"><jsp:param value="参数值" name="参数名"/></jsp:include>

value:参数值,可以接收表达式

name:参数名,字符串,不接受任何表达式

取值方式:request。getParameter("参数名")

特点:

相当于方法的调用

会生成多个源码文件,可以有相同的变量名

灵活,耦合度低

注:

当使用动态包含没设置参数时,<jsp:include>双标签不要有任何内容,包括空格和换行

动态包含和静态包含的区别:

1、静态包含相当于将内容进行直接复制,动态包含相当于方法的调用

2、静态包含只会生成一个源码文件,而动态包含会生成多个源码文件

3、静态包含不能有同名变量,而动态包含可以有同名变量

4、静态包含不能传递参数,而动态包含可以

5、静态包含耦合度高,动态包含耦合度低


四大域对象

pageContext 当前JSP页面有效,跳转页面后无效

request 一次请求,请求转发(服务端跳转)有效,重定向(客户端)无效

session 一次会话,无论是服务端还是客户端跳转都有效;session对象销毁后无效

applicatin 整个应用,只有服务器不关闭都有效

四大域对象的三种方法

public void setAttribute(String name,Objet o) 设置属性的名称和内容

public Object getAttribute(String name) 根据属性名称获得属性

public void removeAttribute(String name) 删除指定的属性

两个输出

response 响应对象

out 输出对象

一个配置对象

config 获取配置信息

一个异常对象

exception 只有设置过isErrorpage="true"的页面才能使用

一个页面对象

page 指代jsp页面本身



EL表达式

EL表达式一般操作的都是域对象的数据,操作不了局部变量(通过限域变量名获取对象中的值)

格式:

${限域变量名}

取值范围

page的作用域:${pageScope.限域变量名}

request的作用域:${requestScope.限域变量名}

session的作用域:${sessionScope.限域变量名}

applicatin的作用域:${applicatinScope.限域变量名}

默认取值方式:

EL表达式在取值时,会自动从小到大范围查找,找到即止

从page->request->session->application,如果四个域范围都未找到,则返回空字符串

EL表达式取值:

1、 判断域对象是否为空

${empty 限域变量名}

该域对象可以是字符串、JavaBean对象、List集合、Map等

${!empty 限域变量名}

判断域对象不为空

a、字符串,如果字符串为null或空,返回true

b、JavaBean,如果JavaBean为null,返回true

c、List集合,如果List集合为null或长度为0,返回true

d、Map,如果Map为null或没有内容,返回true

2、获取JavaBean对象

a、获取对象

${ 限域变量名}

b、获取类中的属性

${限域变量名.属性名}或${限域变量名.get属性名()}

c、获取对象中的对象属性

${限域变量名.属性名}或${限域变量名.属性名.属性}

注:javaBean中属性需要提供getter方法

3、获取List集合

a、获取集合对象

${限域变量名}

b、获取集合中的元素

${限域变量名[下标]}

c、获取集合的长度

${限域变量名.size()}

4、获取Map对象

a、通过map的key获取值

${限域变量名.key}或${限域变量名["key"]}

EL表达式运算

运算:

${限域变量名1+限域变量名2}

比较:

等值:

${限域变量名1==限域变量名1}

${限域变量名1 eq 限域变量名2}

大小:

${限域变量名1>限域变量名2}

${限域变量名1<限域变量名3}



JSTL

JSTL的使用

1、将jstl所需的两个jar包拷贝到项目的WEB—INF的lib目录下

2、在需要使用标签库的页面引入对应库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

prefix表示该库的前缀,可以是任意字符,但一般使用"C"

if标签

无主体内容

<c:if test="条件" var="限域变量名" scope="域范围"></c:if>

有主体内容

<c:if test="条件" var="限域变量名" scope="域范围">内容</c:if>

常用属性:

test:if判断的条件,一般结合el表达式操作域对象

var:条件判断后的返回结果(true|false),存在一个域对象中

scope:域对象的范围,默认为page,可以取值page|request|session|application

注:if标签没有else标签,所以需要else的效果需要写一个相反条件

choose、when、otherwise标签

choose和when标签的作用与java中的switch和case关建字相似

注意点:

1、choose、otherwise标签没有属性,when标签必须要有test属性

2、choose标签只能嵌套when和otherwise标签,when和otherwise标签中可以嵌套其他标签

3、choose标签至少要有一个when标签,可以没有otherwise标签

4、otherwise标签必须放在最后一个when标签之后

5、otherwise标签会在所以when标签不执行时,执行

格式:

forEach标签

迭代内容多次

<c:forEach begin="开始数" end="结束书" var="限域变量" step="间隔数"></c:forEach>

循环

<c:forEach items="遍历的对象" var="限域变量" varStatus="成员信息"></c:forEach>

格式化标签

formatNumber

将数值型的数据转换成指定格式的数值字符串

有主体内容

<fmt:formatNumber type="类型" var="限域变量名">

要格式化的数据(接收表达式)

</fmt:formatNumber>

无主体内容

<fmt:formatNumber type="类型" value="要格式化的数据(接收表达式)"></fmt:formatNumber>

常用属性;

type:格式化后的格式

percent 百分比类型

number 数值型

currency 货币型

var:限域变量名

用来接收格式化的结果,如果设置了var属性,格式化的结果不会输出,需要通过el表达式获取var属性的值

formatDate

将日期型的数据转换成指定的字符串

常用属性:

var:限域变量名

用来接收格式化的结果,如果设置了var属性,格式化的结果不会输出,需要通过el表达式获取var属性的值

type:日期类型

date 日期型  默认

time 时间型

both 日期+时间型

dateStyle 日期型格式

timeStyle 时间型格式

pattern 自定义格式

y 年

M 月

d 日

H 时(0-24)

h 时(0-12)

m 分

s 秒

parseNumber

将指定格式的数值字符串转换成数值型数据

parseDate

将指定格式的字符串转换成日期型的数据

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 一、jsp介绍 jsp作用jsp全称java server pages(java服务器页面),本质是一个servl...
    圣贤与无赖阅读 1,238评论 0 14
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,402评论 0 13
  • 一.JSP注释 1、显式注释 在客户端可以看到的注释 1、继承HTML风格的注释 &lt;!-- HTML注释 ...
    孤叹汝念之殇阅读 950评论 0 0
  • 一.JSP Java Server Page:从用户角度看,就是一个网页,从程序员角度看待,其实就是一个java类...
    爱乐之农阅读 237评论 0 0
  • 一封信,一个自称“无缘社会”的人 他见证了周围人的自杀,经受着与世界脱轨,也许会“孤独死”的煎熬 或许有一天,静悄...
    一川先生阅读 974评论 0 0