jsp语法

JSP相关内容

JSP的编译指令

告诉jsp的引擎如何处理js页面。Jsp编译指令如下

<%@ 指令名 属性=“属性值”%>

l Include指令

说明标签:<%@ include file=” ”%>

动作标签:<jsp:include page=” ” flush=true/>

<jsp:include page=<%=pageSelectedAtRuntime%>flush=true>

<jsp:param name=fitstParamervalue=firstValue>

<jsp:param name=lastParamervalue=lastValue>

</jsp:include>

:执行时间上: 
<%@ include file=”relativeURI”%> 是在翻译阶段执行 
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行
:引入内容的不同
<%@ include file=”relativeURI”%> 
引入静态文本(html,jsp),JSP页面被转化成servlet之前和它融和到一起
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本
另外在两种用法中filepage属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.

JSP的指令标识

用于提供整个网页的相关信息和设置页面的相关属性。

指令元素包括三种分别是pageincludetaglib

指令通用格式如下:

<%@ 指令类型 属性1=“属性值” 属性2=“属性值”...%>

1. page指令

页面指令,用于定义页面的全局属性及其值

<%@ page contentType=”text/html;charset=gb2312” import=”java.util.*,java.lang.*”%>

属性表:

属性

说明

language

Jsp的使用的脚本语言,默认的是Java

import

定义jsp可以使用哪些API,如果是多个就用逗号隔开;自动包含以下几个包:Java.lang.*,java.servlet.*,java.servlet.jsp.*,java.servlet.http.*

PageEncoding

指定jsp页面的指定编码方式。默认情况下为ISO-8859-1,如需在页面上显示中文,必须修改为gb2312gbk

contentType

设置MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。类型和字符集;<%@ page contentType=”MIME,charset=字符集”%>默认情况下为ISO-8859-1,如需在页面上显示中文,必须修改为gb2312gbk

session

设置用户能否需要httpsession,其取值有truefalse

IsELIgnored

其取值有truefalsetrue代表忽略jsp2.0表达式语言(EL),false为正常求值默认为false

buffer

指定out变量使用的缓冲区的大小,其取值有nonenkb 默认为8KB

Info

定义可以在servlet中通过getServletInfo方法获得的字符串

errorPage

指定jsp页面,让此页面来处理当前页中抛出但未捕获的任何异常

isErrorPage

表示当前页是否可以作用于其他jsp的错误页面

isThreadPage

默认为true,表示jsp生成的servlet是允许并行访问的,false同一时间不允许多个请求访问servlet实例

extends

指定jsp你页面生成的的servlet超类

autoFlush

其取值有truefalsetrue代表控制缓冲区满之后自动清空输出缓冲区,false是缓冲区溢出后抛出异常

2. include指令

<%@ include file=”文件的绝对路径或者相对路径”%>

在指令出现的位置静态插入一文件。

3. taglib 指令

<%@taglib uri=”tagURI” prefix=”tagPrefix”%>

uri属性:该属性指定了标签描述库,该描述符是一个对标签描述文件(*.tld)的映射。文件定义了该标签库中的各个标签名称,并未为每个标签指定一个标签处理类。

Prefix属性:指定标签库的前缀。前缀不能命名为JavajspsunservletJavax,jspx

动作标识

Jsp提供了一系列使用XML语法写成的动作标识,这些标识可以用来实现特殊的功能,如页面重定向、包含页面、使用javabeanappletx小程序等,可以使用<jsp:param>传递参数

<动作标识名称 属性1=”属性值”.../>

1. <jsp:include>

动作指令包含静态和动态的页面。Include包含是把页面当做静态对象,在转换的时候包含进来,而<jsp:inclue>把页面当做动态对象在页面运行时进行包含。

<jsp:include page=”被包含文件的路径” flush=”true/false”>

<jsp:param name=”参数名称” value=”参数值”/>

</jsp:include>

page属性:”/”则按照当前的应用路径查找文件;文件名或者是路径名称开头按照当前的路径来查找名称。

Flush属性:当输出缓冲区满了时是否清空缓冲区。

Include指令和<jsp:include>动作标识之间的差异

  1. 属性

<% String path=login.jsp%>

<%@ include file=<%=path%>%>

该方法将抛出文件找不到的异常

<jsp:include page=<%=path%>></jsp:include>

