欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp的常用指令有哪些(编译指令/动作指令整理)

程序员文章站 2023-12-01 18:12:04
jsp包含三个编译指令和七个动作指令。 三个编译指令为:page、include、taglib。 七个动作指令为:jsp:forward、jsp:param、jsp:inc...
jsp包含三个编译指令和七个动作指令。
三个编译指令为:page、include、taglib。
七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:usebean、jsp:setproperty、jsp:getproperty。
一、编译指令
1、 page指令
a. 通常位于jsp页面的顶端,同一个页面可以有多个page指令。语法格式如下:
复制代码 代码如下:

〈% @page
[language="java"]
[extends="package.class"]
[import= "package. class i package. *},…"]
[session="true i false"]
[buffer="none i 8kb i size kb" 1
[autoflush="true i false"]
[isthreadsafe="true i false"]
[info="text"]
[errorpage="relativeurl"]
[contenttype="mimetype[ ;charset=characterset]" i"text/html;charset= "808859-1"]
[iserrorpage=" true i false"]
%〉

1)language属性,一般情况就是java,代表jsp页面使用的脚本语言。
2)extends属性,确定 jsp 程序编译时所产生的 java 类,需要继承的父类,或者需要实现的接口的全限定类名。
1.import属性,用来导入包,下面几个包是默认自动导入的,不需要显式导入。默认导入的包有:
复制代码 代码如下:

java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*

2.session属性,设定这个 jsp 页面是否需要 htip session 。
3.buffer属性,指定输出缓冲区的大小。输出缓冲区的 jsp 内部对象: out 用于缓存 jsp页面对客户浏览器的输出,默认值为 8kb,可以设置为 none ,也可以设置为其他值,单位为kb
4.autoflush属性,当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true 时为正常输出;如果设置为 false ,会在 buffer 溢出时产生一个异常。
5.info属性,设置该 jsp 程序的信息,也可以看做其说明,可以通过 servlet. getservletinfo()方法获取该值。如果在 jsp 页面中,可直接调用 getservletinfoo方法获取该值,因为 jsp 页面的实质就是 servlet 。
errorpage属性,指定错误处理页面。如果本程序产生了异常或者错误,而该 jsp 页面没有对应的处理代码,则会自动调用该指令所指定的 jsp 页面。使用 jsp 页面时,可以不处理异常,即使是 checked 异常。(重定向到对应的错误处理页面,但是url还是原来的url,并不发生变化)如果这个页面不存在这个属性,那么一旦代码出现问题,就会在开发环境和ie浏览器上提示错误。可见这条属性控制异常处理的效果在表现形式上要好的多。
6.iserrorpage属性,设置本 jsp 页面是否为错误处理程序。如果该页面本身己是错误处理页面,则无须使用 errorpage 属性。
7.contenttype属性,用于设定生成网页的文件格式和编码方式,即 mime 类型和页面字符集类型,默认的 mime 类型是 text/html; 默认的字符集为 iso-8859-1 。
2、 include指令
使用 include 指令,可以将一个外部文件嵌入到当前 jsp 文件中,同时解析这个页面中的 jsp 语句(如果有的话)。这是个静态的 include 语旬,不会检查所包含 jsp 页面的变化。
include 既可以包含静态的文本,也可以包含动态的 jsp 页面。静态的编译指令include ,是将被包含的页面加入进来,生成一个完整的页面。
include 编译指令的语法:
〈% @include file="relativeurlspec" %〉
如果被嵌入的文件经常需要改变,建议使用<jsp:include>操作指令,因为它是动态的 include 语句。
包含include指令的jsp页面在部署后,经过访问编译生成java文件,在tomcat的 work\catalina\localhost\project\org\apache\jsp目录下会生成对应的java文件,这些文件与jsp的名字相同,他包含了编译后的代码,甚至include包含的另外一个jsp的代码也被相应的加入了进来。

