jsp语法摘要

表达式:
作用:用来包含一个符合JSP语法的表达式
语法格式:<%= expression %>

脚步段:
作用:用来包含一个有效的Java程序段
语法格式:<% code fragment %>

包含指令:
作用:在JSP中包含一个静态的文本,同时解析这个文件中的JSP语句
语法格式:<%@ include file="relativeURL" %>

page指令:
作用:用于定义JSP文件中的全局属性
语法格式:
<%@ page
    [ language="java"] --语言,只支持"java"
    [ extends="package.class"]
    [ import="{package.class | package.*},..."]
    [ session="true | false"]
    [ buffer="none|8kb|sizekb"]
    [ autoFlush="true | false"]
    [ isThreadSafe="true | false"]
    [ info="text"]
    [ errorPage="relativeURL"]
    [contentType="mimeType[;charset=characterSet ]" |"text/html;charset=ISO-8859-1"]
    [ isErrorPage="true | false"]
%>

extends="package.class"
    标明JSP编译是需要加入的Java Class的全名,但是得慎重使用,会限制JSP的编译能力
   
import="{package.class | package.*},..."
    需要导入的Java包的列表,这些包作用于程序段,表达式,以及声明   
   
session="true | false"
    设定客户是否需要HTTP Session,如果为True,那么Session是有用的。
    如果为false,那么就不能使用session对象,以及定义了scope=session的
    <jsp:useBean>元素。缺省是true。   
   
buffer="none|8kb|sizekb"
    buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出,缺省是8kb。
   
autoFlush="true | false"       
    设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果
    它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生。如果把buffer设置
    为none,那么就不能把autoFlush设置为false。
   
isThreadSafe="true | false"
    设置Jsp文件是否能处理多线程使用。缺省值是true。也就是说,JSP能够同时处理多个用户的请求,
    如果设置为false,一个JSP只能一次处理一个请求。
   
info="text"
    一个文本在执行JSP将会被逐字加入JSP中,能够使用Servlet.getServletInfo方法取回。

errorPage="relativeURL"
    设置处理异常事件的JSP文件
   
isErrorPage="true | false"
    设置此页是否为出错页,如果被设置为true,就能使用exception对象
   
注意1:<%@ page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<%@ page %>指令不能作用
于动态的包含文件,比如<jsp:inclue>
注意2:其中的属性只能用一次,Import属性例外

taglib 指令
作用:定义一个标签库以及其自定义标签的前缀
语法格式:
    <%@ taglib uri="URIToTagLibrary" prefix="tagPrefix">

<jsp:forward>
作用:重定向到一个JSP文件、HTML文件,或者是一个程序段。
语法格式:
    <jsp:forward page={"relativeURL" | "<%= expression %>"} />   
   
    <jsp:forward page={"relativeURL" | "<%= expression %>"}
        <jsp:param name="parameterName"
            value="{parameterValue | <%= expression %>}" />
        [<jsp:param ... />]
    </jsp:forward>
   
