Java之JSP教程九大內(nèi)置對(duì)象詳解(上篇)
JSP九大內(nèi)置對(duì)象一覽表
為了簡(jiǎn)化頁(yè)面的開(kāi)發(fā)過(guò)程,JSP 提供了一些內(nèi)置對(duì)象。
JSP 內(nèi)置對(duì)象又稱(chēng)為隱式對(duì)象,它們由容器實(shí)現(xiàn)和管理。
在 JSP 頁(yè)面中,這些內(nèi)置對(duì)象不需要預(yù)先聲明,也不需要進(jìn)行實(shí)例化,我們可以直接在腳本和表達(dá)式中使用。
注意:JSP 內(nèi)置對(duì)象只能在腳本和表達(dá)式中使用,在聲明中不能使用。
九大內(nèi)置對(duì)象
JSP 中定義了 9 個(gè)內(nèi)置對(duì)象。
它們分別是:request、response、session、application、out、pagecontext、config、page 和 exception,這些對(duì)象在客戶(hù)端和服務(wù)器端交互的過(guò)程中分別完成不同的功能。
JSP 的內(nèi)置對(duì)象主要有以下特點(diǎn):
- 由 JSP 規(guī)范提供,不用編寫(xiě)者實(shí)例化;
- 通過(guò) Web 容器實(shí)現(xiàn)和管理;
- 所有 JSP 頁(yè)面均可使用;
- 只有在腳本元素的表達(dá)式或代碼段中才能使用。
四大域?qū)ο?/h2>
在 JSP 九大內(nèi)置對(duì)象中,包含四個(gè)域?qū)ο蟆?/p>
它們分別是:pageContext(page 域?qū)ο螅?、request(request 域?qū)ο螅ession(session 域?qū)ο螅?、以?application(application 域?qū)ο螅?/p>
JSP 中的 4 個(gè)域?qū)ο蠖寄芡ㄟ^(guò)以下 3 個(gè)方法,對(duì)屬性進(jìn)行保存、獲取和移除操作。
- void:setAttribute(String name, Object o) 將屬性保存到域?qū)ο笾?/li>
- Object:getAttribute(String name) 獲取域?qū)ο笾械膶傩灾?/li>
- void:removeAttribute(String name) 將屬性從域?qū)ο笾幸瞥?/li>
JSP 中的 4 個(gè)域?qū)ο蟮淖饔糜蚋鞑幌嗤?,如下?/p>
page:如果把屬性保存到 pageContext 中,則它的作用域是 page。
該作用域中的屬性只在當(dāng)前 JSP 頁(yè)面有效,跳轉(zhuǎn)頁(yè)面后失效。
request:如果把屬性保存到 request 中,則它的作用域是 request。
該作用域中的屬性只在當(dāng)前請(qǐng)求范圍內(nèi)有效。服務(wù)器跳轉(zhuǎn)頁(yè)面后有效,例如jsp:forward;客戶(hù)端跳轉(zhuǎn)頁(yè)面后無(wú)效,例如超鏈接。
session:如果把屬性保存到 session 中,則它的作用域是 session。
該作用域中的屬性只在當(dāng)前會(huì)話范圍內(nèi)有效,網(wǎng)頁(yè)關(guān)閉后失效。
application如果把屬性保存到 application 中,則它的作用域是 application。
該作用域中的屬性在整個(gè)應(yīng)用范圍內(nèi)有效,服務(wù)器重啟后失效。
JSP request對(duì)象
JSP request 是 javax.servlet.http.HttpServletRequest 的實(shí)例對(duì)象,主要用來(lái)獲取客戶(hù)端提交的數(shù)據(jù)。
request 對(duì)象提供了一系列方法,可以獲取請(qǐng)求參數(shù)信息、表單數(shù)據(jù)、HTTP 頭信息、cookie 和 HTTP 請(qǐng)求方法等。
示例
在 index.jsp 頁(yè)面使用 getHeaderNames() 方法獲取 HTTP 頭信息,并遍歷輸出參數(shù)名稱(chēng)和對(duì)應(yīng)值。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>獲取HTTP請(qǐng)求頭信息</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>參數(shù)名稱(chēng)</th>
<th>參數(shù)值</th>
</tr>
<%
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String paramName = (String) headerNames.nextElement();
out.print("<tr><td>" + paramName + "</td>\n");
String paramValue = request.getHeader(paramName);
out.println("<td> " + paramValue + "</td></tr>\n");
}
%>
</table>
</body>
</html>
運(yùn)行結(jié)果如下:

