jsp笔记Word格式文档下载.docx
- 文档编号:21627088
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:41.24KB
jsp笔记Word格式文档下载.docx
《jsp笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《jsp笔记Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
迭代语句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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 笔记