<jsp:useBean>
作用:创建一个Bean实例并指定它的名字和作用范围。
语法格式:<jsp:useBean
                id="beanInstanceName"   
                scope="page|request|session|application"
                {
                    class="package.class" |
                    type="package.class" |
                    class="package.class" type="package.class" |
                    beanName="{package.class | <%=expression %>}"
                }
                {
                    /> |
                    > other elements </jsp:useBean>
                }
    示例:
        <jsp:useBean id="cart" scope="session" class="session.Carts" />
        <jsp:useBean id="checking" scope="session" class="bank.Checking" >
            <jsp:setProperty name="checking" property="balance" value="0.0" />
        </jsp:useBean>
    属性说明:
        id="beanInstanceName"
        在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量来分辨不同的Bean,
    这个变量名对大小写敏感,必须符合所使用的脚本语言的规定。如果Bean已经在别的<jsp:useBean>
    标记中创建,则当使用这个已经创建过的Bean时,id的值必须与原来的那个id一致,否则则意味着
    创建了同一个类的两个不同的对象。
        scope="page|request|session|application"
        bean存在的范围以及id变量名的有效范围。缺省是page。
        page- 能在包含<jsp:useBean>元素的JSP文件以及此文件中的所有静态包含文件中使用这个Bean,
    直到页面执行完毕后向客户端发回响应或转到另一个文件为止。
        reuqest - 比如:request.setAttribute(beanInstanceName).一般来说,这种类型的Bean在单个JSP
    文件中完成生命周期,但在使用<jsp:forward>的情况下,Bean的生命周期会延长。
        session - 从创建Bean开始,就能在任何使用相同session的JSP文件中使用这个Bean。这个Bean存在
    于整个Session生存周期内,任何在分享此Session的Jsp文件都能使用同一个Bean。注意在创建这个Bean的
    JSP文件中"<%page %>"指令中必须指定"session="true""。
        application - 在整个web应用的服务启动到中止,Bean可以理解为全局变量。
       
    class="package.class"   
        使用new关键字以及class构造器从一个class实例一个bean。class不能是抽象的,必须有一个公用的,
    没有参数的构造器。
   
    type="package.class" ??
        如果这个bean已经在指定的范围中存在,那么赋予这个Bean一个数据类型。如果使用type属性的同时没有使用
    class或beanName,Bean将不会被实例化。
   
    beanName="{package.class | <%= expression %>}" type="package.class"
        使用java.bean.Beans.instantitate方法来从一个class或串行话的模版中实例化一个Bean,同时指定Bean的类型
    。Bean.instantiate方法将检查此名称是否表示一个类或一个串行化模版。如果这个Bean是被串行化的,那么
    Beans.instantiate方法将通过使用一个类装载器读取串行化格式(类似package.class.ser)。
        beanName可以是package和class,也可以是表达式,它的值会传给Beans.instantiate方法。type的值可以和Bean
    相同,也可以是它的基类,或者是它所实现的接口。
   
<jsp:setProperty>
作用:设置Bean的属性值。
语法格式:
    <jsp:setProperty
        name="beanInstanceName"
        {
            property="*" |
            property="propertyName" [param="parameterName"] |
            property="propertyName value="{string | <%= expression %>}"
        }
    />   
   
示例:<jsp:setProperty name ="mybean" property="*" />
      <jsp:setProperty name ="mybean" property="username" />
      <jsp:setProperty name ="mybean" property="username" value="zhou" />
属性说明:
    name="beanInstanceName"
        表示已经在<jsp:useBean>中创建的Bean实例的名字。
    property="*"
        存储用户输入的所有值,自动匹配bean中的属性。
    property="propertyName" [param="parameterName"]
        用一个参数值来指定Bean中一个属性值,一般情况下是从request对象中获取的。
    其中property指定Bean的属性名,param指定request中的参数名。
    property="propertyName value="{string | <%= expression %>}"
    手工赋值,指定属性名于值。
         
<jsp:getProperty>
作用:获取Bean的属性值,用于在页面中显示。
语法格式:
    <jsp:getProperty name="beanInstanceName" property="propertyName" />
    属性说明:
        name="beanInstanceName"
        bean的名字,由<jsp:useBean>指定,对象必须已经存在。
        property="propertyName"
        所指定的Bean的属性名。
       
<jsp:include>
作用:包含一个静态或动态文件
语法格式:
<jsp:include page="{relativeURL | <%= expression%>" flush="true" />

<jsp:include page="{relativeURL | <%= expression %>}" flush="true" >
    <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
</jsp:include>   

示例:
<jsp:include page="copyright.html" flush="true" />
<jsp:include page="script/login.jsp" flush="true">
    <jsp:param name="username" value="james" />
</jsp:include>   

属性说明:
page="{relativeURL | <%= expression%>"
参数为一相对路径,或者是代表相对路径的表达式。
flush="true"
必须设置为true.
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
<jsp:param>用来传递一个或多个参数到指定的动态文件,能在一个页面中使用多个<jsp:param>
用来传递多个参数
<jsp:include> 与 <%@include %>的区别在于<%@include %>只能包含静态文件,<%@include %>类似于C语言
中的宏替换。而判断页面是动态还是静态,不能根据文件类型,而是要看文件是否包含了要处理的JAVA程序。另外
<%@include %>不能传递参数。

