信产部考试题第一套题库Word文档下载推荐.docx

上传人:b****6 文档编号:20295864 上传时间:2023-01-21 格式:DOCX 页数:15 大小:333.76KB
下载 相关 举报
信产部考试题第一套题库Word文档下载推荐.docx_第1页
第1页 / 共15页
信产部考试题第一套题库Word文档下载推荐.docx_第2页
第2页 / 共15页
信产部考试题第一套题库Word文档下载推荐.docx_第3页
第3页 / 共15页
信产部考试题第一套题库Word文档下载推荐.docx_第4页
第4页 / 共15页
信产部考试题第一套题库Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

信产部考试题第一套题库Word文档下载推荐.docx

《信产部考试题第一套题库Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信产部考试题第一套题库Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

信产部考试题第一套题库Word文档下载推荐.docx

request

javax.servlet.http.HttpServletRequest

response

javax.servlet.http.HttpServletResponse

pageContext

javax.servlet.jsp.PageContext

session

javax.servlet.http.HttpSession

application

javax.servlet.ServletContext

out

javax.servlet.jsp.JspWriter

config

javax.servlet.ServletConfig

page

java.lang.Object

exception

java.lang.Throwable

其中request,response,session,application和config对象所属的类及其用法在前面的Servlet章节中我们已经介绍过了,下面主要介绍一下其他的对象。

12.4.1pageContext

pageContext对象提供了访问其他隐含对象的方法,如下:

?

publicabstractjavax.servlet.ServletRequestgetRequest()

publicabstractjavax.servlet.ServletResponsegetResponse()

publicabstractjavax.servlet.http.HttpSessiongetSession()

publicabstractjavax.servlet.ServletContextgetServletContext()

publicabstractJspWritergetOut()

publicabstractjavax.servlet.ServletConfiggetServletConfig()

publicabstractjava.lang.ObjectgetPage()

publicabstractjava.lang.ExceptiongetException()

在pageContext对象中,可以使用下面两个方法来保存和获取属性。

publicabstractvoidsetAttribute(java.lang.Stringname,java.lang.Objectvalue)

publicabstractjava.lang.ObjectgetAttribute(java.lang.Stringname)

在pageContext对象中保存的属性,只能在当前页面中去获取,也就是说,pageContext对象具有页面范围(详见12.5节)。

利用pageContext对象,还可以设置和得到在其他范围对象中保存的属性。

pageContext对象提供了另外两个setAttribute()和getAttribute()方法,如下:

publicabstractvoidsetAttribute(java.lang.Stringname,java.lang.Objectvalue,intscope)

publicabstractjava.lang.ObjectgetAttribute(java.lang.Stringname,intscope)

其中的scope参数用于指定要获取哪一个范围对象的属性,有四个可能的取值,其中PageContext.PAGE_SCOPE表示页面范围,PageContext.REQUEST_SCOPE表示请求范围,PageContext.SESSION_SCOPE表示会话范围,PageContext.APPLICATION_SCOPE表示Web应用程序范围。

在pageContext对象中,可以使用下面两个方法来删除范围中的属性。

publicabstractvoidremoveAttribute(java.lang.Stringname,intscope)

删除指定范围内名字为name的属性。

publicabstractvoidremoveAttribute(java.lang.Stringname)

删除所有范围内名字为name的属性。

pageContext对象还提供了搜索属性的方法:

publicabstractjava.lang.ObjectfindAttribute(java.lang.Stringname)

该方法会按照page,request,session和application范围的顺序搜索指定名字的属性,如果找到,则返回属性的值,如果没有找到,则返回null。

关于范围,请参见12.5节。

pageContext对象也提供了请求转发的两个方法forward()和include(),其内部实现是调用RequestDispatcher对象的forward()和include()方法。

从pageContext对象提供的方法可以看出,pageContext对象实际上是为我们提供了访问其他隐含对象的统一入口,在多数情况下,直接利用pageContext对象就可以完成想要实现的功能。

12.4.2out

out对象的类型是javax.servlet.jsp.JspWriter,该类从java.io.Writer类派生,以字符流的形式输出数据。

out对象实际上是PrintWriter对象的带缓冲的版本(在out对象内部使用PrintWriter对象来输出数据),可以通过page指令的buffer属性来调整缓冲区的大小,默认的缓冲区是8kb。

在out对象中,提供了几个和缓冲区操作相关的方法,如下所示。

publicabstractvoidclear()throwsjava.io.IOException

清除缓冲区中的内容。

如果缓冲区已经被刷新,clear()方法将抛出IOException异常。

publicabstractvoidclearBuffer()throwsjava.io.IOException

清除缓冲区中的当前内容。

这个方法和clear()方法的区别是,如果缓冲区已经被刷新,这个方法不会抛出IOException异常。

publicabstractvoidclose()throwsjava.io.IOException

刷新缓冲区,关闭输出流。

注意,我们在编写JSP页面时,不需要显式地去调用这个方法,因为在JSP容器所生成的代码中会自动包含对close()方法的调用。

publicabstractvoidflush()throwsjava.io.IOException

刷新缓冲区。

publicintgetBufferSize()

获得out对象使用的缓冲区的大小。

publicabstractintgetRemaining()

获得缓冲区中未使用的字节数。

publicbooleanisAutoFlush()

判断out对象是否是自动刷新。

