您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“Java的JSP內(nèi)置對象怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Java的JSP內(nèi)置對象怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
為了簡化頁面的開發(fā)過程,JSP 提供了一些內(nèi)置對象。
JSP 內(nèi)置對象又稱為隱式對象,它們由容器實(shí)現(xiàn)和管理。
在 JSP 頁面中,這些內(nèi)置對象不需要預(yù)先聲明,也不需要進(jìn)行實(shí)例化,我們可以直接在腳本和表達(dá)式中使用。
注意:JSP 內(nèi)置對象只能在腳本和表達(dá)式中使用,在聲明中不能使用。
JSP 中定義了 9 個(gè)內(nèi)置對象。
它們分別是:request、response、session、application、out、pagecontext、config、page 和 exception,這些對象在客戶端和服務(wù)器端交互的過程中分別完成不同的功能。
JSP 的內(nèi)置對象主要有以下特點(diǎn):
由 JSP 規(guī)范提供,不用編寫者實(shí)例化;
通過 Web 容器實(shí)現(xiàn)和管理;
所有 JSP 頁面均可使用;
只有在腳本元素的表達(dá)式或代碼段中才能使用。
在 JSP 九大內(nèi)置對象中,包含四個(gè)域?qū)ο蟆?/p>
它們分別是:pageContext(page 域?qū)ο螅?、request(request 域?qū)ο螅?、session(session 域?qū)ο螅?、以?application(application 域?qū)ο螅?/p>
JSP 中的 4 個(gè)域?qū)ο蠖寄芡ㄟ^以下 3 個(gè)方法,對屬性進(jìn)行保存、獲取和移除操作。
void:setAttribute(String name, Object o) 將屬性保存到域?qū)ο笾?/p>
Object:getAttribute(String name) 獲取域?qū)ο笾械膶傩灾?/p>
void:removeAttribute(String name) 將屬性從域?qū)ο笾幸瞥?/p>
JSP 中的 4 個(gè)域?qū)ο蟮淖饔糜蚋鞑幌嗤?,如下?/p>
page:如果把屬性保存到 pageContext 中,則它的作用域是 page。
該作用域中的屬性只在當(dāng)前 JSP 頁面有效,跳轉(zhuǎn)頁面后失效。
request:如果把屬性保存到 request 中,則它的作用域是 request。
該作用域中的屬性只在當(dāng)前請求范圍內(nèi)有效。服務(wù)器跳轉(zhuǎn)頁面后有效,例如jsp:forward;客戶端跳轉(zhuǎn)頁面后無效,例如超鏈接。
session:如果把屬性保存到 session 中,則它的作用域是 session。
該作用域中的屬性只在當(dāng)前會話范圍內(nèi)有效,網(wǎng)頁關(guān)閉后失效。
application如果把屬性保存到 application 中,則它的作用域是 application。
該作用域中的屬性在整個(gè)應(yīng)用范圍內(nèi)有效,服務(wù)器重啟后失效。
JSP request 是 javax.servlet.http.HttpServletRequest 的實(shí)例對象,主要用來獲取客戶端提交的數(shù)據(jù)。
request 對象提供了一系列方法,可以獲取請求參數(shù)信息、表單數(shù)據(jù)、HTTP 頭信息、cookie 和 HTTP 請求方法等。
在 index.jsp 頁面使用 getHeaderNames() 方法獲取 HTTP 頭信息,并遍歷輸出參數(shù)名稱和對應(yīng)值。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*"%> <!DOCTYPE html> <html> <head> </head> <body> <h3>獲取HTTP請求頭信息</h3> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>參數(shù)名稱</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 是 javax.servlet.http.HttpServletResponse 的實(shí)例對象。response 對象和 request 對象相對應(yīng),主要用于響應(yīng)客戶端請求,將處理信息返回到客戶端。
response 對象的常用方法如下:
void addHeader(String name, String value):添加頭信息(參數(shù)名稱和對應(yīng)值)
void addCookie(Cookie cookie):添加 cookie 信息
void sendRedirect(String location):實(shí)現(xiàn)頁面重定向
void setStatus(int sc):實(shí)現(xiàn)頁面的響應(yīng)狀態(tài)代碼
void setContentType(String type):設(shè)置頁面的 MIME 類型和字符集
void setCharacterEncoding(String charset):設(shè)定頁面響應(yīng)的編碼類型
下面在 login.jsp 新建表單,在 checkdetails.jsp 接收 login.jsp 提交的用戶名和密碼,與指定的用戶名和密碼相比,相同則登錄成功,重定向到 success.jsp;反之登錄失敗,重定向到 failed.jsp。
login.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> </head> <body> <h3>用戶登錄</h3> <form action="checkdetails.jsp"> 用戶名: <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> <h3>登錄成功!</h3> </body> </html>
failed.jsp 代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> </head> <body> <h3>登錄失敗,用戶名或密碼錯(cuò)誤!</h3> </body> </html>
運(yùn)行結(jié)果如下所示:
登錄頁面(輸入正確的用戶名和密碼)
登錄成功頁面
登錄頁面(輸入錯(cuò)誤的用戶名)
登錄失敗頁面
JSP out 是 javax.servlet.jsp.JspWriter 的實(shí)例對象。
out 對象包含了很多 IO 流中的方法和特性,最常用的就是輸出內(nèi)容到 HTML 中。
out 對象的常用方法如下:
void print():將內(nèi)容直接打印在 HTML 標(biāo)簽中
void println():類似于 print,唯一區(qū)別是 println 方法添加了換行符
void newLine():輸出換行字符
void clear():清除頁面緩沖區(qū)
boolean isAutoFlush():檢查頁面是否自動清除緩沖區(qū)
out 對象的方法相對比較簡單,一般情況下很少使用。
下面我們使用 out 對象的 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("歡迎來到編程幫,"); out.newLine(); out.println("我們的網(wǎng)址是:"); out.print("www.biancheng.net"); %> </body> </html>
運(yùn)行結(jié)果如下:
index.jsp運(yùn)行結(jié)果
注意:這里的 println 與 newLine 換行指的是 HTML 代碼換行,并不是頁面顯示的換行。頁面顯示換行需要在代碼后面加標(biāo)簽。
讀到這里,這篇“Java的JSP內(nèi)置對象怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。