1. 程式人生 > >java基礎81 jsp的內建物件(網頁知識)

java基礎81 jsp的內建物件(網頁知識)

1、什麼是內建物件?

  在jsp開發中,會頻繁使用到一些物件,如:HttpSession,ServletContext,HttpServletRequest。
      如果每次使用這些物件時,都要去建立物件 顯示非常麻煩。所有sun公司就設計jsp時,在jsp頁面載入完畢後會自動幫助開發者建立好這些物件,而開發者只需要直接使用這些物件去呼叫方法即可,這些建立好的物件就叫內建物件。

舉例:

Servlet:
    HttpSession session = Request.getSession(true);(需要開發者動手做)
Jsp:
  Tomcat伺服器:
     HttpSession session 
= request.getSession(true);(不需要開發者動手做) 開發者只需要用session物件去呼叫相應的方法即可,比如:session.getId();

2、9大內建物件

內建物件名 對應型別
request      
response   
config            
application                
session                  
exception     
page         
out       
pageContext    
HttpServletRequest
HttpServletResponse
ServletConfig
ServletContext

HttpSession
Throwable
Object(this)
JspWriter
pageContext

2.1、Out 物件

  out物件是jspWrite類中的,相當於帶緩衝的PrintWriter
        printWriter:
             writer(內容):直接向瀏覽器寫出內容
        jspWriter
            writer(內容):向jsp緩衝區寫出內容

  當滿足以下條件之一,緩衝區內容就會寫出(如下面程式碼)
      1) 緩衝區滿了
      2) 重新整理緩衝區
      3) 關閉緩衝區
      4) 執行完jsp頁面

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" buffer="1kb" %>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>My JSP 'MyJsp.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22   </head>
23   <body>
24        <%
25           //方法1:頂部設定緩衝區的大小為1Kb(buffer="1kb"26            for(int i=1;i<=500;i++){
27            out.write("123");
28            }
29            //檢視緩衝區大小
30            System.out.println("當前緩衝區的大小:"+out.getBufferSize());
31            //檢視緩衝區剩餘大小
32            System.out.println("剩餘緩衝區大小:"+out.getRemaining());
33            //方法2:重新整理快取
34            //out.flush();
35         
36            response.getWriter().write("a"); //解析:方法1或2,都能讓123先輸出來,最後輸出a;如果兩者都去掉,那麼先輸出a,後輸出123.
37         %>
38   </body>
39 </html>

2.2、pageContext 物件

     PageContext物件型別是PageContextjsp的上下文物件

  2.2.1、可以獲取其他八個內建物件
 1 public class pageContext{
 2     public void _jspService(){
 3          //建立了物件
 4          HttpSession session=””…
 5          ServletConfig config=””….
 6          //把8個常見使用的內建物件封裝到了PageContext物件中了
 7          public void method(PageContext pageContext){
 8               //從pageContext物件中獲取其他八個內建物件
 9               JspWriter out=pageContext.getOut();
10               ....
11          }
12      }
13 }
   2.2.2、本身就是一個域物件

      ServletContext     context域物件
      HttpServletRequest    request域物件
      HttpSession    session域物件
      PageContext    page  域物件

      作用:儲存資料和獲取資料,用於共享資料

      #儲存資料
         1)預設情況下,儲存到page域:PageContext.setAttribute(“name”);
         2)可以向四個域物件儲存資料:PageContext.setAttribute(“name”,域範圍常量);

      #獲取資料
         1)預設情況,從page域獲取:PageContext.getAttribute(“name”);
         2)可以從4個域中獲取資料:PageContext.getAttribute(“name”,域範圍常量);
              域範圍常量
                    PageContext.PAGE_Scope
                    PageContext.REQUEST_SCOPE
                    PageContext.SESSION_SCOPE
                    PageContext.APPLICATION_SCOPE
         3)自動在四個域中搜索資料:PageContext.findAttribute(“name”);
