JSP常见指令

2011-11-07 20:07 13193人阅读 评论(3) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

 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

JSP常见指令的更多相关文章

  1. JSP常见的7个动作指令

    JSP常见的7个动作指令 1.jsp:forward指令    执行页面转向,将请求处理转发到下一个页面 2.jsp:param指令    用于传递参数 3.jsp:include指令    用于动态 ...

  2. JSP常见的三个编译指令

    JSP常见的三个编译指令 1.page指令   是针对当前页面的指令 2.include指令    用于指定包含另一个页面 3.taglib指令    用于定义和访问自定义标签

  3. jsp常见的指令总结

    一.三个编译指令 1.page指令: 首先,我们要明确一点就是page指令是一个全局指令,针对当前页面,其次我们再来深挖他的功能,它到底有哪些功能那,在我们程序中起到什么作用??? a.语法结构:&l ...

  4. JSP三大指令、七大动作、九大对象

    <%---------------------- JSP三大指令 -----------------------------%><%-- 1. page: language impo ...

  5. JSP三大指令

    JSP三大指令1.page-->最复杂,<%@page language = "java" info = "xxx" ..%>  *pageE ...

  6. Java学习-035-JavaWeb_004 -- JSP include 指令

    inclue 指令是将不同的文件插入到 JSP 网页中,这些文件可以是文本文件.HTML文件.JSP 文件,指令语法如下: <%@include file="相对路径"%&g ...

  7. Java学习-034-JavaWeb_003 -- JSP page 指令

    前文对 JSP 的基础知识进行了初步的讲解,此文主要讲述 JSP page 指令. page 指令用于定义页面的多种属性,例如:脚本语言.编码方式.导入的 Java 包等,page 执行的语法如下: ...

  8. jsp常用指令

    Jsp包含三个编译指令和七个动作指令. 三个编译指令为:page.include.taglib. 七个动作指令为:jsp:forward.jsp:param.jsp:include.jsp:plugi ...

  9. JavaWeb笔记——Jsp的指令、内置对象和动作标签

    JSP三大指令   一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...

随机推荐

  1. Android -- 是时候来了解一波EventBus了

    1,最早在项目中使用EventBus是在去年的时候,但自己一直没抽出时间来记录记录一下,今天就来简单的使用一下,先看一下EventBus的定义是什么 EventBus:是一个发布 / 订阅的事件总线. ...

  2. RobotFrameWork WebService Soap接口测试 (一)

    在做完基于http协议的接口测试之后,开始弄soap协议了,之前有过开发java webservice自动化框架的经验,所以我想着应该并不会很难.对于webservice的简介,服务器端和客户端的开发 ...

  3. 企业信息系统——SCM

    供应链是供应商.制造商.仓库.配送中心和渠道商等构成的物流网络.同一个企业可能构成这个网络的不同组成节点,但更多的情况下是由不同的企业构成这个网络中的不同节点.例如,在某条供应链中,某个企业可能即在制 ...

  4. js处理异常try{}catch(e){}

    MXS&Vincene  ─╄OvЁ  &0000021─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  5. 关于加权的LIS问题

    蒟蒻Zigzag正在准备联赛...... 这个算是这几天做的唯一一个值得写一写的题吧.首先LIS的N^2暴力dp应该都会写,就是F[i]=Max{F[j]}+1 那么加权的就吧后面的1换成数的权值就行 ...

  6. [5] 智能指针boost::shared_ptr

    [1]boost::shared_ptr简介 boost::shared_ptr属于boost库,定义在namespace boost中,包含头文件#include<boost/shared_p ...

  7. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  8. idea集成git

    这几天刚刚用了idea编辑器.用起来感觉相比eclipse有很大优势.其中我觉得特别引人注意的一个优势就是与git的集成开发.git作为一个代码维护的平台和idea结合使用对团队开发有很大意义.本人是 ...

  9. android中ContentProvider获取联系人 总结

    35.内容提供者:ContentResolver 用内容提供者来获取联系人信息 35-1:权限 <!-- 对联系人的读.写权限 --> <uses-permission androi ...

  10. 如何使用R语言解决可恶的脏数据

    转自:http://shujuren.org/article/45.html 在数据分析过程中最头疼的应该是如何应付脏数据,脏数据的存在将会对后期的建模.挖掘等工作造成严重的错误,所以必须谨慎的处理那 ...