JSP 动作(action)

JSP 动作(action)

JSP教程

JSP 教程

JSP 环境设置

JSP 体系结构

JSP 生命周期

JSP 语法

JSP 指令

JSP page 指令

JSP include 指令

JSP taglib 指令

JSP 动作(action)

JSP 隐式对象

JSP 客户端请求

JSP 服务器响应

JSP Http状态代码

JSP 表单处理

JSP 过滤器

JSP Cookie 处理

JSP session(会话)跟踪

JSP 文件上传

JSP 处理日期

JSP 页面重定向

JSP 点击计数器

JSP 自动刷新

JSP 发送电子邮件

JSP 高级

JSP 标准标记库(JSTL)

JSP 数据库访问

JSP XML数据

JSP Java Beans

JSP 自定义标签

JSP 表达语言(EL)

JSP 异常处理

JSP 调试

JSP 安全

JSP 国际化

上一节: JSP taglib 指令

上一节

下一节: JSP 隐式对象

下一节

JSP 动作(action)

动作

在本章中,我们将讨论JSP中的Actions。这些动作使用XML语法中的构造来控制servlet引擎的行为。您可以动态插入文件,重用JavaBeans组件,将用户转发到另一个页面或为Java插件生成HTML。Action元素只有一种语法,因为它符合XML标准-

动作元素基本上是预定义的功能。下表列出了可用的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页面和文档中编写模板文本。

共同属性

所有Action元素共有两个属性:id属性和scope属性。

id 属性

id属性唯一地标识Action元素,并允许在JSP页面内引用该操作。如果Action创建对象的实例,则可以使用ID值通过隐式对象PageContext引用它。

scope 属性

scope 属性标识Action元素的生命周期。id属性和scope属性直接相关,因为scope属性决定了与id关联的对象的寿命。scope属性具有四个可能的值:(a)page,(b)request,(c)session和(d)application。

动作

通过此操作,您可以将文件插入到正在生成的页面中。语法看起来像这样-

与include指令不同,include指令在将JSP页面转换为servlet时插入文件,而该动作则在请求页面时插入文件。下表列出了与include动作相关联的属性-

page - 要包含的页面的相对URL。

flush - 布尔属性确定是否在包含资源之前清除了包含的缓冲区。

让我们定义以下两个文件(a)date.jsp和(b)main.jsp如下:

以下是date.jsp文件的内容-

Today's date: <%= (new java.util.Date()).toLocaleString()%>

以下是main.jsp文件的内容-

The include Action Example

The include action Example

现在让我们将所有这些文件保留在根目录中,然后尝试访问main.jsp。您将收到以下输出-

动作

useBean动作是相当多的功能。它首先使用id和scope变量搜索现有对象。如果找不到对象,则它将尝试创建指定的对象。加载bean的最简单方法如下-

加载Bean类后,可以使用jsp:setProperty和jsp:getProperty操作来修改和检索Bean属性。下表列出了与useBean操作关联的属性-

class - 指定Bean的完整软件包名称。

type - 指定将引用该对象的变量的类型。

beanName - 给出由java.beans.Beans类的实例化方法指定的bean名称。

现在,在给出与这些动作相关的有效示例之前,让我们讨论一下jsp:setProperty和jsp:getProperty动作。

动作

setProperty 动作设置一个bean的属性。在执行此操作之前,必须预先定义Bean。有两种使用setProperty操作的基本方法:您可以在jsp:useBean元素之后但在jsp:useBean元素之外使用jsp:setProperty,如下所示-

...

在这种情况下,无论是否实例化了一个新bean或找到了一个现有bean ,都将执行jsp:setProperty。可以在其中出现jsp:setProperty的第二个上下文位于jsp:useBean元素的主体内部,如下所示-

...

在这里,仅当实例化一个新对象时才执行jsp:setProperty,而不是在找到现有对象时执行。下表列出了与setProperty操作关联的属性-

name - 指定将设置其属性的bean。 Bean必须已经预先定义。

property - 指示要设置的属性。 值“ *”表示名称与bean属性名称匹配的所有请求参数都将传递给适当的setter方法。

value - 要分配给给定属性的值。 参数的值为null,或者参数不存在,将忽略setProperty操作。

param - param属性是请求参数的名称,该属性的值将接收。 您不能同时使用value和param,但允许两者都不使用。

动作