不会抛出异常

2. 处理方法

Include指令最终编译后得到的文件只有一个。

当做中包含的文件是一个独立编译的文件。

  1. 包含方式.

Include指令是静态包含(被包含的改变则主文件变化需重新编译主文件)

动作指令是动态包含(被包含文件在动作被执行时才会被重新编译否则不编译)

  1. 包含文件的约定

Include指令对被包含文件的有约定。约定两个page指令的coontentType属性值需要相同,否则抛出异常。动作标识就无须遵循这样的规定。

2. <jsp:forward>

请求转发到另一个jspHTML或者先关的资源文件中。

<jsp:forward page=”文件路径|标识路径的表达式”>

<jsp:param name=” 参数名” value=”参数值”/>

<jsp:param name=” 参数名” value=”参数值”/>

</jsp:forward>

3. <jsp:useBean>

jsp页面上创建一个bean实例,并且可以通过属性的设置可以将实例存储到jsp指定范围内。如果指定的范围已将存在指定的BEAN实例那么将使用该实例,而不会重新创建。

<jsp:useBean

Id=”变量名” scope=”page|request|session|application”

{

Class=”package.className”|type=”数据类型”|class=”package.className” type=”数据类型”|beanName=”package.className” type=”数据类型”}

/>

<jsp: setPropeerty name=”变量名” property=’’ *’’>

也可以在表示体内嵌入子标识或其他内容

<jsp:useBaen id=”变量名” scope=”page|request|session|application”...>

<jsp:setProperty name=”变量名” property=”*”>

</jsp:useBean>

属性

说明

ID

定义一个变量名,程序中使用该变量名对所创建的Bean实例进行引用

Type

指定ID属性所定义变量的类型

Scope

定位Bean实例的范围,缺省值为page

Class

指定一个完整的类名,与beanName的属性不能同时存在,若没有设置type属性必须设置class属性

BeanName

指定一个完整的类名,与class属性不能同时存在,设置该属性必须设置type属性

属性的详细介绍

  1. ID属性

指定变量,在所定义的范围内或Scriptlet中将使用该变量来对创建的Bean实例进行引用。该变量必须符合Java中的变量的命名规则。

  1. Type属性

指定ID属性所定义变量的类型。Type属性可以指定要创建实例的类的本身、类的父类或者是一个接口。<jsp:useBean id=”us” type=”com.Bean.UserInfo” scope=”session”/>

  1. Scope属性

Page:指定了创建Bean实例只能够在当前的jsp文件中使用,包括 在通过include指令静态包含的页面中有效。

Requestbean实例可以在请求范围内的进行存取。在请求被转发 至被指定目标页面中可以通过request对象的getAttribute(“id属性 值”)方法获取创建的bean实例。一个请求的生命周期是从客户端 向服务器发出请求,到服务器响应请求并将结果返回给用户之后 结束,请求结束bean实例也失效了。

Session在一个会话内有效

Application服务器启动开始到关闭期间有效

  1. Class=package.className

package类名包的名字className类的class文件名称。该属性指定的类不能是抽象的,它必须有公共的没有参数的构造方法。没有type属性必须设置class属性<jsp:useBean id=”us” type=”com.Bean.UserInfo” scope=”session”/>程序首先会在session范围内查找”us” UserInfo类的实例,如果不存在,那么会通过new操作符来实现UserInfo来实例化,并以“us”存储到session的范围内

  1. Class=package.classNametype=数据类型

<jsp:useBean id=”us” class=”com.Bean.UserInfo” type=”com.Bean.UserBase” scope=”session”/>

假设UserBaseUserInfo的父类。该标识执行时,程序首先创建一个以type属性的值为类型,以ID属性值为名称变量us,并赋值为null;然后在session范围内查找这个us的实例,如果存在将其转换为type属性指定的UserBase类型并赋值给变量us;如果不存在,那么会通过new操作符来实现UserInfo来实例化,并以“us”存储到session的范围内

  1. BeanName=package.classNametype=数据类型

假设UserBaseUserInfo的父类。该标识执行时,程序首先创建一个以type属性的值为类型,以ID属性值为名称变量us,并赋值为null;然后在session范围内查找这个us的实例,如果存在将其转换为type属性指定的UserBase类型并赋值给变量us;如果不存在,那么会通过instantiate()方法从UserInfo类中实例化一个类并将其转换为UserBase类型后赋值给ID,最后将ID变量存储在session

 

