jsp笔记Word格式文档下载.docx

上传人:b****6 文档编号:21627088 上传时间:2023-01-31 格式:DOCX 页数:14 大小:41.24KB
下载 相关 举报
jsp笔记Word格式文档下载.docx_第1页
第1页 / 共14页
jsp笔记Word格式文档下载.docx_第2页
第2页 / 共14页
jsp笔记Word格式文档下载.docx_第3页
第3页 / 共14页
jsp笔记Word格式文档下载.docx_第4页
第4页 / 共14页
jsp笔记Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

jsp笔记Word格式文档下载.docx

《jsp笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《jsp笔记Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

jsp笔记Word格式文档下载.docx

迭代语句for(),while(),Iterator迭代等。

代码块也可以用来在JSP页面上执行任意的语句,但开发者尽量减少JSP页面中的代码的数量,以增强JSP的可读性及提高代码的复用程度。

减少代码块的主要方法包括:

使用JavaBean及使用标签。

JSP指令元素(DirectivesElements)

指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。

指令只在翻译阶段起作用,会影响到servlet代码的生成。

由于发生在翻译阶段并非运行阶段,所有指令中不能引用任何的动态语法内容。

JSP中的指令包括:

页面指令、包含指令和标签库指令。

page页面指令

功能:

设定整个JSP网页的属性和相关功能。

语法:

%@pageattribute1="

value1"

attribute2="

value2"

%>

page指令元素的属性

%@page

[language="

java"

]

