jsp 九大內置對象詳解以及示例

作者的個人分享網:分享時刻【www.itison.cn】

以下是 jsp 九大內置對象詳解以及示例

jsp 九大內置對象類型以及作用域一覽表:

request           請求對象            類型 javax.servlet.ServletRequest        作用域 Request
response          響應對象             類型 javax.servlet.SrvletResponse        作用域 Page
pageContext       頁面上下文對象        類型 javax.servlet.jsp.PageContext       作用域 Page
session           會話對象             類型 javax.servlet.http.HttpSession      作用域 Session
application       應用程序對象          類型 javax.servlet.ServletContext        作用域 Application
out               輸出對象             類型 javax.servlet.jsp.JspWriter         作用域 Page
config            配置對象             類型 javax.servlet.ServletConfig         作用域 Page
page              頁面對象             類型 javax.lang.Object                   作用域 Page
exception         例外對象             類型 javax.lang.Throwable                作用域 page

out對象:

out對象javax.servlet.jsp.JspWriter的一個對象,它能把信息發送給客戶端的瀏覽器。
out對象有兩個常用方法:print();和println();


out對象也可以對緩衝區做相關操作(代碼如下):
<%@ 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>Insert title here</title>
</head>
<body>
	<%
		out.print("helloworld");
		// out.clearBuffer(); // 將緩衝區的數據清空
		out.flush(); // 先顯示數據在清空緩存
		out.println("緩衝區空間:" + out.getBufferSize());
		out.print("剩餘空間:" + out.getRemaining());
		out.print("AutoFlush狀態:" + out.isAutoFlush());
		out.close();
	
	%>
</body>
</html>

request對象:

設置字符編碼:request.setCharacterEncoding("utf-8");

取值:String uname = request.getParameter("uname"):返回String,當獲取表單值或者url傳值的時候要用這個。
request.getAttribute("user");返回的是一個Object類型的對象,一般要強轉

存值:request.setAttribute("user",user);

轉發:request.getRequestDispatcher("index.jsp").forward(request, response);

response對象:

設置字符編碼:response.setCharacterEncoding("utf-8");
		   response.setContentType("text/html;charset=utf-8");
		   
設置cookie:response.addCookie(c1);
		   
重定向:response.sendRedirect("login.jsp");

pageContext 對象:

pageContext 對象的作用是取得任何範圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。
pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

config 對象:

config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中爲應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

page 對象:

page 對象代表JSP本身,只有在JSP頁面內纔是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。

exception 對象:

exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中纔可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。

“exception” 對象則代表了JSP文件運行時所產生的例外對象,此對象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。

若要使用exception 對象時,必須在page 指令中設定。< %@ page isErrorPage="true" %>才能使用。

exception提供的三個方法:

getMessage( ) 該方法返回錯誤信息。
printStackTrace( ) 該方法以標準錯誤的形式輸出一個錯誤和錯誤的堆棧。
toString():該方法以字符串的形式返回一個對異常的描述。

application應用程序對象統計網站訪問人數示例:

 該對象代表web應用本身,整個web應用共享一個application對象,該對象主要用於在多個JSP頁面或者Servlet之間共享變量。application通過setAttribute()方法將一個值放入某個屬性,該屬性的值對整個Web 應用有效,因此Web 應用的每個JSP 頁面或Servlet都可以訪問該屬性,訪問屬性的方法爲getAttribute 。
    看下面的put-application.jsp頁面,該頁面僅僅聲明瞭一個整型變量,每次刷新該頁面時,該變量值加1,然後將該變量的值放入application 內。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'application.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    

  </head>
  
  <body>
    <%	
    	// 統計服務器的總瀏覽次數,application是與服務器共存亡,session與瀏覽器共存亡
    	Object ob = application.getAttribute("count");
    	int num = 0;
    	if(ob == null){
    		num = 1;
    	}else{
    		num = Integer.valueOf(ob.toString()) + 1;
    	}
    	
    	application.setAttribute("count", num);
    %>
    
    <h3>總瀏覽人數:<%=application.getAttribute("count") %></h3>
  </body>
</html>

發佈了43 篇原創文章 · 獲贊 86 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章