程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp 隱含對象

jsp 隱含對象

編輯:關於JSP

1.引言
為了方便程序員對常用對象的訪問,在JSP中規范了就中隱含對象,這些對象不用聲明可以直接拿來使用,在從JSP轉換為servlet時,他們會轉換為對應的servlet類型。

out:表示輸出,相當於servlet中的PrintWriter,對應的類型是javax.servlet.jsp.JspWriter

request:表示請求信息,對用的類型是javax.servlet.http.HttpServletRequest

response:表示響應信息,對應的類型是javax.servlet.http.HttpServletResponse

session:和servlet中的HttpSession一樣。對應的類型是javax.servlet.http.HttpSession

application:表示整個應用的上下文,和getServletConfig().getServletContext()等效。對應類型為javax..servlet.jsp.PageContext

exception:頁面異常,可以通過它獲得異常的信息,對應的類型是java.lang.Throwable;

page:表示此JSP頁面,和java類中的this含義一樣

pageContext:表示此JSP的上下文,對應的類型是javax.servlet.jsp.PageContext

config:表示此JSP的servletconfig,對應的類型是javax.servlet.ServletConfig

其中pageContext, request, session, application為四個作用域對象。

2.request對象

這裡說說用他來傳值。

request.setAttribute("name","guo");
request.getRequestDispatcher("地址").forward(request,response);

在另外的頁子中可以接收:request.getAttribute("name");


3.session對象

session對象對應於HttpSession對象,在JSP中,page指令有一個屬性和session相關,這個屬性的名字也叫做session,倘若他的值被設置為false,
那麼在這個JSP頁面中就不能使用session。

注意這裡因為是內置對象,所以不用再生成,直接使用即可。

setAttribute(java.lang.String name, java.lang.Object value)

getAttribute(java.lang.String name) 返回值為object

4.application

application對象時一個對web應用有效的全局變量,他實現了ServletContext接口,注意他是全局的,也就是說所有的客戶端訪問的都是同一對象

setAttribute(java.lang.String name, java.lang.Object value)

getAttribute(java.lang.String name) 返回值為object

5.四個作用域對象的總結

如果把變量放到pageContext裡,就說明它的作用域是page,它的有效范圍只在當前jsp頁面裡,從把變量放到pageContext開始,到jsp頁面結束,你都可以使用這個變量。

如果把變量放到request裡,就說明它的作用域是request,它的有效范圍是當前請求周期。 所謂請求周期,就是指從http請求發起,到服務器處理結束,返回響應的整個過程。在這個過程中可能使

用forward的方式跳轉了多個jsp頁面,在這些頁面裡你都可以使用這個變量。


如果把變量放到session裡,就說明它的作用域是session,它的有效范圍是當前會話。 所謂當前會話,就是指從用戶打開浏覽器開始,到用戶關閉浏覽器這中間的過程。這個過程可能包含多個
請求響應。也就是說,只要用戶不關浏覽器,服務器就有辦法知道這些請求是一個人發起的,整個過程被稱為一個會話(session),而放到會話中的變量,就可以在當前會話的所有請求裡使用。

如果把變量放到application裡,就說明它的作用域是application,它的有效范圍是整個應用,整個應用是指從應用啟動,到應用結束,可以簡單理解為從服務器啟動,到服務器關閉 。


6.exception

exception對象是Throwable的實例,他表示的是JSP中的異常信息,注意exception這個隱含對象並非在所有的JSP頁面中都可以用,如果要使用
這個對象,必須將此JSP的page指令的isErrorPage屬性值設置為true。

他的使用我舉個例子:

error.jsp中:

設置他為錯誤頁面:<%@ page isErrorPage="true" %>

jsp代碼:<%
  Date date=new Date();
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
  String s=sdf.format(date);
  out.println("您出錯了,請您檢查");
  out.println("錯誤時間:"+s+"<br>");
  out.println("錯誤類型:"+exception);
  %>

web.xml文件中:

<error-page>
  <exception-type>java.lang.Throwable</exception-type>
  <location>/error.jsp</location>>
  </error-page>

通過上面的設置,整個網站的錯誤信息都可以集中到error.jsp中取處理。自己試著弄一個錯誤頁面:index.jsp

  <%
    int a=3;
    out.println(a/0);
    %>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved