JAVA-JSP动作
动作元素基本上是预定义的功能。下表列出了可用的JSP动作 -
| 编号 | 动作 | 描述 |
|---|---|---|
| 1 | jsp:include |
在请求页面时包含一个文件。 |
| 2 | jsp:useBean |
查找或实例化一个JavaBean。 |
| 3 | jsp:setProperty |
设置JavaBean的属性。 |
| 4 | jsp:getProperty |
将JavaBean的属性插入输出。 |
| 5 | jsp:forward |
将请求者转发到新页面。 |
| 6 | jsp:plugin |
生成针对Java插件创建OBJECT或EMBED标记的特定于浏览器的代码。 |
| 7 | jsp:element |
动态定义XML元素。 |
| 8 | jsp:attribute |
定义动态定义的XML元素属性。 |
| 9 | jsp:body |
定义动态定义的XML元素的正文。 |
| 10 | jsp:text |
用于在JSP页面和文档中编写模板文本。 |
共同属性
所有动作元素共有两个属性:id属性和scope属性。
id属性
id属性唯一标识动作元素,并允许在JSP页面内引用该操作。 如果动作创建了一个对象的实例,则id值可以用于通过隐式对象PageContext引用它。
scope属性
scope属性标识动作元素的生命周期。id属性和scope属性是直接相关的,因为scope属性决定了与id关联的对象的使用寿命。scope属性有四个可能的值:
- page
- request
- session
- application
1. jsp:include动作
此动作允许将文件插入到正在生成的页面中。语法如下所示 -
<jsp:include page = "relative URL" flush = "true" />
与在将JSP页面转换为servlet时将文件插入的include指令不同,此动作在请求页面时插入该文件。
下表列出了与include动作相关联的属性 -
| 编号 | 属性 | 描述 |
|---|---|---|
| 1 | page |
要包括的页面的相对URL。 |
| 2 | flush |
布尔属性确定包含的资源是否在包含其缓冲区之前被刷新。 |
示例
下面定义两个文件date.jsp和index.jsp,以下是date.jsp文件的内容 -
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<p>今天是: <%= (new java.util.Date()).toLocaleString()%></p>
以下是index.jsp文件的内容 -
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>include动作示例</title>
</head>
<body>
<h2>include动作示例</h2>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>
现在将这些文件保存在根目录下,并尝试访问index.jsp。将会看到以下输出 -