JSP response對(duì)象
JSP response 是 javax.servlet.http.HttpServletResponse 的實(shí)例對(duì)象。response 對(duì)象和 request 對(duì)象相對(duì)應(yīng),主要用于響應(yīng)客戶(hù)端請(qǐng)求,將處理信息返回到客戶(hù)端。
response 對(duì)象的常用方法如下:
- void addHeader(String name, String value):添加頭信息(參數(shù)名稱(chēng)和對(duì)應(yīng)值)
- void addCookie(Cookie cookie):添加 cookie 信息
- void sendRedirect(String location):實(shí)現(xiàn)頁(yè)面重定向
- void setStatus(int sc):實(shí)現(xiàn)頁(yè)面的響應(yīng)狀態(tài)代碼
- void setContentType(String type):設(shè)置頁(yè)面的 MIME 類(lèi)型和字符集
- void setCharacterEncoding(String charset):設(shè)定頁(yè)面響應(yīng)的編碼類(lèi)型
示例
下面在 login.jsp 新建表單,在 checkdetails.jsp 接收 login.jsp 提交的用戶(hù)名和密碼,與指定的用戶(hù)名和密碼相比,相同則登錄成功,重定向到 success.jsp;反之登錄失敗,重定向到 failed.jsp。
login.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>用戶(hù)登錄</h2>
<form action="checkdetails.jsp">
用戶(hù)名: <input type="text" name="username" />
密碼: <input type="text" name="pass" />
<input type="submit" value="登錄" />
</form>
</body>
</html>checkdetails.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("pass");
if (username.equals("biancheng") && password.equals("bianchengbang")) {
response.sendRedirect("success.jsp");
} else {
response.sendRedirect("failed.jsp");
}
%>
</body>
</html>success.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>登錄成功!</h2>
</body>
</html>failed.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>登錄失敗,用戶(hù)名或密碼錯(cuò)誤!</h2>
</body>
</html>運(yùn)行結(jié)果如下所示:

登錄頁(yè)面(輸入正確的用戶(hù)名和密碼)

登錄成功頁(yè)面

登錄頁(yè)面(輸入錯(cuò)誤的用戶(hù)名)

登錄失敗頁(yè)面
JSP out對(duì)象
JSP out 是 javax.servlet.jsp.JspWriter 的實(shí)例對(duì)象。
out 對(duì)象包含了很多 IO 流中的方法和特性,最常用的就是輸出內(nèi)容到 HTML 中。
out 對(duì)象的常用方法如下:
- void print():將內(nèi)容直接打印在 HTML 標(biāo)簽中
- void println():類(lèi)似于 print,唯一區(qū)別是 println 方法添加了換行符
- void newLine():輸出換行字符
- void clear():清除頁(yè)面緩沖區(qū)
- boolean isAutoFlush():檢查頁(yè)面是否自動(dòng)清除緩沖區(qū)
示例
out 對(duì)象的方法相對(duì)比較簡(jiǎn)單,一般情況下很少使用。
下面我們使用 out 對(duì)象的 print、println 和 newLine 方法將內(nèi)容輸出到 HTML 中。index.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<%
out.print("歡迎來(lái)到編程幫,");
out.newLine();
out.println("我們的網(wǎng)址是:");
out.print("www.biancheng.net");
%>
</body>
</html>運(yùn)行結(jié)果如下:

index.jsp運(yùn)行結(jié)果
注意:這里的 println 與 newLine 換行指的是 HTML 代碼換行,并不是頁(yè)面顯示的換行。頁(yè)面顯示換行需要在代碼后面加標(biāo)簽。
到此這篇關(guān)于Java之JSP教程九大內(nèi)置對(duì)象詳解(上篇)的文章就介紹到這了,其他兩個(gè)部分的內(nèi)容(中、下篇)請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java之JSP教程九大內(nèi)置對(duì)象詳解(中篇)
- jsp的九大內(nèi)置對(duì)象深入講解
- 詳解JSP 內(nèi)置對(duì)象request常見(jiàn)用法
- JSP中九大內(nèi)置對(duì)象和四種屬性范圍詳解
- jsp內(nèi)置對(duì)象
- 淺談jsp九大內(nèi)置對(duì)象及四個(gè)作用域
- 淺析JSP的9大內(nèi)置對(duì)象和4大作用域?qū)ο?/a>
- JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用
- jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
- Java之JSP教程九大內(nèi)置對(duì)象詳解(下篇)
相關(guān)文章
response.getWriter().write()向前臺(tái)打印信息亂碼問(wèn)題解決
本節(jié)主要介紹了response.getWriter().write()向前臺(tái)打印信息亂碼問(wèn)題解決方法,需要的朋友可以參考下2014-08-08
Eclipse開(kāi)發(fā)Hibernate應(yīng)用程序
Eclipse開(kāi)發(fā)Hibernate應(yīng)用程序...2006-10-10
Spring獲取ApplicationContext對(duì)象工具類(lèi)的實(shí)現(xiàn)方法
這篇文章主要介紹了 Spring獲取ApplicationContext對(duì)象工具類(lèi)的實(shí)現(xiàn)方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
jsp倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了jsp倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法,涉及Java時(shí)間運(yùn)算與顯示的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
jsp實(shí)現(xiàn)針對(duì)excel及word文檔的打印方法
這篇文章主要介紹了jsp實(shí)現(xiàn)針對(duì)excel及word文檔的打印方法,涉及JSP操作excel及word的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10

