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物件型別是PageContext,叫jsp的上下文物件
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物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。 待資料輸出完
JSP(三)JSP內建物件(上)
第三節 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