日期:2014-05-16  浏览次数:20466 次

JSP 9大对象详解
JSP 9大对象详解
学习JSP主要学习他的9大对象(request, response, pageContext, session, application, out, config, page, exception ),这些对象都是静态对象,不用定义就可以直接使用,把他们都了解清楚并会运用,就可以在简历上添上一个熟悉技能:JSP

Jsp内置对象 功能 主要方法
out  向客户端输出数据 print() println() flush() clear() isAutoFlush() getBufferSize()   close() …………
request 向客户端请求数据
通过它取得来自客户端的parameters,cookies,header等信息 getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..
response 封装了jsp产生的响应,然后被发送到客户端以响应客户的请求 addCookie() sendRedirect() setContentType()
flushBuffer() getBufferSize() getOutputStream()
sendError() containsHeader()……………
application 应用程序级对象(即应用程序上下文),多个用户之间共享信息 
config 表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet
JSP的配置信息,作用域为页面 getServletContext() getServletName() getInitParameter()   getInitParameterNames()……………
page 对应this关键字。JSP网页本身,Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问 flush()………
pagecontext 为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问  网页的属性是在这里管理 forward() getAttribute() getException() getRequest() getResponse()   getServletConfig()
getSession() getServletContext() setAttribute()
removeAttribute() findAttribute() …………… 
session 用户级对象,用来保存每个用户的信息,以便跟踪每个用户的操作状态通过 <%@ page session ="false" %>该页面禁止会话 getAttribute() getId()   getAttributeNames() getCreateTime() getMaxInactiveInterval()
invalidate() isNew()
exception 反映运行的异常只有在page指令中指定isErrorPage = "true"属性,才可以使用这个对象。 getMessage()…………

getLocalizedMessage( )
toString( )




他们分别继承于
①request        javax.servlet.http.HttpServletRequest
②response       javax.servlet.http.HttpServletResponse
③pageContext  
④session        javax.servlet.http.Httpsession
⑤out            javax.servlet.jsp.JspWriter
⑥application    javax.servlet.servletContext
⑦config         javax.servlet.servletConfig
⑧page           java.lang.Object
⑨exception      java.lang.Throwable
由此看出他与servlet的关系。你以看看9大JSP隐式对象与Servlet之间的暧昧,看看他们的暧昧关系.


使用示例

①out
        返回类型 方法 説明
void clear( )  
void clearBuffer( )   
void close( )  
void flush( )  
void newLine( )  
void print(var)  
void println(var)  


更多方法请看API Reference


<%...@ page contentType="text/html;charset=Shift_JIS" autoFlush="true" %>
<html>
<head>
<title>バッファの制御(outオブジェクト)</title>
</head>
<body>
<%...
for(int i=0;i<=10;i++){
  Thread.sleep(1000);
  /* データベース処理など、処理時間の長い処理 */
  out.print("…");
  out.flush();
}
%>
</body>
</html>

②request

返回类型 方法 説明
Cookie[ ] getCookies( )   
String getHeader(String)   
Enumeration getHeaderNames( )   
Enumeration getHeaders(String)   
String getMethod( )   
String getParameter(String)   
String[ ] getParameterValues(String)   
Enumeration getParameterNames( )   
void setCharacterEncoding(String)  


更多方法请看API Reference
sample.html

<table border="1" width="250">
<tr><th>キー名</th><th>値</th></tr>

<!-- 返回值为ENUMERATION的处理 --&g