如图所示,这些隐含对象的可分为4类:
1. 与输入/输出有关的对象:request、response、out
2. 与属性作用域有关的对象:session、application、pageContext
3. 与Servlet 相关对象:page、config
4. 与错误处理有关的:exception
一、page 对象
page对象代表JSP对象,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet 类所定义的方法。
二、config 对象
config 对象里存放着一些Servlet 初始的数据结构。
config 对象实现于javax.servlet.ServletConfig 接口,它共有下列四种方法:
public String getInitParameter(name)
public java.util.Enumeration getInitParameterNames( )
public ServletContext getServletContext( )
public Sring getServletName( )
三、request 对象
request 对象包含所有请求的信息,如:请求的来源、标头、cookies和请求相关的参数值等等。
request 对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类:
1.储存和取得属性方法;
void setAttribute(String name, Object value)设定name属性的值为value Enumeration getAttributeNamesInScope(int scope)取得所有scope 范围的属性Object getAttribute(String name)取得name 属性的值
void removeAttribute(String name)移除name 属性的值
2.取得请求参数的方法
String getParameter(String name) 取得name 的参数值Enumeration getParameterNames( ) 取得所有的参数名称String[] getParameterValues(String name) 取得所有name 的参数值
Map getParameterMap( )取得一个要求参数的Map
3.能够取得请求HTTP 标头的方法
String getHeader(String name)取得name 的标头
Enumeration getHeaderNames()取得所有的标头名称
Enumeration getHeaders(String name)取得所有name 的标头
int getIntHeader(String name)取得整数类型name 的标头
long getDateHeader(String name) 取得日期类型name 的标头
Cookie [] getCookies( ) 取得与请求有关的cookies
4.其他的方法
String getContextPath( )取得Context 路径(即站台名称)
String getMethod( )取得HTTP 的方法(GET、POST)
String getProtocol( )取得使用的协议HTTP/1.1、HTTP/1.0 )
String getQueryString( )取得请求的参数字符串,不过,HTTP的方法必须为GET String getRequestedSessionId( ) 取得用户端的Session ID
String getRequestURI( )取得请求的URL,但是不包括请求的参数字符串
String getRemoteAddr( )取得用户的IP 地址
String getRemoteHost( )取得用户的主机名称
int getRemotePort( )取得用户的主机端口
String getRemoteUser( ) 取得用户的名称
void etCharacterEncoding(String encoding)设定编码格式,用来解决窗体传递中文的问题
四、response 对象
response 对象主要将JSP对象处理数据后的结果传回到客户端。
response 对象是实现javax.servlet.http.HttpServletResponse 接口。response对象所提供的方法。
1.设定表头的方法
void addCookie(Cookie cookie)新增cookie
void addDateHeader(String name, long date)新增long类型的值到name标头void addHeader(String name, String value)新增String类型的值到name标头void addIntHeader(String name, int value)新增int类型的值到name标头
void setDateHeader(String name, long date)指定long类型的值到name标头void setHeader(String name, String value)指定String类型的值到name标头void setIntHeader(String name, int value)指定int类型的值到name标头
2.设定响应状态码的方法
void sendError(int sc)传送状态码(status code)
void sendError(int sc, String msg)传送状态码和错误信息
void setStatus(int sc)设定状态码
3.用来URL 重写(rewriting)的方法
String encodeRedirectURL(String url)对使用sendRedirect( )方法的URL予以编码五、out 对象
out 对象能把结果输出到网页上。
out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。
void clear( )清除输出缓冲区的内容
void clearBuffer( )清除输出缓冲区的内容
void close( )关闭输出流,清除所有的内容
int getBufferSize( )取得目前缓冲区的大小(KB)
int getRemaining( )取得目前使用后还剩下的缓冲区大小(KB)
boolean isAutoFlush( )回传true表示缓冲区满时会自动清除;false表示不会自动清除并且产生异常处理
六、session 对象
session对象表示目前个别用户的会话(session)状况。
session对象实现javax.servlet.http.HttpSession接口,HttpSession接口所提供的方法
long getCreationTime()取得session产生的时间,单位是毫秒
String getId()取得session 的ID
long getLastAccessedTime()取得用户最后通过这个session送出请求的时间
long getMaxInactiveInterval()取得最大session不活动的时间,若超过这时间,session 将会失效
void invalidate()取消session 对象,并将对象存放的内容完全抛弃
boolean isNew()判断session 是否为"新"的
void setMaxInactiveInterval(int interval)设定最大session不活动的时间,若超过这时间,session 将会失效
七、application对象
application对象最常被使用在存取环境的信息。
因为环境的信息通常都储存在ServletContext中,所以常利用application对象来存取ServletContext中的信息。
application 对象实现javax.servlet.ServletContext 接口,ServletContext接口容器
所提供的方法
int getMajorVersion( )取得Container主要的Servlet API版本
int getMinorVersion( )取得Container次要的Servlet API 版本
String getServerInfo( )取得Container的名称和版本
String getMimeType(String file)取得指定文件的MIME 类型
ServletContext getContext(String uripath)取得指定Local URL的Application context
String getRealPath(String path)取得本地端path的绝对路径
void log(String message)将信息写入log文件中
void log(String message, Throwable throwable)将stack trace 所产生的异常信息写入log文件中
八、pageContext对象
pageContext对象能够存取其他隐含对象。
1.pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。Object getAttribute(String name, int scope)
Enumeration getAttributeNamesInScope(int scope)
void removeAttribute(String name, int scope)
void setAttribute(String name, Object value, int scope)
范围参数有四个,分别代表四种范围:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
2.PageContext对象取得其他隐含对象的方法
Exception getException( )回传目前网页的异常,不过此网页要为error page,JspWriter getOut( )回传目前网页的输出流,例如:out
Object getPage( )回传目前网页的Servlet 实体(instance),例如:page
ServletRequest getRequest( )回传目前网页的请求,例如:request ServletResponse getResponse( )回传目前网页的响应,例如:response ServletConfig getServletConfig( )回传目前此网页的ServletConfig 对象,例如:config
ServletContext getServletContext( ) 回传目前此网页的执行环境(context),例如:application
HttpSession getSession( )回传和目前网页有联系的会话(session),例如:session 3.PageContext对象提供取得属性的方法
Object getAttribute(String name, int scope)回传name 属性,范围为scope的属性对象,回传类型为Object
Enumeration getAttributeNamesInScope(int scope)回传所有属性范围为scope 的属性名称,回传类型为Enumeration
int getAttributesScope(String name)回传属性名称为name 的属性范围
void removeAttribute(String name)移除属性名称为name 的属性对象
void removeAttribute(String name, int scope)移除属性名称为name,范围为scope 的属性对象
void setAttribute(String name, Object value, int scope)指定属性对象的名称为name、值为value、范围为scope
Object findAttribute(String name)寻找在所有范围中属性名称为name 的属性对象九、exception对象
若要使用exception 对象时,必须在page 指令中设定。才能使用。
exception提供的三个方法:
getMessage( )
getLocalizedMessage( )、
printStackTrace(new java.io.PrintWriter(out))
1.{JSP/Servlet题目}假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。(选择1项)D A)MyApp目录下 B)MyApp\images目录下 C)MyApp\WEB-INF目录下 D)MyApp\WEB-INF\lib目录下 2.{JSP/Servlet题目}哪一个对象可以用于获得浏览器发送的请求。(选择1项)A A)HttpServletRequest B)HttpServletResponse C)HttpServlet D)Http 3.{JSP/Servlet题目}事务处理的结束方式。(选择2项) BD A)中止 B)提交 C)完成 D)回滚 4.{JSP/Servlet题目}客户端状态管理的解决方案有。(选择3项)C A)URL重写 B)隐藏域 C)Cookie D)以上都不是 5.{JSP/Servlet题目}与HttpSessionListener接口有关的方法是。(选择2项)BD A)SessionInitialized() B)SessionCreated() C)SessionFinialized() D)SessionDestroyed() 6.{JSP/Servlet题目}关于JSP生命周期的叙述,下列哪些为真?(选择2项)AC A)JSP会先解释成Servlet源文件,然后编译成Servlet类文件 B)每当用户端运行JSP时,jspInit()方法都会运行一次 C)每当用户端运行JSP时,_jspService()方法都会运行一次 D)每当用户端运行JSP时,jspDestroy()方法都会运行一次 7.{JSP/Servlet题目}下列哪个为JSP的隐含对象。(选择1项)B A)env B)page C)jspinfo D)context 8.{JSP/Servlet题目}在J2EE中属于Web层的组件有。(选择1项)A
Jsp的隐式对象和EL的隐式对象学习 2009-09-02 21:48 JSP共有九大内置对象: (1) HttpSession类的session对象 作用:主要用于来分别保存每个用户信息,与请求关联的会话; 会话状态维持是Web应用开发者必须面对的问题。 (2) HttpServletRequest类的request对象 作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。 (3) HttpServletResponse类的respone对象 作用:代表响应对象,主要用于向客户端发送数据 (4) JspWriter类的out对象 作用:主要用于向客户端输出数据; Out的基类是javax.servlet.jsp.JspWriter (5) ServletContext类的application对象 作用:主要用于保存用户信息,代码片段的运行环境; 它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享. (6) PageContext类的pageContext对象 作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。 (7) ServletConfig类的config对象 作用:代码片段配置对象,表示Servlet的配置。 (8) Object类的page(相当于this)对象 作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。 (9)Exception 作用:处理JSP文件执行时发生的错误和异常 EL共有11大内置对象: JSP开发人员可以在EL表达式中使用EL隐式对象,而无须任何显式的编码活声明。隐式对象就是设计用
“JSP内置对象”单元习题 一、填空题 1.JSP 中有9 种内置对象,它们分别是:___________、___________、response 对象、pageContext 对象、session对、applicationt 对象、page 对象、config 对象和exception 对象。 2.Request对象可以使用___________方法获取表单提交的信息。 3.客户端向服务器端提交数据的方式通常有两种:一种是___________提交方式;另一种是 ___________提交方式。 4.在JSP 内置对象中,与请求相关的对象是______________________。 5.___________被封装成javax.servlet.JspWriter 接口,它用来向客户端输出内容。 6.Out 对象中用来输出各种类型数据并换行的方法是______________________。7.Out 对象中用来输出各种类型数据但不换行的方法是 ______________________。 8.Out 对象中用来输出一个换行符的方法是______________________。9.Out 对象中用来关闭输出流的方法是______________________。 10.Out 对象中用来输出缓冲区里的数据的方法是______________________。11.Out 对象中用来清除缓冲区里的数据,并把数据写到客户端的方法是 ________________。 12.Out 对象中用来清除缓冲区里的数据,但不写到客户端的方法是 ___________________。 13.Out 对象中用来获得缓冲区大小的方法是______________________。14.Out 对象中用来获得缓冲区剩余空间大小的方法是 ______________________。 15.Out 对象中用来判断缓冲区是否自动刷新的方法是 ______________________。 16.Request 对象中用来获得服务器名字的方法是______________________。17.Request 对象中用来获得服务器的端口号的方法是 ______________________。 18.Request 对象中用来获得客户端的IP 地址的方法是 ______________________。 19.Request 对象中用来获得客户端的计算机名字的方法是 ______________________方法。 20.Request 对象中用来获得客户端向服务器端传送数据的协议名称的方法是 __________________。 21.___________是同应答相关的HttpServletResponse类的一个对象,它封装了服务器对客户端的响应,然后被送到客户端以响应客户请求。 22.Response对象中用来动态改变contentType属性的方法是 ______________________。 23 .Response 对象中用来把响应发送到另一个指定的位置进行处理的方法 是______________________。
判断题 1.静态网页*。Html中也可以嵌入脚本代码,如JavaScript、vbscript程序段等,但这些程序段不可能在服务器端运行,只能在客户端浏览器中运行。正确 2.动态网页是在服务器端被执行,其中嵌入的代码只能在服务器端运行,不能在客户端浏览器中运行。错误 3.GGI是多进程方式的动态网页技术,而JSP是多线程方式,故GGI系统开销比JSP要小。错误 4.JSP是以Servlet程序方式运行的,而ASP是有ASP引擎解释执行的。正确 5JSP容器对JSP页面中的模板元素不做任何处理,直接用out。Write()输出正确 6<!——>用于对JSP页面的代码段做注释,说明程序员的意图或要实现的功能,注释信不返回客户端。错误 7<!——>中可以使用<% %>动态输出注释内容,同时<!——>中也可以使用<% %>,因为预览JSP页面时没有报错。错误 8 JSP含对象是Servlet容器自动生成并传送给JSP页面Servlet实现类的。正确 9JSP的隐含对象一般是在JSP页面Servlet实现类的-jspService()方法内使用,也可以在Servlet实现类的其他方法中使用。正确 10.用request读取单选框表单元素的值时,用request.getAttribute()方法。错误 11.用request转发给目标资源传递属性数据的优点是目标资源不需要用代码释放属性数据,目标资源输出缓冲区被刷新后request对象中的属性数据自动丢失。正确 12.编写Servlet程序时,一般是继承HttpServlet并建议把业方法内务逻辑代码写在service()方法内。错误 13一个HttpServlet程序被调用后,doXXX()方法执行结束表示此Servlet程序被销毁。错误 14.如果在Servlet的
华南农业大学期末考试试卷(A 卷) 2011学年第2学期 考试科目: 软件开发基础(Java ) 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业 答题说明:所有答案必须写在答卷的指定位置,考试结束时只交答卷。 一、选择题(本大题共20小题,每小题1分,共20分) 说明:将选项答案按序号写在答卷上。 1. HTML 页面中,定义浏览器标题的