admin 管理员组

文章数量: 887021


2024年1月16日发(作者:怎么删除sqlserver)

word格式-可编辑-感谢下载支持

JSP的3个编译指令、7个动作指令

3个编译指令:page、include、taglib

JSP的编译指令是通知JSP引擎(Tomcat、WebLogic)的消息,它不直接生成输出。

JSP引擎的工作原理:

当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序

(2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class

(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端

以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

编译指令都有其默认值,因此无须为每个指令设置其值。

常见的编译指令有3个:

(1)、page:是针对当前页面的指令;

(2)、include:用于指定包含另一个页面;

(3)、taglib:用于定义和访问自定义标签。

使用编译指定的语法格式如下:

<%@ 编译指令名 属性1="属性值" 属性2="属性值" ...%>

1、page指令:

是针对当前页面的指令,通常位于JSP页面的顶端,一个JSP页面可以使用多page指令。

word格式-可编辑-感谢下载支持

常用的page指令如下的格式:

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<%@ page import=".*" %>

常用的page的属性如下:

(1)、contentType:用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认MIME类型是text/html,默认的字符集类型为:ISO-8859-1;

(2)、language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,所以该属性的值通常都是java。

(3)、errorPage:指定错误处理页面,如果本页面产生了异常或者错误,而该页面没有对应的处理代码,则会自动调用该属性指定的JSP页面;

(4)、pageEncoding:指定生成网页的编码字符集;

(5)、import:用于导入包。下面几个包是默认自动导入的,不需要显示导入。默认导入的包有:.*、t.*、.*、.*;

2、include指令:

语法格式为:<%@ include file="要包含的页面路径" %>

jsp中有两种包含模式,一种是<%@ include file="要包含的页面路径" %>,这种叫静态包含;

另一种是 ,这叫做动态包含。

静态包含是直接把要包含的页面原样嵌入总的页面后再统一编译,而动态包含总的页面和要嵌入的页面是分开编译的。

jsp是建议凡是*.jsp的页面如果要被另一个页面包含,那么应该用动态包含,如果只是html或者是一段文本,那么用动态包含和静态包含都可以。因此原则上我们都倾向于使用动态包含。

word格式-可编辑-感谢下载支持

7个动作指令

动作指令和编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的动作。

编译指令在将JSP编译成Servlet时起作用;而处理指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法。

JSP动作指令主要有如下的7个:

jsp:forward:执行页面转向,将请求的处理转发到下一个页面。

jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。

jsp:include:用于动态引入一个JSP页面。

jsp:plugin:用于下载JavaBean或Applet到客户端执行。

jsp:useBean:创建一个JavaBean的实例。

jsp:setProperty:设置JavaBean实例的属性值。

jsp:getProperty:输出JavaBean实例的属性值

一、jsp:forward指令

jsp:forward指令用于将页面响应转发到另外的页面。既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet中。

jsp:forward指令的语法格式:

下面使用jsp:forward动作指令来转发用户请求:

:

word格式-可编辑-感谢下载支持

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

"/TR/html4/">

forward的原始页面

这是jsp:forward的原始页面

将客户端请求转发到页面,转发时增加了二个请求参数:一个参数名为age,参数值为21,另一个参数名为name,参数值为evan。

在页面中,可以通过request内置对象来获取增加的请求参数值。

页面代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

"/TR/html4/">

word格式-可编辑-感谢下载支持

forward跳转之后的页面

这是从jsp-forward页面跳转之后到得页面

姓名:<%=ameter("name") %>

年龄:<%=ameter("age") %>

结果如下:

从执行结果来看,用户请求的地址依然没有发生改变,但页面内容却完全变为forward目标页的内容。

注意:JSP页面中有中文时,为防止出现中文乱码,使用UTF-8字符集。

word格式-可编辑-感谢下载支持

二、jsp:include指令:

jsp:include指令是一个动态include指令,也可以包含某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。(只导入body的内容)

include指令的格式如下:

或者为:

flush属性用于指定输出缓存是否转移到被导入文件中。

实例:

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

"/TR/html4/">

JSP:include指令测试

JSP:include指令测试,这是页面

word格式-可编辑-感谢下载支持

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

"/TR/html4/">

JSP:include指令测试

JSP:include指令测试,这是页面

执行结果如下:

word格式-可编辑-感谢下载支持

三、jsp:useBean、jsp:setProperty、jsp:getProperty指令

这三个指令都是和javaBean相关的指令,其中jsp:useBean指令用于在JSP页面中初始化一个JAVA实例;

jsp:setProperty指令用于为JavaBean实例的属性设置值;

jsp:getProperty指令用于输出JavaBean实例的属性。

jsp:useBean指令的语法格式为:

application" />

其中,id属性为JavaBean的实例名,class属性确定JavaBean的实现类。

scope属性用于指定JavaBean实例的作用范围,该范围有如下4个值:

(1)、page:该JavaBean实例仅在该页面中有效;

(2)、request:该JavaBean实例在本次请求中有效;

(3)、session:该JavaBean实例在本次session内有效;

word格式-可编辑-感谢下载支持

(4)、application:该JavaBean实例在本应用内一直有效。

jsp:setProperty指令的语法格式如下:

其中,name属性确定需要设定JavaBean的实例名;

proterty属性确定需要设置的属性名;

value属性则确定需要设置的属性值。

jsp:getProperty指令的语法格式如下:

其中,name属性确定需要输出JavaBean的实例名;

proterty属性确定需要输出的属性名;


本文标签: 页面 指令 属性 包含