<jsp:plugin>
作用:插入一个applet或Bean,必要的话还要下载一个Java插件用于执行
语法格式: <jsp:plugin
            type="bean | applet"
            code="classFileName"
            codebase="classFileDirectoryName"
            [name="instanceName"]
            [archive="URLToArchive,..."]
            [align="bottom|top|middle|left|right"]
            [height="displayPixels"]
            [width="displayPixels"]
            [hspace="leftRightPixels"]
            [vspace="topBottomPixels"]
            [jreversion="JREVersionNumber | 1.1"]
            [nspluginurl="URLToPlugin"]
            [iepluginurl="URLtoPlugin"]
            [<jsp:params>
              [ <jsp:param name="parameterName"
                  value="{parameterValue | <%=expression %>} %>} />]+
             </jsp:params>]
            [<jsp:fallback> text message for user </jsp:fallback>]
        </jsp:plugin>
属性说明:
    type="bean | applet"
    将被执行的插件对象的类型,必须选择,无缺省值。
    code="classFileName"
    将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。
    codebase="classFileDirectoryName"
    将会被执行的Java class文件的目录(或者路径)    ,如果没有提供此属性,那么使用<jsp:plugin>的jsp文件的目录将会被使用。
   
    [name="instanceName"]
    这个Bean或applet实例的名字,它将会在Jsp其它的地方调用。
    [archive="URLToArchive,..."]
    一些由逗号分开的路径名,这些路径名用于预装一些将要使用的class,这会提高applet的性能。
    [align="bottom|top|middle|left|right"]
    图形对象、applet的位置
    [height="displayPixels"]
    [width="displayPixels"]
    Applet或Bean将要显示的长宽的值,此值为数字,单位为像素   
    [hspace="leftRightPixels"]
    [vspace="topBottomPixels"]
    Applet或Bean显示时在屏幕左右,上下所需留下的空间,单位为像素
    [jreversion="JREVersionNumber | 1.1"]
    Applet或Bean运行所需的Java Runtime Environment(JRE)的版本,缺省是1.1。
    [nspluginurl="URLToPlugin"]
    netscape Navigator用户能够使用的JRE的下载地址,此值为一个标准的URL。
    [iepluginurl="URLtoPlugin"]
    IE用户能够使用的JRE的下载地址,此值为一个标准的URL。
    [<jsp:params>
              [ <jsp:param name="parameterName"
                  value="{parameterValue | <%=expression %>} %>} />]+
             </jsp:params>]
    需要向Applet或Bean传递的参数或参数值。
    [<jsp:fallback> text message for user </jsp:fallback>]
    一段文字,用于Java插件不能启动时显示给用户的,如果插件能够启动而applet或Bean不能,那么浏览器
    会有一个出错信息弹出。

JSP内置对象

对象名             类型                                     作用域
request         javax.servlet.ServletRequest的子类         request
response        javax.servlet.ServletResponse的子类        page
pageContext     javax.servlet.jsp.PageContext              page
session         javax.servlet.http.HttpSession             session
application     javax.servlet.ServletContext               application
out             javax.servlet.jsp.JspWriter                page
config          javax.servlet.ServletConfig                page
page            java.lang.Object                           page
exception        java.lang.Throwable                        page

request 请求对象
    代表的是来自客户端的请求,从页面的form中获取参数(getParameter(属性名))

response 响应对象
    代表的是对客户端的响应,组织发送到客户端的数据,是一个比较底层的对象,采用流的方式。一般基于字符的处理都采用out对象
   
pageContext 页面上下文对象
    代表的是当前页面运行的一些属性,很少使用

session 会话对象
    代表服务器与客户端所建立的会话,基于cookie,客户端必须使用cookie

application 应用程序对象   
    负责提供应用程序在服务器中运行的一些全局信息
   
out 输出对象
    代表了向客户段发送数据的对象,提供基于文本的处理功能

config 配置对象
    提供一些配置信息,提供servlet初始化信息
   
page 页面对象
    代表了正在运行的由JSP文件产生的类对象
   
exception 异常对象
    页面运行时产生的异常,由服务器JSP引擎产生

JSP运行后会在work目录下生成一个运行期.java文件   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值