順序:page域 ----> request域 ----> session域 ----> context域(application域)               注:請求轉發:request就有值;瀏覽器不關閉:session就有值;伺服器不關閉:context域(application域)就有值

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <html>
 4   <head>
 5     <title>pageContext物件</title>
 6   </head>
 7   <body>
 8     <%
 9         //1)可以獲取其他八個內建物件
10         response.getWriter().write("是否相等?"+(out==pageContext.getOut())+"<br/>");
11         response.getWriter().write("是否相等?"+(session==pageContext.getSession())+"<br/>");
12     %>
13     <%--
14          2)pageContext作為作用域物件使用
15              2.1可以往不同域物件存取資料
16     --%>
17     <%
18         //儲存資料,預設情況下,儲存在page域中
19         pageContext.setAttribute("message","page message");
20         pageContext.setAttribute("message","request message",pageContext.REQUEST_SCOPE);//儲存到request域中
21         pageContext.setAttribute("message", "session message",pageContext.SESSION_SCOPE);//儲存到session域中
22         pageContext.setAttribute("message","application message",PageContext.APPLICATION_SCOPE);//儲存到context域中
23         // request.setAttribute("message","request message");//等價於上面程式碼
24     %>
25     <%
26         //獲取資料
27         String message=(String)pageContext.getAttribute("message");
28         out.write(message);
29     %>
30     <%--
31         原則:
32         1)在哪個域中儲存資料,就必須在哪個域中取出資料!!!
33     --%>
34     <hr/>
35     <%=pageContext.getAttribute("message",pageContext.PAGE_SCOPE) %><br/>
36     <%=pageContext.getAttribute("message",pageContext.REQUEST_SCOPE) %><br/>
37     <%=pageContext.getAttribute("message",pageContext.SESSION_SCOPE) %><br/>
38     <%=pageContext.getAttribute("message",pageContext.APPLICATION_SCOPE) %><br/>
39     <hr/>
40     <%-- findAttribute():在四個域中自動搜尋資料
41         順序:page域-->request域--->session域--->application域
42     --%>
43         
44     <%=pageContext.findAttribute("message") %><br/>
45     <%=session.getAttribute("message") %>
46     <%
47         //轉發
48         //request.getRequestDispatcher("/pageContext2.jsp").forward(request, response);
49         response.sendRedirect("/pageContext2.jsp");
50     %>
51   </body>
52 </html>

3、jsp中的四個域物件

    PageContext       page域
    request           reuquest域
    session           session域
    application        context域

  1)域物件的作用
          儲存資料和獲取資料   ,用於資料共享.
  2)域物件方法
          SetAttribute(“name”,Object)儲存資料
          getAttribute(“name”)獲取資料
          removeAttribute(“name”)清除資料
  3)域物件的範圍
          Page域:只能在當前jsp頁面使用(當前頁面)
          Request域:只能在同一個請求中使用(轉發)
          Session域:只能在同一個會話(Seesion物件)中使用(私有的)
          Context域:只能在同一個文字應用中使用(全域性的)

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>My JSP 'pageContext3.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26     page域 <%=pageContext.getAttribute("message",PageContext.PAGE_SCOPE) %><br/>
27     reuest域 <%=pageContext.getAttribute("message",PageContext.REQUEST_SCOPE) %><br/>
28     session域 <%=pageContext.getAttribute("message",pageContext.SESSION_SCOPE) %><br/>
29     context域 <%=pageContext.getAttribute("message",pageContext.APPLICATION_SCOPE) %><br/>
30   </body>
31 </html>

相關推薦

java基礎81 jsp物件網頁知識

1、什麼是內建物件?   在jsp開發中,會頻繁使用到一些物件,如:HttpSession,ServletContext,HttpServletRequest。      如果每次使用這些物件時,都要去建立物件 顯示非常麻煩。所有sun公司就設計jsp時,在jsp頁面載入完畢後會自動幫助開發者建立好這些物件,

Java Web 程式設計與開發》讀書筆記——JSP程式設計基礎JSP物件