<jsp:setProperty>

使用Bean给定的setXXX()方法,在bean中设置一个或多个属性。

属性

说明

Name

必须存在的属性,指定一个bean实例

Property

必须存在的属性,可选值为“*”或指定bean属性。*号表示bean中的name相匹配的所有请求参量名的属性都会传给适当的设置方法所有的

Param

用于指定请求中的参数,这个可选属性规定了属性的具体值,不能同时使用paramvalue两个属性,但是允许两个同时不用。

Value

指定一个值

设置属性值的方法:

(1)通过用户输入的所有值来匹配bean中的属性

(2)通过用户输入的指定的值来匹配

(3)在运行时使用一个表达式来匹配

<jsp:setProperty name=”beanName”

{

Property=”*”|property=”propertyName”|property=”propertyName ”param=”parameterName”|property=”propertyName ”value=”propertyValue}

/>

  1. name 属性

其属性被设置的bean实例的名称。<jsp:useBean>必须出现在<jsp:setProperty>之前,否则将会抛出一个异常。

  1. Property=”*”

bean中,属性的名字和类型必须与request对象中的参数名称、类型一致。该属性用来存储jsp输入的所有值,用于匹配bean中的属性。

在客户端传到服务器端的参数值一般都是字符创类型,为了这些字符创能够在bean中匹配就必须转换成其他的类型。

其他类型

转换方法

boolean

Java.lang.Boolean.valueOf(String).booleanValue()

Boolean

Java.lang.Boolean.valueOf(String)

byte

Java.lang.Byte.valueOf(String).byteValue()

Byte

Java.lang.Byte.valueOf(String)

double

Java.lang.Double.valueOf(String).doubeValue()

Double

Java.lang.Double.valueOf(String)

Int

Java.lang.Interger.valueOf(String).intValue()

Interger

Java.lang.Interger.valueOf(String)

float

Java.lang.Float.valueOf(String).floatValue()

Float

Java.lang.Float.valueOf(String)

long

Java.lang.Long.valueOf(String).longValue()

Long

Java.lang.Long.valueOf(String)

 

  1. property=”propertyName”

使用request中的一个参数值来指定bean中的一个属性值

  1. property=”propertyName ”param=”parameterName”

Param指定request中的参数名

  1. property=”propertyName ”value=”propertyValue

Value指定的值来设定bean的属性

<jsp:getProperty>

获取属性的值并将其转换为一个字符串,然后将其插入到输出的页面中。该标签有一以下限制:

1不能使用该标签来检索一个已经被索引了的属性

2能够和JavaBean组件一起使用但是不能喝EJB不能一起使用。

语法:<jsp:gerProperty name=”BeanName” proerty=”prpertyName”/>

例子:

<jsp:useBean id=”user” scope=”session” class=”company.user”/>

<jsp:gerProperty name=”user” proerty=”prpertyName”/>

<jsp:fallback>

该标识是<jsp:plugin>的子标识,当使用<jsp:plugin>加载Java Applet小程序或者JavaBean下载失败是可以通过该标签向用户输出提示信息

例子:

<jspplugin type=appletcode=”com.source.MyApplet.class” cadeBase=”.”>

<jsp:fallback>加载Java Applet小程序失败</jsp:fallback>

...

</jsp:plungin>

</jsp:plungin>

页面插入Java applet小程序或JavaBean,他们能够在客户端运行。该标识会根据客户端浏览器的版本转换成<object><embed>html元素

标识属性表如下:

Type

插件对象类型beanapplet

Code

Java类文件名称

Codebase

默认值为当前访问jsp页面的路径

Name

beanapplet的名称

Archive

指定预先加载的存档文件路径,多个路径可用逗号分隔

Align

插件对象在页面中的对齐方式

Heightwidth

页面显示的高度和宽度单位像素

Hspacevspace

在屏幕或单元格中所流出的空间

Jreversion

默认值为1.1

Nspluginurl\iepluginurl

Netscape navogator Internet explorer用户能够使用的JRE下载地址

<jsp:params>

传递参数

<jsp:fallback>

Java类文件加载失败显示给用户的提示信息

 

 

 

 

转载于:https://www.cnblogs.com/wengbm/p/8053345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值