1.out對象
out對象是JspWriter類的實例,是向客戶端輸出內容常用的對象.
編號 | 方法 | 說明 |
1 | void clear() | 清除緩衝區的內容,如果在flush()以後調用此方法會拋出異常 |
2 | void clearBuffer() | 清除緩衝區的當前內容,如果在flush()以後調用此方法不會拋出異常 |
3 | void flush() | 清空流 |
4 | int getBufferSize() | 返回緩衝區以字節數的大小,如不設緩衝區則爲0 |
5 | int getRemaining() | 返回緩衝區還剩餘多少可用 |
6 | boolean isAutoFlush() | 返回緩衝區滿時,是自動清空還是拋出異常 |
7 | void close() | 關閉輸出流 |
8 | void println() | 向客服端打印字符串 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>out對象的使用</title>
</head>
<body>
<%
out.println("<h1>靜夜思</h1><br/>");
out.println("牀前明月光<br/>");
out.println("疑是地上霜<br/>");
out.flush();
//out.clear();//此處會報錯
out.clearBuffer();//使用clearBuffer清除不會報錯
out.println("舉頭望明月<br/>");
out.println("低頭思故鄉<br/>");
%>
緩衝區大小:<%=out.getBufferSize() %>
緩衝區剩餘大小:<%=out.getRemaining() %>
是否自動清除緩衝區:<%=out.isAutoFlush() %>
</body>
</html>
2.request對象
客戶端的請求信息被封裝在request對象中
通過它才能瞭解到客戶的需求,然後做出響應.它是HttpServletRequest類的實例.
編號 | 方法 | 說明 |
1 | object getAttribute(String name) | 返回指定屬性的屬性值 |
2 | Enumeration getAttributeNames() | 返回所有可用屬性名的枚舉 |
3 | String getCharacterEncoding() | 返回字符編碼方式 |
4 | int getContentLength() | 返回請求體的長度(以字節數) |
5 | String getContentType() | 得到請求體的MIME類型 |
6 | ServletInputStream getInputStream() | 得到請求體中一行的二進制流 |
7 | String getParameter(String name) | 返回name指定參數的參數值 |
8 | Enumeration getParameterNames() | 返回可用參數名的枚舉 |
9 | String[] getparameterValues(String name) | 返回包含參數name的所有值的數組 |
10 | String getProtocol() | 返回請求用的協議類型及版本號 |
11 | String getScheme() | 返回請求用的計劃名,如:http https及ftp等 |
12 | int getServerPort() | 返回服務器接受此請求所用的端口號 |
13 | String getServerName() | 返回接受請求的服務器主機名 |
14 | BufferedReader getReader() | 返回解碼過了的請求體 |
15 | String getRemoteAddr() | 返回發送此請求的客戶端IP地址 |
16 | String getRemoteHost() | 返回發送此請求的客戶端主機名 |
17 | void setAttribute(String key Object obj) | 設置屬性的屬性值 |
18 | String getRealPath(String path) | 返回一虛擬路徑的真實路徑 |
19 | void setCharacterEncoding("gb2312") | 設置接受參數的字符集 |
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>註冊頁面</title>
</head>
<body>
<form action="loginSucceed.jsp" name="loginForm" method="post">
<h1>用戶註冊</h1>
<hr />
<table>
<tr>
<td>賬號:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td colspan="2">愛好: <input type="checkbox" name="hobby"value="sing" id="hobby1" /><label for="hobby1">唱歌</label>
<input type="checkbox" name="hobby" value="read" id="hobby2" /><label for="hobby2">閱讀</label>
<input type="checkbox" name="hobby"value="internet" id="hobby3" /><label for="hobby3">上網</label>
<input type="checkbox" name="hobby" value="run" id="hobby4" /><label for="hobby4">跑步</label>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="login" value="登錄" /></td>
</tr>
</table>
</form>
<a href="loginSucceed.jsp?username=張三&password=王二">跳轉</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登錄成功</title>
</head>
<body>
<h1>用戶登錄成功</h1>
<%request.setCharacterEncoding("utf-8"); %><%--解決提交表單中的中文亂碼問題 --%>
<%request.setAttribute("password", "123456"); %>
<hr>
用戶名:<%=request.getParameter("username") %><br>
密碼:<%=request.getParameter("password") %><br>
愛好:<%
String[] str = request.getParameterValues("hobby");
if(str!=null){
for(int i=0;i<str.length;i++){
out.println(str[i]+" ");
}
}
%><br>
getAttribute:<%=request.getAttribute("password")%><br>
請求體的MIME類型:<%=request.getContentType() %><br>
協議類型及版本號:<%=request.getProtocol() %><br>
服務器主機名:<%=request.getServerName() %><br>
服務器端口號:<%=request.getServerPort() %><br>
請求文件的長度:<%=request.getContentLength() %><br>
請求客服端的IP地址:<%=request.getRemoteAddr() %><br>
請求的真實路徑:<%=request.getRealPath("request.jsp") %><br>
請求的上下文路徑:<%=request.getContextPath() %><br>
</body>
</html>
頁面顯示: 用戶名:張三丰 密碼:1324 愛好:internet run getAttribute:123456 請求體的MIME類型:application/x-www-form-urlencoded 協議類型及版本號:HTTP/1.1 服務器主機名:localhost 服務器端口號:8080 請求文件的長度:100 請求客服端的IP地址:0:0:0:0:0:0:0:1 請求的真是路徑:F:\Java\workspace\workspace_ee\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyWebTest\request.jsp 請求的上下文路徑:/MyWebTest
3.response對象
response對象包含了響應客戶請求的有關信息
但在JSP中很少直接用到它,它是HttpServletResponse類的實例.
編號 | 方法 | 說明 |
1 | String getCharacterEncoding() | 返回響應用的是何種字符編碼 |
2 | ServletOutputStream getOutputStream() | 返回響應的一個二進制輸出流 |
3 | PrintWriter getWriter() | 返回可以向客戶端輸出字符的一個對象 |
4 | void setContentLength(int len) | 設置響應頭長度 |
5 | void setContentType(String type) | 設置響應的MIME類型 |
6 | sendRedirect(java.lang.String location) | 重新定向客戶端的請求 |
7 | void setCharacterEncoding("gb2312") | 設置響應頭的字符集 |
<%@page import="java.io.PrintWriter"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
response.setContentType("text/html;charset=utf-8");//設置響應的MIME類型
out.println("<h1>response內置對象</h1>");
out.println("<hr>");
//out.flush();//把out緩衝區內容寫到瀏覽器並清空,解決out內置對象在response對象生成的輸出流對象之後的問題
PrintWriter outer = response.getWriter();//獲得輸出流
outer.println("response對象生成的輸出流對象");//輸出在out內置對象之前
//outer.write("試一試");
response.sendRedirect("register.jsp");//請求重定向,,,out.flush()如果在前面運行了,在這裏就會報錯
%>
4.session對象
session對象指的是客戶端與服務器的一次會話
從客戶連到服務器的一個WebApplication開始
直到客戶端與服務器斷開連接爲止.它是HttpSession類的實例
編號 | 方法 | 說明 |
1 | long getCreationTime() | 返回Session創建時間 |
2 | public String getId() | 返回Session創建時JSP引擎爲它設的唯一ID號 |
3 | long getLastAccessedTime() | 返回此Session裏客戶端最近一次請求時間 |
4 | int getMaxInactiveInterval() | 返回兩次請求間隔多長時間此Session被取消(ms) |
5 | String[] getValueNames() | 返回一個包含此Session中所有可用屬性的數組 |
6 | void invalidate() | 取消Session,使Session不可用 |
7 | boolean isNew() | 返回服務器創建的一個Session,客戶端是否已經加入 |
8 | void removeValue(String name) | 刪除Session中指定的屬性 |
9 | void setAttribute(String key,Object obj) | 設置Session的屬性 |
5.application對象
application對象實現了用戶間數據的共享,可存放全局變量.它開始於服務器的啓動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前後連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問.服務器的啓動和關閉決定了application對象的生命.它是ServletContext類的實例
編號 | 方法 | 說明 |
1 |
Object getAttribute(String name)
|
返回給定名的屬性值
|
2 |
Enumeration getAttributeNames()
|
返回所有可用屬性名的枚舉
|
3 |
void setAttribute(String name,Object obj)
|
設定屬性的屬性值
|
4 |
void removeAttribute(String name)
|
刪除一屬性及其屬性值
|
5 |
String getServerInfo()
|
返回JSP(SERVLET)引擎名及版本號
|
6 |
String getRealPath(String path)
|
返回一虛擬路徑的真實路徑
|
7 |
ServletContext getContext(String uripath)
|
返回指定WebApplication的application對象
|
8 |
int getMajorVersion()
|
返回服務器支持的Servlet API的最大版本號
|
9 |
int getMinorVersion()
|
返回服務器支持的Servlet API的最小版本號
|
10 |
String getMimeType(String file)
|
返回指定文件的MIME類型
|
11 |
URL getResource(String path)
|
返回指定資源(文件及目錄)的URL路徑
|
12 |
InputStream getResourceAsStream(String path)
|
返回指定資源的輸入流
|
13 |
RequestDispatcher getRequestDispatcher(String uripath)
|
返回指定資源的RequestDispatcher對象
|
14 |
Servlet getServlet(String name)
|
返回指定名的Servlet
|
15 |
Enumeration getServlets()
|
返回所有Servlet的枚舉
|
16 |
Enumeration getServletNames()
|
返回所有Servlet名的枚舉
|
17 |
void log(String msg)
|
把指定消息寫入Servlet的日誌文件
|
18 |
void log(Exception exception,String msg)
|
把指定異常的棧軌跡及錯誤消息寫入Servlet的日誌文件
|
19 |
void log(String msg,Throwable throwable)
|
把棧軌跡及給出的Throwable異常的說明信息 寫入Servlet的日誌文件
|
6page對象
page對象就是指向當前JSP頁面本身,有點象類中的this指針
它是java.lang.Object類的實例.
編號 | 方法 | 說明 |
1 | class getClass | 返回此Object的類 |
2 | int hashCode() | 返回此Object的hash碼 |
3 | boolean equals(Object obj) | 判斷此Object是否與指定的Object對象相等 |
4 | void copy(Object obj) | 把此Object拷貝到指定的Object對象中 |
5 | Object clone() | 可隆此Object對象 |
6 | String toString() | 把此Object對象轉換成String類的對象 |
7 | void notify() | 喚醒一個等待的線程 |
8 | void notifyAll() | 喚醒所有等待的線程 |
9 | void wait(int timeout) | 使一個線程處於等待直到timeout結束或被喚醒 |
10 | void wait() | 使一個線程處於等待直到被喚醒 |
11 | void enterMonitor() | 對Object加鎖 |
12 | void exitMonitor() | 對Object開鎖 |
7 pageContext對象
pageContext對象提供了對JSP頁面內所有的對象及名字空間的訪問,
也就是說他可以訪問到本頁所在的SESSION.也可以取本頁面所在的application的某一屬性值,
他相當於頁面中所有功能的集大成者,它的本類名也叫pageContext.
編號 | 方法 | 說明 |
1 |
JspWriter getOut()
|
返回當前客戶端響應被使用的JspWriter流(out)
|
2 |
HttpSession getSession()
|
返回當前頁中的HttpSession對象(session)
|
3 |
Object getPage()
|
返回當前頁的Object對象(page)
|
4 |
ServletRequest getRequest()
|
返回當前頁的ServletRequest對象(request)
|
5 |
ServletResponse getResponse()
|
返回當前頁的ServletResponse對象(response)
|
6 |
Exception getException()
|
返回當前頁的Exception對象(exception)
|
7 |
ServletConfig getServletConfig()
|
返回當前頁的ServletConfig對象(config)
|
8 |
ServletContext getServletContext()
|
返回當前頁的ServletContext對象(application)
|
9 |
void setAttribute(String name,Object attribute)
|
設置屬性及屬性值 ,在page範圍內有效
|
10 |
void setAttribute(String name,Object obj,int scope)
|
在指定範圍內設置屬性及屬性值 ,int1=page,2=request,3=session,4=application
|
11 |
public Object getAttribute(String name)
|
取屬性的值
|
12 |
Object getAttribute(String name,int scope)
|
在指定範圍內取屬性的值
|
13 |
public Object findAttribute(String name)
|
尋找一屬性,返回起屬性值或NULL
|
14 |
void removeAttribute(String name)
|
刪除某屬性
|
15 |
void removeAttribute(String name,int scope)
|
在指定範圍刪除某屬性
|
16 |
int getAttributeScope(String name)
|
返回某屬性的作用範圍
|
17 |
Enumeration getAttributeNamesInScope(int scope)
|
返回指定範圍內可用的屬性名枚舉
|
18 |
void release()
|
釋放pageContext所佔用的資源
|
19 |
void forward(String relativeUrlPath)
|
使當前頁面重導到另一頁面
|
20 |
void include(String relativeUrlPath)
|
在當前位置包含另一文件
|
8exception對象
exception對象是一個例外對象,當一個頁面在運行過程中發生了例外,就產生這個對象.
如果一個JSP頁面要應用此對象,就必須把isErrorPage設爲true,否則無法編譯.
他實際上是java.lang.Throwable的對象
編號 | 方法 | 說明 |
1 |
String getMessage()
|
返回描述異常的消息
|
2 |
String toString()
|
返回關於異常的簡短描述消息
|
3 |
void printStackTrace()
|
顯示異常及其棧軌跡
|
4 |
Throwable FillInStackTrace()
|
重寫異常的執行棧軌跡
|
在需要處理異常的界面指定出現異常交給誰處理,在page裏面指定:errorPage="處理異常的界面,如:exception.jsp"
而要處理異常的界面就需要使用exception對象,所以處理界面的page裏面就需要指定:isErrorPage="true" ,然後纔可以使用
9config 對象
config 對象代表當前JSP 配置信息,但JSP 頁面通常無須配置,因此也就不存在配置信息。該對象在JSP 頁面中非常少用,但在Servlet 則用處相對較大。因爲Servlet 需要配置在web.xml 文件中,可以指定配置參數。
config對象對應於javax.servlet.ServletConfig類,此類位於servlet-api.jar包中。
web容器在初始化時使用一個ServletConfig(即config)對象向JSP頁面傳遞信息,此配置信息包括初始化參數(在當前Web應用的應用部署描述文件web.xml中定義)以及表示Servlet或JSP頁面所屬Web應用的ServletContext對象。
config對象的幾個方法:
(1)public String getParameter(String name);
返回制定的名稱name初始化參數的值,如果參數不存在則返回null。
(2)public Java.util.Enumeration getinitParameterNames();
得到所有初始化參數名稱的枚舉。
(3)public ServletContext getServletContext();
返回Servlet或JSP頁面所屬的ServletContext的一個引用。
(4)public String getServletName();
返回Servlet實例或JSP頁面的名稱,此名稱可以在Web應用部署描述文件中指定,對於一個未註冊(也就是未命名)Servlet實例或JSP頁面,將返回該Servlet類的類名。