2. jsp:useBean 动作
useBean动作是非常通用的。它首先使用id和scope变量搜索现有对象。如果未找到对象,则会尝试创建指定的对象。
加载bean的最简单的方法如下 -
<jsp:useBean id = "name" class = "package.class" />
当加载了一个bean类,可以使用jsp:setProperty和jsp:getProperty操作来修改和检索bean属性。
下表列出了与useBean动作关联的属性 -
| 编号 | 属性 | 描述 |
|---|---|---|
| 1 | class |
指定bean的完整包名称。 |
| 2 | type |
指定将引用对象的变量的类型。 |
| 3 | beanName |
给出由java.beans.Beans类instantiate()方法指定的bean的名称。 |
现在来看看jsp:setProperty和jsp:getProperty动作,然后再给出与这些操作相关的有效示例。
3. jsp:setProperty 动作
setProperty操作设置Bean的属性。 在此操作之前,Bean先前已定义。 有两种使用setProperty操作的基本方法 -
可以使用jsp:setProperty在之后,但是在jsp:useBean元素之外,如下所示:
<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>
在这种情况下,执行jsp:setProperty,无论是实例化新bean还是找到现有的bean。
jsp:setProperty可以在jsp:useBean元素的正文内的上下文内出现,如下所示:
<jsp:useBean id = "myName" ... >
...
<jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>
这里,只有当一个新对象被实例化时,才执行jsp:setProperty,如果找到了一个现有的对象,则不执行。
下表列出了与setProperty动作相关联的属性 -
| 编号 | 属性 | 描述 |
|---|---|---|
| 1 | name |
指定将设置其属性的bean。 Bean在先前就已经定义了。 |
| 2 | property |
表示要设置的属性。值“*”表示名称与bean属性名称匹配的所有请求参数将被传递给对应的setter方法。 |
| 3 | value |
要分配给给定属性的值。参数的值为null,或者参数不存在,则setProperty操作被忽略。 |
| 4 | param |
param属性是属性要接收的值的请求参数的名称。不能同时使用值和参数,但是不允许使用。 |
4. jsp:getProperty动作
getProperty操作用于检索给定属性的值并将其转换为字符串,最后将其插入输出。getProperty动作只有两个属性,这两个属性都是必需的。getProperty操作的语法如下:
<jsp:useBean id = "myName" ... />
...
<jsp:getProperty name = "myName" property = "someProperty" .../>
下表列出了与getProperty动作相关联的必需属性 -
| 编号 | 动作 | 描述 |
|---|---|---|
| 1 | name |
要检索的属性的Bean名称。 前提是Bean在先前已经定义了。 |
| 2 | property |
property属性是要检索的Bean属性的名称。 |
示例
下面定义一个Bean类:Message ,其代码如下-
/* File: Message.java */
package com.yiibai;
public class Message {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
在main.jsp文件中编写以下代码。这将加载bean并设置/获取一个简单的String参数 -
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>在JSP使用JavaBeans示例</title>
</head>
<body>
<div style="margin:auto;text-align:center;">
<h2>在JSP使用JavaBeans示例</h2>
<hr/>
<jsp:useBean id="msg" class="com.yiibai.Message" />
<p>获取默认设置的信息是:<jsp:getProperty name="msg" property="message" /></p>
<jsp:setProperty name="msg" property="message" value="Hello JSP..." />
<p>获取设置的信息是:<jsp:getProperty name="msg" property="message" /></p>
</div>
</body>
</html>
现在尝试访问main.jsp,它将显示以下结果 -

5. jsp:forward动作
<jsp:forward>动作终止当前页面的操作,并将请求转发到另一个资源,例如静态页面,另一个JSP页面或Java Servlet。
以下是<jsp:forward>动作的语法 -
<jsp:forward page = "Relative URL" />
下表列出了与<jsp:forward>动作相关联的必需属性 -
| 编号 | 动作 | 描述 |
|---|---|---|
| 1 | page |
应该包含另一个资源的相对URL,例如静态页面,另一个JSP页面或Java Servlet。 |
示例
创建以下两个文件:date.jsp和main.jsp,分别如下 -
以下是date.jsp文件的内容 -
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
以下是main.jsp文件的内容 -
现在将这些文件保存在根目录下,并尝试访问main.jsp。这将显示如下所示的结果。
在这里,它从main.jsp丢弃了内容,并显示了来自转发目标页面的内容。
6. jsp:plugin 动作
<jsp:plugin>动作用于将Java组件插入到JSP页面中。它确定浏览器的类型,并根据需要插入<object>或<embed>标签。
如果所需的插件不存在,它会下载插件,然后执行Java组件。Java组件可以是Applet或JavaBean。
<jsp:plugin>动作有几个属性对应于用于格式化Java组件的常用HTML标记。 <param>元素也可用于向Applet或Bean发送参数。
以下是使用<jsp:plugin>动作的典型语法 -
<jsp:plugin type = "applet" codebase = "dirname" code = "MyApplet.class"
width = "60" height = "80">
<jsp:param name = "fontcolor" value = "red" />
<jsp:param name = "background" value = "black" />
<jsp:fallback>
Unable to initialize Java Plugin
</jsp:fallback>
</jsp:plugin>
如果您有兴趣,可以使用一些小程序尝试此操作。新元素<fallback>元素可用于指定要发送给用户的错误字符串,以防组件发生故障。
<jsp:element>,<jsp:attribute>和<jsp:body>动作用于动态定义XML元素。 这个词动态是重要的,因为这意味着XML元素可以在请求时生成,而不是在编译时静态生成。
以下是动态定义XML元素的简单示例 -
<%@page language = "java" contentType = "text/html"%>
<html xmlns = "http://www.w3c.org/1999/xhtml"
xmlns:jsp = "http://java.sun.com/JSP/Page">
<head><title>Generate XML Element</title></head>
<body>
<jsp:element name = "xmlElement">
<jsp:attribute name = "xmlElementAttr">
Value for the attribute
</jsp:attribute>
<jsp:body>
Body for XML element
</jsp:body>
</jsp:element>
</body>
</html>
这将在运行时生成以下HTML代码 -
<html xmlns = "http://www.w3c.org/1999/xhtml" xmlns:jsp = "http://java.sun.com/JSP/Page">
<head><title>Generate XML Element</title></head>
<body>
<xmlElement xmlElementAttr = "Value for the attribute">
Body for XML element
</xmlElement>
</body>
</html>
7. jsp:text动作
可以使用<jsp:text>操作将模板文本写入JSP页面和文档。以下是此操作的简单语法 -
<jsp:text>Template data</jsp:text>
模板的主体不能包含其他元素; 它只能包含文本和EL表达式(注 - EL表达式将在后续章节中进行说明)。 请注意,在XML文件中不能使用诸如${whatever> 0}的表达式,因为大于符号是非法的。它是使用gt形式来代替,例如${whatever gt 0}或替代方法是将值嵌入到CDATA中。如下示例 -
<jsp:text><![CDATA[<br>]]></jsp:text>
如果需要包括DOCTYPE声明,例如XHTML,还必须使用<jsp:text>元素,如下所示:
<jsp:text><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">]]></jsp:text>
<head><title>jsp:text action</title></head>
<body>
<books><book><jsp:text>
Welcome to JSP Programming
</jsp:text></book></books>
</body>
</html>
尝试以上示例,并使用<jsp:text>操作。
JAVA-JSP动作的更多相关文章
- Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin
plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...
- Java学习-037-JavaWeb_006 -- JSP 动作标识 - include
这个动作是指在当前的页面中包含一个或多个 JSP 页面或者 HTML 文件,语法:<jsp:include file="../jsp/login.jsp" flush=&qu ...
- Java学习-036-JavaWeb_005 -- JSP 动作标识 - forward
JSP 动作主要作用是根据指定的动作进行相应的处理. 一.param 动作 用来给 HTML 文件和 JSP 文件传递参数的,经常和 forward.include.plugin 动作结合使用,语法格 ...
- Java EE.JSP.动作组件
常见的JSP动作组件有以下几种: 1)<jsp:include>:在页面被请求的时候引入一个文件 2)<jsp:param>:在动作组件中引入参数信息 3)<jsp:fo ...
- JSP动作元素——————理论篇
JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param 在 jsp:include.js ...
- 重温JSP学习笔记--JSP动作标签
上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...
- JSP动作元素
JSP动作元素分类 <jsp:include page="content.jsp"></jsp:include> 使用<%@ include%> ...
- JSP 动作元素
JSP动作元素 1. 动作元素分类 用来动态的包含文件.网页跳转及使用JavaBean组件等. 语法:<jsp:XXX />或者<jsp:XXX></jsp:XXX&g ...
- jsp动作标签概述
*Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...
- [转]应聘Java,jsp,j2ee软件工程师笔试中可能出现的问题
相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你 ...
随机推荐
- Alpha阶段敏捷冲刺①Scrum 冲刺博客
第 1 篇 Scrum 冲刺博客对整个冲刺阶段起到领航作用,应该主要包含三个部分的内容: 各个成员在 Alpha 阶段认领的任务 成员 任务 张晨晨 完成界面设计(前端) 黄登峰 完成界面设计(前端) ...
- HDU 2106 母猪的故事
http://acm.hdu.edu.cn/showproblem.php?pid=2160 Problem Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生 ...
- CXGRID用法(取行、列值;定位选中某行等等)
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值 cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号 cxGrid1DB ...
- Vue.js——60分钟webpack项目模板快速入门
概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...
- From 百度知道 SQLSERVER 字符集排序规则简单说明
https://zhidao.baidu.com/question/390314825002277485.html 学习一下, 以后说不定用得到. collate Latin1_General_CS_ ...
- Delphi : keydown与keypress的区别,组合键
Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...
- javascript中对象访问自身属性的方式
在javascript中,通过对象的方法访问对象自身属性时,必须采用this.fieldName的方式. 原因是javascript中Function是无状态的,访问对象的属性时,必须指定当前的上下文 ...
- 环形buffer缓冲区
#include <stdio.h> #include <string.h> #include <malloc.h> struct CircleBuf { char ...
- widows终端远程连接Linux服务器
一.前言 为什么不是远程连接Linux服务器? 因为我不会,远程连接window我就用电脑自带的“远程桌面连接”. 以下所述都是在CentOS操作系统下的. 服务器刚换成Linux的时候很迷茫,感觉无 ...
- web接口测试中需要测试的几个点
本文导读: web接口测试用例要包括欲测试的功能.应输入的数据和预期的输出结果,只有在数据能正确流入.流出模块的前提下,其他测试才有意义.下面介绍在web测试接口时一些需要注意的点 1.接口返回 数据 ...