getProperty 动作用于检索一个给定的属性,并将其转换的值的字符串,并最终将其插入到输出中。getProperty操作只有两个属性,这两个属性都是必需的。getProperty操作的语法如下:

...

>

下表列出了与getProperty操作关联的必需属性-

name - 具有要检索的属性的Bean的名称。 Bean必须已经预先定义。

property - property属性是要检索的Bean属性的名称。

让我们定义一个将在我们的示例中进一步使用的测试bean-

/* File: TestBean.java */

package action;

public class TestBean {

private String message = "No message specified";

public String getMessage() {

return(message);

}

public void setMessage(String message) {

this.message = message;

}

}

将上面的代码编译到生成的TestBean.class文件中,并确保已将TestBean.class复制到C:\apache-tomcat-9.0.37\webapps\WEB-INF\classes\action文件夹中,并且CLASSPATH变量也应为设置为此文件夹-

现在在main.jsp文件中使用以下代码。这将加载bean并设置/获取一个简单的String参数-

Using JavaBeans in JSP

Using JavaBeans in JSP

value = "Hello JSP..." />

Got message....

现在让我们尝试访问main.jsp,它将显示以下结果-

动作

forward 动作终止当前页面的动作和将请求转发到其他资源,如静态页面,另一个JSP页面或Java Servlet中。以下是forward动作的语法-

下表列出了与forward操作相关的必需属性-

page - 应该由另一个资源的相对URL组成,例如静态页面,另一个JSP页面或Java Servlet。

让我们再次使用以下两个文件(a)date.jsp和(b)main.jsp中如下-

以下是date.jsp文件的内容-

Today's date: <%= (new java.util.Date()).toLocaleString()%>

以下是main.jsp文件的内容-

The include Action Example

The include action Example

现在让我们将所有这些文件保留在根目录中,然后尝试访问main.jsp。这将显示如下结果。在这里,它丢弃了main页面上的内容,仅显示了转发页面上的内容。

动作

plugin作用是用来Java组件插入到一个JSP页面。它确定浏览器的类型,并根据需要插入标记。如果所需的插件不存在,它将下载该插件,然后执行Java组件。Java组件可以是Applet或JavaBean。插件操作具有一些属性,这些属性与用于格式化Java组件的常见HTML标签相对应。所述元素也可用于将参数发送到小程序或bean。

以下是使用plugin动作的典型语法-

width = "60" height = "80">

Unable to initialize Java Plugin

如果您有兴趣,可以使用一些applet尝试此操作。新的元素元素可用于指定在组件发生故障时要发送给用户的错误字符串。-

动作

动作被用于动态地定义的XML元素。动态一词很重要,因为它意味着XML元素可以在请求时生成,而不是在编译时静态生成。

以下是一个简单的示例,用于动态定义XML元素-

<%@page language = "java" contentType = "text/html"%>

xmlns:jsp = "http://java.sun.com/JSP/Page">

Generate XML Element

Value for the attribute

Body for XML element

这将在运行时产生以下HTML代码-

Generate XML Element

Body for XML element

动作

text动作可以用来写JSP页面和文档模板文本。以下是此操作的简单语法-

Template data

模板的主体不能包含其他元素。它只能包含文本和EL表达式(注意-EL表达式在下一章中进行了说明)。请注意,在XML文件中,不能使用${whatever > 0}之类的表达式,因为大于号是非法的。而是使用gt形式,例如${whatever gt 0}或另一种方法是将值嵌入CDATA节中。

]]>

如果您需要包含DOCTYPE声明(例如XHTML),则还必须使用元素,如下所示:

"DTD/xhtml1-strict.dtd">]]>

jsp:text action

Welcome to JSP Programming

尝试上面的示例使用和不使用操作。

上一节: JSP taglib 指令

上一节

下一节: JSP 隐式对象

下一节

查看笔记 分享笔记

笔记内容:

称呼:

Email:

站点:

分享笔记 重置

分类导航

前端

Ajax 教程

Angular 教程

Aurelia 教程

Bootstrap 教程

ChartJS 教程

CSS 教程

ES6 教程

FontAwesome 教程

HTML 教程

HTML 字符集 教程

HTML 游戏 教程

JavaScript 教程

jQuery 教程

Less 教程

React 教程

Sass 教程

Stylus 教程

TypeScript 教程

Unity 教程

Vue.js 教程

WebAssembly 教程

XAML 教程

颜色 教程

服务端

C# 教程

C++ 教程

COBOL 教程