[extends="

package.class"

[import="

{package.class|package.*},..."

[session="

true|false"

[buffer="

none|8kb|sizekb"

[autoFlush="

[isThreadSafe="

[info="

text"

[errorPage="

relativeURL"

[contentType="

mimeType[;

charset=characterSet]"

|"

text/html;

charset=ISO-8859-1"

[isErrorPage="

%>

language="

language"

指定JSPContainer要用什么语言来编译JSP网页。

目前只可以使用Java语言,不过不排除增加其它语言。

默认值为Java。

extends="

className"

定义此JSP页面产生的Servlet是继承自哪个父类。

必须为实现HttpJspPage接口的类。

JSP规范对不完全理解其隐意的情况下使用此属性提出警告。

import="

importList"

定义此JSP页面可以使用哪些JavaAPI。

用逗号分隔列出一个或多个权限类名。

此列表用于在生成的javaservlet中创建相应的导入语句。

以下包是自动包含的,不必被指出:

java.lang.*;

java.servlet.*;

java.servlet.jsp.*;

java.servlet.htt.*

session="

true|false"

指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。

buffer="

none|sizeinkb"

指定输出流缓存的大小。

缺省为8kb。

authflush="

true|false:

决定输出流的缓冲区是否要自动清除。

当值为true时缓存满时将被自动刷新,当值为false时,缓冲区满会抛出溢出异常。

缺省值为true。

isThreadSafe="

true"

此JSP页面能处理来自多个线程的同步请求,此值为true,否则为false,生成的servlet表明它实现了SingleThreadMode接口。

SingleThreadMode已经声明不赞成使用(deprecate)

info="

表示此JSP页面的相关信息,由getServletInfo()方法返回的。

isErrorPage="

如果此页面被用作处理异常错误的页面,则为true。

在这种情况下,页面可被指定为另一页面page指令元素中errorPage属性的取值。

指定此属性为true将使exception隐含变量对此页面可用。

缺省值为false。

errorPage="

error_url"

表示如果发生异常错误,网页会被重新指向一个URL页面。

错误页面必须在其page指令元素中指定isErrorPage="

contentType="

ctinfo"

表示将在生成servlet中使用的MIME类型和可选字符解码。

pageEncoding="

表示JSP页面的编码方式。

isELIgnored="

表示是否在此JSP网页中执行或忽略EL表达式。

如果为true时JSPContainer将忽略EL表达式。

include指令

在JSP编译时插入包含一个文件。

包含的过程是静态的,包含的文件可以是JSP、HTML、文本或是Java程序。

%@includefile="

relativeURLspec"

标签元素:

jsp:

includepage="

/>

提示:

include指令元素和行为元素主要有两个方面的不同点。

1.include指令是静态包含,执行时间是在编译阶段执行,引入的内容为静态文要,在编译成servlet时就和包含者融合到一起。

所以file不能是一个变量,也不能在file后接任何参数。

2.include行为是动态包含,执行时间是在请求阶段执行,引入的内容在执行页面时被请求时动态生成再包含到页面中。

taglib指令

使用标签库定义新的自定义标签,在JSP页面中启用定制行为。

%@tagliburi="

tabLibraryURI"

prefix"

tagPrefix"

uri="

tagLibraryURI"

标签库描述器的URI,主要是说是tagLibrary的存放位置。

prefix="

用于标识在页面后面部分使用定制标签的唯一前缀。

JSP动作

JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。

利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

常用动作:

include:

在页面被请求的时候引入一个文件。

useBean:

寻找或者实例化一个JavaBean。

setProperty:

设置JavaBean的属性。

getProperty:

输出某个JavaBean的属性。

forward:

把请求转到一个新的页面。

在web开发中页面(servlet、jsp、html--只能被调用)之间进行调用的方式有哪些,这些方式

1、include(包含)

<

page2.jsp"

/>

/time"

/time.html"

Servlet:

getServletContext().getRequestDispatcher("

url"

).include(request,reponse);

用来实现页面的复用,要求被包含的程序要有输出结果。

及包含的是程序的输出内容。

2、forward(转发)

forwardpage="

/time.jsp"

Servlet:

).forward(request,reponse);

3、redirect(重定向)

response.setRedirect(应用的路径+资源的路径);

比较:

include和forward:

include:

把另外一个页面的输出结果包含到当前的页面中。

在包含之前主页面可以可以输出内容,在包含之后主页面也可以输出内容。

forward:

将控制转向另外的一个页面。

在调用forward时系统先将所有的输出内容清空,因为forward设计的目的是为了实现在web编程中将不同的功能分散到不同的页面中。

forward和redriect:

forward是在服务器内做控制转移(客户端是透明的)。

jsp注释:

JSP语法

在客户端显示一个注释

!

--comment[<

]-->

例:

--Thisfiledisplaystheuserloginscreen-->

在客户端的HTML源代码中产生和上面一样的数据。

--Thispagewasloadedon<

%=newjava.util.Date()%>

-->

在客户端的HTML源代码中显示为:

--ThispagewasloadedonAugust3,2009-->

描述:

这种注释和HTML中很像,也就是它可以在"

查看源代码"

中看到。

唯一有些不同的就是,你可以在这个注释中用表达式(第2个例子所示)。

这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。

隐藏注释

写在JSP程序中,但不是发给客户。

JSP语法:

%--comment--%>

%--Thiscommentwillnotbevisibleinthepagesource--%>

用隐藏注释标记的字符会在JSP编译时被忽略掉。

这个注释在你希望隐藏或注释你的JSP程序时是很有用的

JSP编译器不是会对<

%--and--%>

之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到。

在<

%----%>

之间,你可以任意写注释语句.

JavaBean:

JavaBean是一种可重复使用且跨平台的软件组件。

JavaBean可分为两种:

一种是有用户界面(UI)的JavaBean;

一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。

JSP通常访问的是后一种JavaBean。

JSP与JavaBean搭配使用的好处:

1、使得HTML与Java程序分离,这样便于维护代码。

如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护。

2、可以降低开发JSP网页人员对Java编程能力的要求。

3、JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件可重用性的特点,提高开发网站的效率。

任何类,只要满足如下的一个或多个要求都可以被视为JavaBean,并且可以使用java.Beans包下的api对其进行通用的编程。

1、缺省构造器(必须的)

2、通过set/get/is来定义的属性(可选的)

3、可以有任意其他的业务方法

4、最好实现Serializable接口

一个标准的JavaBean有以下几个特征:

1、JavaBean是一个公共的类

2、JavaBean有一个无参的构造器

3、JavaBean通过getXXX/setXXX/isXXX方法取得/设置属性

useBean>

usebean

id="

beaninstancename"

scope="

page|request|session|application"

[

class="

|

type="

type="

beanname="

"

]

>

其他元素

/jsp:

usebean>

这个动作使您能将一个javaBean装入一个jsp页面。

这是一个非常有用的能力,因为它使您可以使用可重用的java类而不需牺牲性能。

最简单的语法用于指定一个bean:

usebeanid="

name"

class="

此时在page范围中如果有这样的一个实例存在,那么此时id就会引用它,否则会创建一个这样的实例,并将它的一个引用给id。

那么,您已有了bean,您可以通过jsp:

setProperty来修改它,或者通过使用之前用id指定的名字来使用scriptlet或明确的调用方法。

useBean...>

body

要指出的是:

body部分应该仅在bean第一次实例化时被执行,而不是在每次被找到和使用时。

beans能够被共享,因此并不是所有的jsp:

usebean陈述都产生一个新的bean的实例。

其次,除了id或class以外,还有三种属性可以使用:

scope,type,和beanName。

这些属性总结如下:

id:

给一个变量命名,此变量将指向bean。

如果发现存在一个具有相同的id和scope的bean则使用而不新建一个。

class:

指出bean的完整的包名。

scope:

指明bean在之上可以被使用的前后关系。

有四个可能的值:

page,request,session,和application。

缺省为page,表明bean仅在当前页可用(保存在当前的pageContext中)。

request的一个值表明bean仅用于当前客户端的请求(保存在ServletRequest对象中)。

session的值指出在当前的HttpSession的生命周期内,对象对所有的页面可用。

最后,application的值指出对象对所有共享ServletsContext的页面可以使用。

使用jsp:

usebean仅在没有相同的id和scope的bean时创建一个新的bean,如果已有则使用,并忽略以jsp:

usebean标志开始和结尾的代码。

type:

指明将指向对象的变量的类型。

这必须与类名相匹配或是一个超类或者是一个实现类的接口。

beanName:

赋予bean一个名字,您应该在beans的实例化方法中提供。

如果提供了type属性和beanName属性,允许省略class属性。

setProperty....../>

setpropertyname="

[property="

*"

property="

propertyname"

param="

parametername"

value="

name:

这是一个必选属性。

它指出哪一个bean的属性将被设置。

usebean必须出现在jsp:

setproperty之前。

property:

表明您将设置哪一个属性。

然而,有一个特殊的情况:

如果以"

为值意味着所有的名称与bean的属性匹配的request参数都将被传递到相应的属性设置方法。

value:

这是一个可选属性。

它指定被设置的属性的值。

字符串的值通过相应的对象或包的标准的valueOf方法将自动的转换为numbers,boolean,byte,char,和character。

例如boolean或boolean属性的值“true”将通过boolean.valueOf方法转化,而一个int或integer属性的值“42”将通过integer.valueOf转化。

您不能同时使用value和param属性,但两个都不用是允许的。

param:

它指明了bean的属性应该继承的request的参数。

如果当前的request没有这样的一个参数,就什么也不做:

系统并不将null传给设置属性的方法。

因此,您可以使用bean的缺省值。

例如,下面的代码片断表示:

如果存在numItems请求参数的话,把numberOfItems属性的值设置为请求参数numItems的值;

否则什么也不做。

  <

setPropertyname="

orderBean"

  property="

numberOfItems"

  param="

numItems"

如果同时省略value和param,其效果相当于提供一个param且其值等于property的值。

进一步利用这种借助请求参数和属性名字相同进行自动赋值的思想,你还可以在property(Bean属性的名字)中指定“*”,然后省略value和param。

此时,服务器会查看所有的Bean属性和请求参数,如果两者名字相同则自动赋值

修改和检索bean的属性

1、把jsp:

setProperty放入jsp:

useBean元素的内部

useBeanid="

myName"

...>

  ...

someProperty"

.../>

setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:

setProperty。

2、使用jsp:

setProperty

...

JSP内置对象

不用定义可以使用的脚本变量。

只能在代码块和表达式中可以直接使用的对象。

内置对象是放在service方法中的。

1、pageContext:

JSP引入一个名为PageContext的类,通过它可以访问页面的许多属性。

PageContext类拥有getRequest、getResponse、getOut、getSession等方法。

pageContext变量存储与当前页面相关联的PageContext对象的值。

2、request:

这个对象是与请求HttpServletRequest相关联的。

可以通过访问请求的参数、请求的类型(例如GET或POST)和HTTP报头(比如:

cookie)。

3、response:

response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它,它是HttpServletResponse类的实例。

由于输出流一般都会缓冲,在JSP页面的主体内设置HTTP状态码和响应报头一般都是合法的。

4、session:

session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

它是HttpSession类的实例。

JSP中会话是自动创建的,因此即使不存在输入会话的引用,也存在这个变量。

如果使用page指令的session属性禁用自动会话跟踪,则不存在这个变量,而且这种情况下对session变量的引用在JSP页面转换成sevlet时会引起错误。

5、application:

application对象实现了用户间数据的共享,可存放全局变

量。

它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;

这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;

在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。

服务器的启动和关闭决定了application对象的生命。

它是ServletContext类的实例。

//WEB-INF

Stringpath="

/WEB-INF/pro.properties"

;

InputStreaminputsteam=application.getResourceAsStream(path);

Propertiesprop=newProperties();

prop.load(inputsteam);

prop.getProperties("

id"

);

inputsteam.close();

//类路径

path="

/WEB-INF/classes/pro.properties"

inputsteam=application.getResourceAsStream(path);

Propertiesprop=newProperties();

//类路径下的一种写法

com/test/pro.properties"

inputsteam=Test.class.getClassLoader().getResourceAsStream(path);

6、exception:

exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。

如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。

他实际上是java.lang.Throwable的对象。

7、out:

out对象是JspWriter类的实例,是向客户端输出内容常用的对象。

8、config:

config对象是在一个Servlet初始化时,JSP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1