二、 动作指令
1、 forward指令:forward 指令用于将页面响应控制转发给另外的页面。既可以转发给静态的 html页面,也可以转发到动态的 jsp 页面,或者转发到容器中的 servlet。
jsp 的 forward 指令的格式如下:
对于 jsp 1. 0 ,使用如下语法:
复制代码 代码如下:

<jsp:forward page=”{relativeurl |<%=expression%>}” />

可使用如下语法:
复制代码 代码如下:

<jsp:forward page=”{relativeurl |<%=expression%>}”>
{<jsp:param…/>}
</jsp:forward>

第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过httpservletrequest 类的 getparameter方法获取。

2、include指令,它是一个动态的指令,可以用于导入某个页面。它的导入会每次检查被导入页面的改变。下面是include指令的使用格式:
复制代码 代码如下:

<jsp:include page=”{relativeurl |<%=expression%>}” flush=”true” />

或者:
复制代码 代码如下:

<jsp:include page=”{relativeurl |<%=expression%>}” flush=”true”>
<jsp:param name=”paramname” value=”paramvalue”/>
</jsp:include>

flush 属性用于指定输出缓存是否转移到被导入文件中。如果指定为剧。则包含在被导入文件中;如果指定为false,则包含在原文件中。对于jsp 1.1以下的旧版本,只能设置为false。
<include>和<jsp:include>分别为静态导入和动态导入。他们的的区别:静态导入是将被导入页面的代码完全插入,两个页面生成一个整体的 servlet; 而动态导入则在 servlet 中使用动态导入,从而将页面引入。

3、 usebean、setproperty和getproperty指令
这三个指令都是与javabean相关的指令,其中usebean用于在jsp页面初始化一个java实例,setproperty用于修改javabean实例的属性,getproperty用于获取javabean实例的属性。
usebean的语法格式:
复制代码 代码如下:

<jsp:usebean id=”” class=”” scope=”page | request |session | application” >

id是javabean的实例名,class属性确定javabean的实现类。scope属性确定生存范围【页面、请求、会话、应用】
setproperty的语法格式:
复制代码 代码如下:

<jsp:setproperty name=”” property=”” value=”” />

name属性确定需要设定

4、 plugin指令
plugin 指令主要用于下载服务器端的 javabean 或 applet 到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。
plugin 的语法格式如下:
复制代码 代码如下:

<jsp:plugin type=”bean | applet"
code="classfilename"
codebase="classfilediretoryname"
[name=" instancename"]
[archive="urltoarchive"]
[align= "bottom i top i middle i left i right"]
[heigh="displaypixels"]
[width="displaypixels"]
[hspace="leftrightpixels"]
[vspace="topbottompiexels"]
[jreversion=jreversionnumber|1.2"]
[nspluginurl="urltoplugin"]
[iepluginurl="urltoplugin"]>
[<jsp:parames>
[jsp:param name="parametername" value="parametervalue" />]
</jsp:params>]
[<jsp:fallback>text message for user that can no see the plugin
</jsp:fallback> ]
</jsp:plugin>

这些属性的说明如下:
type: 指定被执行的java程序的类型,是一个bean还是一个applet
code: 指定被执行的文件名,该属性值必须以“.class”扩展名结尾
codebase: 指定被执行的文件目录。
name: 给该程序起一个名字用来标识该程序。
archive: 指向一些要预先载入的将要使用到的类的路径。
hspace,vspace: 显示左右上下的留白。
jreversion: 能正确运行改程序必须的jre版本。
nsplugin,ieplugin: netscape navigator, internet exploer 下载运行所需jre 的地址。
<jsp:fallback>指令:当不能正确显示该applet时,代替显示的提示信息。

5、 param指令
param指令用于设置参数值,这个指令本身不能单独使用,因为单独使用没有意义。它可以和以下几个指令合起来使用
jsp:include
jsp:forward
jsp:plugin