JSP基础知识(二)

╄→尐↘猪︶ㄣ 提交于 2019-11-30 02:10:38

一、JSP动作标签

与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。

利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

动作元素只有一种语法,它符合XML标准:

<jsp:action_name attribute="value" />

动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:

语法 描述
jsp:include 在页面被请求的时候引入一个文件。
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:forward 把请求转到一个新的页面。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。
jsp:text 在JSP页面和文档中使用写入文本的模板

1.JSP常用动作标签

<jsp:include>动作元素

<jsp:include page="相对 URL 地址" flush="true" />

与jsp指令相比:<%@ include file=""%> 生成一个文件,又称静态包含
<jsp:include page=” /”> 生成两个文件,包含的和被包含的,又称动态包含

注:
1、page=“path” 为相对路径,或者代表相对路径的表达式。
2、flush=“true” 必须使用flush为true,它默认值是false。
3、jsp:param子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个jsp:param来传递多个参数给动态文件。

<jsp:useBean>动作元素
jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。

jsp:useBean动作最简单的语法为:

<jsp:useBean id="name" class="package.class" />

<jsp:setProperty>动作元素
标签表示用来设置Bean中的属性值。

<jsp:setProperty name="idname" property="" value=""/>

注:
使用 jsp:setProperty 来为一个Bean的属性赋值;可以使用两种方式来实现。
1、在jsp:useBean后使用jsp:setProperty:
<jsp:useBean id=“myUser” … />

<jsp:setProperty name=“user” property=“user” … />
在这种方式中,jsp:setProperty将被执行。
2、jsp:setProperty出现在jsp:useBean标签内:
<jsp:useBean id=“myUser” … >

<jsp:setProperty name=“user” property=“user” … />

<jsp:useBean>动作元素
在这种方式中,jsp:setProperty只会在新的对象被实例化时才将被执行。

jsp:setProperty中的name值应当和jsp:useBean中的id值相同。

jsp:getProperty标签表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。

<jsp:getProperty name="idname" property=""/>

注:
1、在使用jsp:getProperty之前,必须用jsp:useBean来创建它。
2、不能使用jsp:getProperty来检索一个已经被索引了的属性。
3、能够和JavaBeans组件一起使用jsp:getProperty,但是不能与Enterprise Java Bean一起使用。

<jsp:forward>动作元素
标签表示重定向一个静态html/jsp的文件,或者是一个程序段。

<jsp:forward page="path"} />
or
<jsp:forward page="path"} >
<jsp:param name="paramName" value="paramValue" />……
</jsp:forward>

注:
1、page=“path” 为一个表达式,或者一个字符串。
2、jsp:param name 指定参数名,value指定参数值。参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。要传递多个参数,则可以在一个JSP文件中使用多个jsp:param将多个参数发送到一个动态文件中。

JSP动作标签:http://www.imooc.com/wenda/detail/561909

二、JSP 表达式语言

JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true、false,还有null。

1.EL中的基础操作符

EL表达式支持大部分Java所提供的算术和逻辑操作符:

操作符 描述
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
( ) 组织一个子表达式以改变优先级
+
- 减或负
*
/ or div
% or mod 取模
== or eq 测试是否相等
!= or ne 测试是否不等
< or lt 测试是否小于
> or gt 测试是否大于
<= or le 测试是否小于等于
>= or ge 测试是否大于等于
&& or and 测试逻辑与
|| or or 测试逻辑或
! or not 测试取反
empty 测试是否空值

2.JSP EL中的函数

JSP EL允许您在表达式中使用函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:

${ns:func(param1, param2, ...)}

ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推。比如,有函数fn:length,在JSTL库中定义,可以像下面这样来获取一个字符串的长度:

${fn:length("Get my length")}

要使用任何标签库中的函数,您需要将这些库安装在服务器中,然后使用标签在JSP文件中包含这些库。

3.JSP EL隐含对象

JSP EL支持下表列出的隐含对象:

隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!