JSP学习资料文档格式.docx
《JSP学习资料文档格式.docx》由会员分享,可在线阅读,更多相关《JSP学习资料文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
![JSP学习资料文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/9b9d5830-78e0-4e82-a399-a59efc56d02a/9b9d5830-78e0-4e82-a399-a59efc56d02a1.gif)
可选Value
默认值
language
指使用的脚本语言
Java
import
用,隔开,表示引入类
java.lang.*
session
http会话中是否包含此页面
true/false
true
buffer
对客户端输出流的缓冲,none表示无,否则以不小于指定的数值缓冲.
none/具体的缓冲值
不小于8kb
autoFlush
true表示缓冲区满时,刷新客户端,false则出现运行异常
info
对jsp页面的信息备注
isErrorPage
表明是否为其他页面的error目标,true时可以使用exception对象.
false
errorPage
有异常时指向的页面
isThreadSafe
是否能多线程的使用,true表示允许一个JSP同时处理多个用户的请求.
contentType
字符编码和MIME类型
text/html;
charset=iso-8859-1
pageEncoding
JSP页面的字符编码
pageEncoding=”ISO-8859-1”
isELIgnored
指定EL(表达式语言)是否被忽略
指令元素---include指令1
%@includefile=”fileURL”%>
包含的文件在编译期间被解析.
如果路径以/开头表示参照应用,否则参照改jsp页面本身.
指令元素---taglib指令1
%@tagliburi=“标签tld路径”prefix=“前缀”%>
JSP2.0新增了JSTL标签库.
JSF
前缀不能使用:
jsp,jspx,java,javax,sun,servlet,sunw.
脚本
脚本元素---声明2
定义变量或者方法(对应与产生的类的属性和方法.)
%!
Stringnow(){
returnnewjava.util.Date().toString();
}
%>
Stringmyname=”AiSee”;
脚本元素---表达式2
%=expression%>
将被转换为字符串(如果是对象,则使用对象的toString()方法).
脚本元素---Scriptlet2
%
//JavaScriptlet
%>
Scriptlet被包含在编译后的Servlet的Service方法中,
多个Scriptlet按照出现的顺序执行,可以合并为一个Scriptlet.
一个Scriptlet可以使用它前面的Scriptlet定义的变量.
动作元素
动作元素在请求处理阶段起作用,使用XML语法写出.
prefix:
tagattribute=value…./>
或者匹对标签
tagattribute=value>
……
/prefix:
注意:
jsp动作元素严格匹配单双标签,所以,当使用单标签的时候,记得斜线收回标签,否则会报错
动作元素---<
jsp:
param>
1
提供”名---值”对,和jsp:
include,jsp:
forward,jsp:
plugin一起使用.
paramname=”paraName”value=”paramValue”/>
paramname="
username"
value="
thinkmore"
/>
注意:
此标签必须嵌套使用,不能单独使用
include>
2
允许在请求时间内在现成的JSP里面包含静态或者动态资源.被包含的对象只有对JspWriter对象有访问权,并且不能设置头或者Cookie.
如果页面是缓冲的,那么缓冲区的刷新要优于包含的刷新,语法:
includepage=”filename”flush=”true”/>
或者(同时传人参数):
includepage=”filename”flush=”true”>
paramname=”paraName”value=”paraValue”/>
......
/jsp:
forward>
停止执行当前的JSP,转发请求到另一个JSP,Servlet或者静态资源文件,要求资源必须位于和本JSP相同的上下文环境中.
forwardpage=”uri”/>
includepage=”uri”>
…
forwardpage="
action2.jsp?
username=thinkmore"
转发和转向都会继续执行当前页的下面的代码,但是此标签不会执行下面的代码,此标签内核机制相当于转发
setProperty>
和useBean一起使用,用于设置Bean的属性.
setPropertyname=”beanName”propertyDetails/>
其中name指jsp:
useBean的id,propertyDetails可选形式:
property=“*“
property=“propertyName“
property=“propertyName“para=”paraName”
property=“propertyName“value=”propertyValue”
property=“*”Bean的属性名,类型和request对象中的参数匹配,由于表单传过来的都是String,则JSP会把这些参数转换为Bean中对应的值.
request中的空值或者request没有相应属性,则在Bean属性中不会设置值.
property=“propertyName“指定设置某个参数的值,指定了Bean的属性名,而且属性名与request参数的名字相同,.Request中有空值,则不会设置任何值.
property=“propertyName“para=”paraName”指定的参数设置指定的属性.
property=“propertyName“value=”propertyValue”指定的值可以是字符串,也可以是表达式(需要类型匹配),用于设置指定属性的值.
此标签要和<
useBean>
标签结合使用,单独不能使用,
getProperty使用方式:
在userbean标签之中使用,获取一个对象的属性值,id属性是对象的名字,property是对象属性的名字
getProperty>
显示bean的属性到网页上.
getPropertyname=”beanName”property=“propertyName“/>
指定获取指定Bean的指定属性,属性不能是被索引了的.
setProperty使用方式:
在userbean标签之中使用,设置一个对象的属性值,id属性是对象的名字,property是对象属性的名字,value是设置对象属性的值
12
useBeanid=”beanName”scope=”scopeWhere”typedesc/>
首先试图定位一个Bean实例,如果这个Bean不存在,将会从一个class或者模板中进行实例化.
其中,scope表示存在的范围:
page,request,session,application
typedesc可选形式:
1.class=”className”:
要求类路径和类名,需要public的空参数构造函数的非抽象类,
2.beanName=”beanName”type=”typeName”:
使用instance方法从一个class中实例化一个Bean,同时指定Bean的类型.Type=”typeName”type是一个类或者接口,如果没有使用class或者beanName指定type,Bean将不能实例化.
useBeanid="
ob"
class="
tm.OneBean"
scope="
request"
>
setPropertyname="
property="
think"
getPropertyname="
注意:
useBean使用方式:
id属性是定义新创建对象的名字,并且设置在scope范围中,以id为key值,class是此类的包名加类名,scope是此对象存放的范围。
上面的例子相当于下面的J2SE代码:
OneBeanonebean=newOneBean();
request.setAttribute("
onebean"
onebean);
onebean.setUsername("
);
onebean.getUsername();
plugin>
用来产生客户端浏览器的特别标签(Object或者Embed),可以使用它来插入Applet或者JavaBean.
object>
用于HTML4.0,<
embed>
用于HTML3.2.
语法:
plugintype=”applet|bean”code=”classFileName”codeBase=”classFileDirectoryName”
[name=”instanceName”]
[archive=”URIToArchive,…“]
[align=”bottom|top|middle|left|right”]
[height=”howMantPixels”]
[width=”howMantPixels”]
[hspace=”howMantPixels”]
[vspace=”howMantPixels”]
[jreversion=”JREVersionNumber|1.1”]
[nspluginurl=”URLToPlugin”]
[iepluginurl=”URLToPlugin”]
[<
params>
paramname=”parameterName”value=”{parameterValue|<
}”/>
]+
]
[<
fallback>
textmessageforuser<
属性/子元素
描述
type
beanapplet之一
code
Java类文件的名称,需要包括扩展名.class
codeBase
Java类的根目录
JSP文件的当前路径
name
Bean或者Applet的实例名称,则同一个JSP中可以调用.
archive
逗号隔开的路径名列表,那些用于codebase指定的目录下的类装载器预装载的存档文件所在的路径名.
align
对齐方式bottom|top|middle|left|right
height,width
显示的高,宽(单位为像素)
hspace,vspace
左右上下留出的空间
jreversion
所需的JavaRuntimeEnvironment(JRE)版本.
1.1
nspluginurl
NetscapeNavigator能使用的JRE下载地址
iepluginurl
InternetExplorer用户能够使用的JRE下载地址:
如http:
//
params
需要传人的参数
fallback
Java插件不能启动是显示给用户的一段文字
的一部分,见上面的描述.
JSP内建的对象
9个对象的简介
在J2EE开发中,最主要使用的是两个开发包:
1.javax.servlet包
2.javax.servlet.http包
这两个包在web开发中占据了大部分的使用
javax.servlet包是J2EE中web开发原型包
javax.servlet.http包是J2EE中web开发针对http协议开发的包
jsp中的9大对象,都来自于javax.servlet.http包
标示为*号的对象是开发中比较常用的对象
*application:
容器(web服务器)对象,它可以得到容器中的内容
config:
项目配置参数(目前被servlet配置所代替)
exception:
jsp中的异常对象
*out:
页面内容输入对象
page:
页面对象,最主要是_jspService方法,此方法由容器自动调用
pageContext:
页面上下文(当前页面的内容)
*request:
请求对象,由用户发起(目前B/S项目开发的重点)
*response:
响应对象,用户请求被服务器接收以后,就会产生此对象
*session:
请求对象和响应对象的连接池
存储数据:
pageContext,request,session,application
(对象范围从小到大)
在页面中,一个request和response会产生一个唯一的session
request-------session-------response
(request由用户产生,不同的用户产生的对象也就不同)
下面是9个对象在J2EEAPI中的的原型:
request:
javax.servlet.http.HttpServletRequest
response:
javax.servlet.http.HttpServletResponse
session:
javax.servlet.http.HttpSession
application:
javax.servlet.ServletContext
out:
javax.servlet.jsp.JspWriter
config:
javax.servlet.ServletConfig
exception:
java.lang.Exception
page:
javax.servlet.jsp.HttpJspPage
pageContext:
javax.servlet.jsp.PageContext
request对象是9大对象中,最重要的开发对象
9个对象只能存在于page对象的_jspService方法中,也就是只能在局部脚本中操作9个对象,所以说9个对象是由web服务器调用page对象的_jspService方法创建的
application
application随着服务器启动而创建,直到关闭服务器.
整个应用的共享对象.主要作用在于取得或更改Servlet的设定.
封装了接口javax.servlet.ServletContext.
1.ObjectgetAttribute(Stringname);
返回由name指定的application属性。
2.EnumerationgetAttributeNames();
返回所有的application属性。
3.ServletContextgetContext(Stringuripath);
取得当前应用的ServletContext对象。
4.StringgetInitParameter(Stringname);
返回由name指定的application属性的初始值。
5.EnumerationgetInitParameters();
返回所有的application属性的初始值的集合。
6.intgetMajorVersion();
返回servlet容器支持的最高ServletAPI的版本号。
7.StringgetMimeType(Stringfile);
返回指定文件的类型,未知类型返回null。
一般为"
text/html"
和"
image/gif"
。
8.intgetMinorVersion();
返回servlet容器支持的最低ServletAPI的副版本号。
9.StringgetRealPath(Stringpath);
返回给定虚拟路径所对应物理路径。
10.RequestDispatchergetNamedDispatcher(Stringname);
为指定名字的Servlet对象返回一个RequestDispatcher对象的实例。
11.RequestDispatchergetRequestDispatcher(Stringpath);
返回一个RequestDispatcher对象的实例。
12.URLgetResource(Stringpath);
返回指定的资源路径对应的一个URL对象实例,参数要以"
/"
开头。
13.InputStreamgetResourceAsStream(Stringpath);
返回一个由path指定位置的资源的InputStream对象实例。
14.SetgetResourcePaths(Stringpath);
返回存储在web-app中所有资源路径的集合。
15.StringgetServerInfo();
取得应用服务器当前servlet编译器的版本信息。
16.ServletgetServlet(Stringname);
在ServletContext中检索指定名称的servlet。
17.EnumerationgetServlets();
返回ServletContext中所有servlet的集合。
18.StringgetServletContextName();
返回本web应用的名称。
19.EnumerationgetServletContextNames();
返回ServletContext中所有servlet的名称集合。
20.voidlog(Exceptionex,Stringmsg);
voidlog(Stringmsg,Throwablet);
voidlog(Stringmsg);
把指定的信息写入servletlog文件。
21.voidremoveAttribute(Stringname);
移除指定名称的application属性。
22.voidsetAttribute(Stringname,Objectvalue);
设定指定的application属性的值。
config
封装了接口javax.servlet.ServletConfig
config对象用来存放当前调用的Servlet初始的数据结构。
方法:
1.StringgetInitParameter(Stringname);
返回名称为name的初始化参数的值。
2.EnumerationgetInitParameterNames();
返回这个JSP所有的初始化参数的名称集合。
3.javax.servlet.ServletContextgetServletContext();
返回执行者的servlet上下文。
4.StringgetServletName();
返回servlet的名称。
exception
这个对象要求在JSP页面中页面指令明确指定errorPage=”true”.
封装了类java.lang.Exception
ThrowablefillInStackTrace();
将当前stack信息记录到exception对象中
StringgetMessage()
StringgetLocalizedMessage()
取得本地语系的错误提示信息
StackTraceElement[]getStackTrace()
ThrowableinitCause(Throwablecause);
将另外一个异常对象嵌套进当前异常对象中
ThrowablegetCause()
取出嵌套在当前异常对象中的异常
voidprintStackTrace()
voidprintStackTrace(printStr