本篇內容為讀馬月坤、趙全明兩位老師編著清華大學出版社出版的《Java Web 程式設計與開發》的讀書筆記。之前讀了一天的人民郵電出版社的《JSP程式設計慕課版》,可能是我沒有結合視訊的緣故,感覺效果不好,因而換了這本書。 有關HTML和JS的東西直接略過了。 JSP程式設

JSP物件 1.out物件

JSP內建物件: 1.out物件  2.request物件  3.response物件  4.exception物件  5.config物件  6.page物件  7.session物件  8.application物件  9.pageContext物件 1.out物件:

JSP中的物件9個

9個內建物件  JSP中的內建物件(9個) 物件名                  &

JSP物件——out物件

out物件主要用來向客戶端輸出各種資料型別的內容,並且管理應用伺服器上的輸出緩衝區, 緩衝區預設值一般是8KB,可以通過頁面指令page來改變預設值。 在使用out物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。 待資料輸出完

JSPJSP物件

第三節  JSP內建物件(上) 目錄 -九大內建物件 JSP內建物件是Web容器建立的一組物件,不使用new就可使用。 常用:out,response,request,session,application 其他:config,Pag

java基礎81 jsp置對象網頁知識

什麽是 basepath 緬甸 exceptio 中文 bili sun公司 ESS pwrite 1、什麽是內置對象? 在jsp開發中,會頻繁使用到一些對象,如:HttpSession,ServletContext,HttpServletRequest。 如

Java基礎入門教程之JSP物件

JSP中一共預先定義了9個這樣的物件,分別為:application、config、request、response、out、session、exception、page、pagecontext。 1、application物件 application物件可將資訊儲存在伺服器中,直到

java web學習筆記Jsp物件

JSP共有以下9種基本內建元件:   request表示HttpServletRequest物件。它包含了有關瀏覽器請求的資訊,並且提供了幾個用於獲取cookie, header, 和session資料的有用的方法。     response表示HttpServletRes

JAVA WEB JSP物件作業

桂 林 理 工 大 學 實  驗  報  告 班級   軟體16-1班   學號 3162052051116  姓名 張識虔   同組實驗者     &

java-jsp物件

JSP中預先定義了9個這樣的物件,request,response,session,application,out,pageContext,config,page和exception。 request物件 request物件是javax.servlet.http.HttpServle

JSP指令碼的9個物件——config物件

本文摘自:李剛 著 《輕量級 Java EE企業應用實戰 Struts2+Spring+hibernate整合開發》         config 物件代表當前JSP 配置資訊,但JSP 頁面通常無須配置,因此也就不存在配置資訊。該物件在JSP 頁面中非常少用,但在Se

07-通過cookie儲存並讀取使用者登入資訊jsp物件

cookie.jsp <%@page import="java.net.URLDecoder"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <ht

實驗三 jsp物件part one

<script type="text/javascript"> function validatorloginName() {          var loginName=document.get.ElementById("uname"

JSP物件及常用方法

JSP九大內建物件作用域名 name 名稱 型別 作用域 request 請求物件 javax.servlet.ServleRequest Request

JSP物件的使用(一)

JSP九大內建物件是:request、response、session、application、out、pagecontext、config、page、exception。 JSP常用的內建物件是:out、request、response、session、application。 out物件用於向瀏覽器輸

八、JSP物件

JSP內建物件 一、jsp的九大內建物件 內建物件 代表意義

JSP物件的使用

JSP內建物件 一、JSP內建物件的概述 由於JSP使用Java作為指令碼語言,所以JSP將具有強大的物件處理能力,並且可以動態的建立Web頁面的內容。但Java語法在使用一個物件前,需要先例項化這個物件,其實這是一件比較繁瑣的事情。JSP為了簡化開發,提供了一些內建物件,用來實現很多JSP

JavaWeb學習----JSP物件詳解---九大內物件沒cook JavaWeb學習----JSP物件詳解

JavaWeb學習----JSP內建物件詳解 JSP共有以下9大內建物件: out request response session pageContext application config page exception 文章連結 -

JSP物件和session的生命週期

一/ JSP內建物件 * 內建物件 型別 作用域 * 1/ request javax.servlet.http.HttpServletRequest re