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的页面如果要被另一个页面包含,那么应该用
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/">
这是jsp:forward的原始页面
将客户端请求转发到页面,转发时增加了二个请求参数:一个参数名为age,参数值为21,另一个参数名为name,参数值为evan。
在页面中,可以通过request内置对象来获取增加的请求参数值。
页面代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
"/TR/html4/">
word格式-可编辑-感谢下载支持
这是从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指令测试,这是页面
word格式-可编辑-感谢下载支持
代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
"/TR/html4/">
JSP:include指令测试,这是页面
执行结果如下:
word格式-可编辑-感谢下载支持
三、jsp:useBean、jsp:setProperty、jsp:getProperty指令
这三个指令都是和javaBean相关的指令,其中jsp:useBean指令用于在JSP页面中初始化一个JAVA实例;
jsp:setProperty指令用于为JavaBean实例的属性设置值;
jsp:getProperty指令用于输出JavaBean实例的属性。
jsp:useBean指令的语法格式为:
其中,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属性确定需要输出的属性名;
版权声明:本文标题:JSP的3个编译指令、7个动作指令 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705363791h482723.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论