out对象针对不同的数据类型,提供了多个重载的print()和println()方法,用于输出数据。

要注意的是,虽然println()方法会输出一个换行,但是客户端的浏览器在显示页面时会忽略输出的换行。

12.4.3page

page对象是当前页面转换后的Servlet类的实例。

从转换后的Servlet类的代码中,可以看到这种关系:

Objectpage=this;

在JSP页面中,很少使用page对象。

12.4.4exception

exception对象表示了JSP页面运行时产生的异常,该对象只有在错误页面(在page指令中指定属性isErrorPage=true的页面)中才可以使用。

在JSP页面中,我们可以利用page指令的errorPage属性指定一个错误处理页面,当JSP页面运行发生错误时,JSP容器会自动调用指定的错误处理页面。

要注意的是,如果一个JSP页面使用errorPage属性定义了错误页面,那么在web.xml文件中定义的任何错误页面将不会被使用。

下面我们看一个例子:

price.jsp

<

%@pageerrorPage="

excep.jsp"

%>

%

StringstrPrice=request.getParameter("

price"

);

doubleprice=Double.parseDouble(strPrice);

out.println("

Totalprice="

+price*3);

%>

excep.jsp

%@pageisErrorPage="

true"

exception.toString():

"

br>

out.println(exception.toString());

p>

exception.getMessage():

out.println(exception.getMessage());

在price.jsp页面中,通过page指令的errorPage属性指定错误处理页面为excep.jsp。

在excep.jsp页面中,通过page指令的isErrorPage属性指定当前页面是错误处理页面,只有设置了isErrorPage为true,在此页面中才可以使用exception对象。

我们访问price.jsp页面时,输入URL:

http:

//localhost:

8080/ch12/price.jsp?

price=5.0

将看到输出:

Totalprice=15.0

如果输入:

price=abc

将看到如下的错误信息:

java.lang.NumberFormatException:

Forinputstring:

"

abc"

Forinputstring:

在JSP页面中的对象,包括用户创建的对象(例如,JavaBean对象)和JSP的隐含对象,都有一个范围属性。

范围定义了在什么时间内,在哪一个JSP页面中可以访问这些对象。

例如,session对象在会话期间内,可以在多个页面中被访问。

application对象在整个Web应用程序的生命周期中都可以被访问。

在JSP中,有4种范围,如下所示。

page范围

具有page范围的对象被绑定到javax.servlet.jsp.PageContext对象中。

在这个范围内的对象,只能在创建对象的页面中访问。

可以调用pageContext这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象(pageContext对象还提供了访问其他范围对象的getAttribute方法),pageContext对象本身也属于page范围。

当Servlet类的_jspService()方法执行完毕,属于page范围的对象的引用将被丢弃。

page范围内的对象,在客户端每次请求JSP页面时创建,在页面向客户端发送回响应或请求被转发(forward)到其他的资源后被删除。

request范围

具有request范围的对象被绑定到javax.servlet.ServletRequest对象中,可以调用request这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象。

在调用forward()方法转向的页面或者调用include()方法包含的页面中,都可以访问这个范围内的对象。

要注意的是,因为请求对象对于每一个客户请求都是不同的,所以对于每一个新的请求,都要重新创建和删除这个范围内的对象。

session范围

具有session范围的对象被绑定到javax.servlet.http.HttpSession对象中,可以调用session这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象。

JSP容器为每一次会话,创建一个HttpSession对象,在会话期间,可以访问session范围内的对象。

application范围

具有application范围的对象被绑定到javax.servlet.ServletContext中,可以调用application这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象。

在Web应用程序运行期间,所有的页面都可以访问在这个范围内的对象。

下面我们通过几个简单的例子,来看一下这4种范围对象的应用。

1.测试page范围

test1.jsp

pageContext.setAttribute("

name"

"

zhangsan"

test1.jsp:

out.println(pageContext.getAttribute("

));

pageContext.include("

test2.jsp"

test2.jsp

test2.jsp:

访问test1.jsp,将看到如下的输出:

zhangsan

null

说明保存在pageContext对象中的属性具有page范围,只能在同一个页面中被访问。

2.测试request范围

修改test1.jsp和test2.jsp,如下所示。

request.setAttribute("

out.println(request.getAttribute("

zhangsan

说明保存在request对象中的属性具有request范围,在请求对象存活期间,可以访问这个范围内的对象。

这一句注释起来,先访问test1.jsp,再访问test2.jsp,可以看到如下输出:

这是因为客户端开始了一个新的请求。

3.测试session范围

session.setAttribute("

out.println(session.getAttribute("

先访问test1.jsp,然后在同一个浏览器窗口中访问test2.jsp,可以看到如下输出:

说明保存在session对象中的属性具有session范围,在会话期间,可以访问这个范围内的对象。

如果我们在访问完test1.jsp后,关闭浏览器,重新打开浏览器窗口,访问test2.jsp,将看到如下输出:

这是因为客户端与服务器开始了一次新的会话。

4.测试application范围

application.setAttribute("

out.println(application.getAttribute("

先访问test1.jsp,然后关闭浏览器,再打开浏览器窗口,访问test2.jsp,可以看到如下输出:

说明保存在application对象中的属性具有application范围,在Web应用程序运行期间,都可以访问这个范围内的对象。

 

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

当前位置:首页 > 表格模板 > 表格类模板

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

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