C语言 教程

Fortran 教程

Go 教程

Groovy 教程

Java 教程

JSP 教程

JVM 教程

Kotlin 教程

Lisp 教程

Lua 教程

Node.js 教程

Pascal 教程

Perl 教程

PHP 教程

Python 教程

Python 3 教程

Ruby 教程

Rust 教程

Scala 教程

Spring 教程

Spring Boot 教程

Spring Cloud 教程

VB.Net 教程

移动端

Android 教程

IOS 教程

Objective-C 教程

React Native 教程

Swift 教程

小程序 教程

数据库

Access 教程

DB2 教程

Mariadb 教程

Memcached 教程

MongoDB 教程

MySQL 教程

Neo4j 教程

PL/SQL 教程

PostgreSQL 教程

Redis 教程

SQL 教程

SQL Server 教程

SQLite 教程

T-SQL 教程

数据格式

Jackson 教程

JSON 教程

SVG 教程

XML 教程

开发工具

ActiveMQ 教程

Ant 教程

Apache HttpClient 教程

Apache POI PPT 教程

AWS 教程

Docker 教程

ElasticSearch 教程

ExpressJS 教程

GIT 教程

GitLab 教程

Google Maps 教程

Gradle 教程

Java NIO 教程

JavaFX 教程

JavaMail 教程

JDBC 教程

jMeter 教程

JPA 教程

jsoup 教程

Junit 教程

KoaJS 教程

Kubernetes 教程

Log4j 教程

Logstash 教程

Lucene 教程

Makefile 教程

Maven 教程

RESTful 教程

Sed 教程

SEO 教程

Servlet 教程

SLF4J 教程

Socket.IO 教程

Struts 教程

SVN 教程

TestNG 教程

UML 教程

UNIX / LINUX 教程

WebSocket 教程

WPF 教程

xStream 教程

区块链 教程

数据处理

Flink 教程

Flume 教程

Hadoop 教程

Hbase 教程

Hive 教程

Kafka 教程

Kibana 教程

MapReduce 教程

MATLAB 教程

MyBatis 教程

Pig 教程

R语言 教程

Solr 教程

Spark 教程

Storm 教程

Zookeeper 教程

大数据分析 教程

数据仓库 教程

数据挖掘 教程

计算机基础

HTTP 教程

IPv4 教程

IPv6 教程

Ubantu 教程

WebServices 教程

嵌入式系统 教程

操作系统 教程

数据结构和算法 教程

汇编语言 教程

物联网 教程

电子电路基础 教程

编译器设计 教程

网站开发 教程

计算机 教程

计算机基础 教程

计算机网络 教程

设计模式 教程

AI

CNTK 教程

Keras 教程

PyTorch 教程

TensorFlow 教程

人工智能 教程

机器学习 教程

Python 技术

Django 教程

Flask 教程

NumPy 教程

Pandas 教程

Pillow 教程

PyGTK 教程

PyQt5 教程

PySpark 教程

pytest 教程

Python -数据科学 教程

Python MySQL 教程

Python 取证 教程

Python 数据结构 教程

Python 文本处理 教程

Python 网络编程 教程

Python 网页抓取 教程

Python 设计模式 教程

RxPY 教程

SciPy 教程

Seaborn 教程

SymPy 教程

wxPython 教程

框架

Laravel 教程

Web 图标Icon 教程

Web2py 教程

WebGL 教程

WebRTC 教程

WordPress 教程

Yii 教程

Zend Framework 教程

SAP

Crystal Reports 教程

你可能也喜欢

她是世界最美生物之一,人面鱼身揭秘美人鱼存在之谜
beat365手机版官方网站正规

她是世界最美生物之一,人面鱼身揭秘美人鱼存在之谜

📅 08-27 👀 7440
在中国历史上,地主是怎么产生的?为什么会产生地主阶级?
cf兰的秘密基地:穿越火线英雄兰获取方法推荐
怎样获得免费office365

cf兰的秘密基地:穿越火线英雄兰获取方法推荐

📅 10-18 👀 1538
高铁二等座座位图顺序,二等座高铁怎么找座位
365bet官网平台网址

高铁二等座座位图顺序,二等座高铁怎么找座位

📅 09-29 👀 6535
最值得男人珍惜的四种女人,别搞错了对象!_手机网易网
手折正弦
怎样获得免费office365

手折正弦

📅 09-12 👀 3942

🎨 用创意点亮世界