JSP內置對象及常用方法


jsp九大內置對象及四個作用域:

何為作用域

  先讓我們看看效果:

  大概流程是這樣的,我們訪問index.jsp的時候,分別對pageContext, request, session,application四個作用域中的變量進行累加。(當然先判斷這個變量是不是存在,如果變量不存在,則要把變量初始化成1)。計算完成后就從index.jsp執行forward跳轉到test.jsp。在test.jsp里再進行一次累加,然后顯示出這四個整數來。

  從顯示的結果來看,我們可以直觀的得出結論:

  page里的變量沒法從index.jsp傳遞到test.jsp。只要頁面跳轉了,它們就不見了。

  request里的變量可以跨越forward前后的兩頁。但是只要刷新頁面,它們就重新計算了。

  session和application里的變量一直在累加,開始還看不出區別,只要關閉瀏覽器,再次重啟瀏覽器訪問這頁,session里的變量就重新計算了。

    application里的變量一直在累加,除非你重啟tomcat,否則它會一直變大。

作用域規定的是變量的有效期限

  如果把變量放到pageContext里,就說明它的作用域是page,它的有效范圍只在當前jsp頁面里。

  從把變量放到pageContext開始,到jsp頁面結束,你都可以使用這個變量。

  如果把變量放到request里,就說明它的作用域是request,它的有效范圍是當前請求周期。

  所謂請求周期,就是指從http請求發起,到服務器處理結束,返回響應的整個過程。在這個過程中可能使用forward的方式跳轉了多個jsp頁面,在這些頁面里你都可以使用這個變量。

  如果把變量放到session里,就說明它的作用域是session,它的有效范圍是當前會話。

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

  如果把變量放到application里,就說明它的作用域是application,它的有效范圍是整個應用。

  整個應用是指從應用啟動,到應用結束。我們沒有說“從服務器啟動,到服務器關閉”,是因為一個服務器可能部署多個應用,當然你關閉了服務器,就會把上面所有的應用都關閉了。

  application作用域里的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。

  與上述三個不同的是,application里的變量可以被所有用戶共用。如果用戶甲的操作修改了application中的變量,用戶乙訪問時得到的是修改后的值。這在其他scope中都是不會發生的,page, request,session都是完全隔離的,無論如何修改都不會影響其他人的數據。

request常用方法

l獲得客戶機信息

 •getRequestURL方法返回客戶端發出請求時的完整URL。

 •getRequestURI方法返回請求行中的資源名部分。

 •getQueryString 方法返回請求行中的參數部分。

 •getRemoteAddr方法返回發出請求的客戶機的IP地址

 •getRemoteHost方法返回發出請求的客戶機的完整主機名

 •getRemotePort方法返回客戶機所使用的網絡端口號

 •getLocalAddr方法返回WEB服務器的IP地址。

 •getLocalName方法返回WEB服務器的主機名

 •getMethod得到客戶機請求方式

 

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) 重新定向客戶端的請求

 

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 setMaxInactiveInterval() 設置兩次請求間隔多長時間此SESSION被取消(ms)

 


jsp動作及作用
JSP共有以下6種基本動作:
    jsp:include:在頁面被請求的時候引入一個文件;
    jsp:useBean:尋找或者實例化一個JavaBean。;
    jsp:setProperty:設置JavaBean的屬性。;
    jsp:getProperty:輸出某個JavaBean的屬性;
    jsp:forward:把請求轉到一個新的頁面;
    jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM