您的位置:首页 > Web前端 > JavaScript

详细了解JSP中九个隐含对象

2013-01-05 20:54 288 查看
为简化Web页面的开发过程,JSP提供了一些由容器实现和管理的隐含对象,这些对象在JSP页面中可以直接使用,不需要JSP页面编写者实例化。在JSP页面中,可以通过存取这些隐含对象实现与JSP页面和SERVLET环境的相互访问。详细了解JSP中九个隐含对象,page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。一、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属性的值为valueEnumeration getAttributeNamesInScope(int scope)取得所有scope 范围的属性Object getAttribute(String name)取得name 属性的值void removeAttribute(String name)移除name 属性的值2.取得请求参数的方法
String getParameter(String name) 取得name 的参数值EnumerationgetParameterNames( ) 取得所有的参数名称String[]getParameterValues(String name) 取得所有name 的参数值Map getParameterMap( )取得一个要求参数的Map3.能够取得请求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( ) 取得与请求有关的cookies4.其他的方法
String getContextPath( )取得Context 路径(即站台名称)String getMethod( )取得HTTP 的方法(GET、POST)String getProtocol( )取得使用的协议 HTTP/1.1、HTTP/1.0 )String getQueryString( )取得请求的参数字符串,不过,HTTP的方法必须为GETString getRequestedSessionId( ) 取得用户端的Session IDString 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)新增cookievoid 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 的IDlong 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 contextString 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_SCOPE2.PageContext对象取得其他隐含对象的方法Exception getException(
)回传目前网页的异常,不过此网页要为error page,JspWriter getOut(
)回传目前网页的输出流,例如:outObject getPage( )回传目前网页的Servlet
实体(instance),例如:pageServletRequest getRequest(
)回传目前网页的请求,例如:requestServletResponse getResponse(
)回传目前网页的响应,例如:responseServletConfig getServletConfig(
)回传目前此网页的ServletConfig 对象,例如:configServletContext getServletContext( )
回传目前此网页的执行环境(context),例如:applicationHttpSession getSession(
)回传和目前网页有联系的会话(session),例如:session3.PageContext对象提供取得属性的方法Object getAttribute(String name, int
scope)回传name 属性,范围为scope的属性对象,回传类型为ObjectEnumeration
getAttributeNamesInScope(int scope)回传所有属性范围为scope
的属性名称,回传类型为Enumerationint 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、范围为scopeObject findAttribute(String
name)寻找在所有范围中属性名称为name 的属性对象九、exception对象若要使用exception 对象时,必须在page
指令中设定。才能使用。exception提供的三个方法:getMessage( )getLocalizedMessage( )、printStackTrace(new
java.io.PrintWriter(out))本文介绍了JSP页面中使用的主要隐含对象。正是由于这些隐含对象,你可以进入JSP页面的代码段,用不着深入了解太多的SERVLER
API细节。从本质上讲,JSP的这些隐含对象其实都是由特定的JAVA类所产生的,在服务器运行时根据情况自动生成,所以如果你有较好的JAVA基础,可以参考相应的类说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: