亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp數據交互(一),九大內置對象

2019-11-14 15:10:02
字體:
來源:轉載
供稿:網友

 

九大內置對象

九大內置對象

內置對象

類型

說明

作用域

request

javax.servlet.ServletRequest

請求對象——在 一次請求/一個Request請求周期 中傳遞數據,請求結束后,數據不可訪問,用于頁面之間的值的傳遞

用戶請求期

response

javax.servlet.SrvletResponse

響應對象——用來響應客戶端請求并向客戶端輸出信息

頁面執行期

out

javax.servlet.jsp.JspWriter

輸出對象——表示輸出流,該流將作為請求的響應發送到客戶端

頁面執行期

session

javax.servlet.http.HttpSession

會話對象——在一個session會話周期中,用于存儲有關用戶會話的所有信息

會話周期

application

javax.servlet.ServletContext

應用程序對象——用于實現用戶之間的數據共享,負責提供應用程序在服務器中運行時的一些全局信息

整個程序運行期

pageContext

javax.servlet.jsp.PageContext

頁面上下文對象——此對象提供所有四個作用域層次的屬性查詢和修改能力,它也提供了轉發請求到其它資源和包含其他資源的方法

頁面執行期

page

javax.lang.Object

頁面對象——只在當前JSP頁面內有效,提供對網頁上定義的所有對象的訪問,其表示的就是頁面本身

頁面執行期

config

javax.servlet.ServletConfig

配置對象——是ServletConfig的實例,代理當前jsp頁面配置,提供配置信息

頁面執行期

Execpiton

javax.lang.Throwable

例外對象——此對象指JSP文件運行時所產生的例外對象,也就是JSP引擎在執行代碼時拋出的異常,此對象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true"%>”的JSP文件中使用,也就是說只有在page指令中具有屬性isErrorPage="true"時才有效

頁面執行期

 

jsp內置對象之Out對象

Out對象時一個輸出流,用來向客戶端輸出數據。Out對象用于各種數據的輸出。其常用方法如下。
1. out.PRint():輸出各種類型數據。
2.out.newLine():輸出一個換行符。
3.out.close():關閉流。

out 對象方法

返回類型

方法名稱

說明

void

clear()

清除輸出緩沖區的內容,但是不輸出到客戶端

void

clearBuffer()

清除輸出緩沖區的內容,并輸出到客戶端

void

close()

關閉輸出流,清除所有內容

void

flush()

輸出緩沖區里面的數據

int

getBufferSize()

獲取以kb為單位的目前緩沖區大小

int

getRemaining()

獲取以kb為單位的緩沖區中未被占用的空間大小

boolean

isAutoFlush()

是否自動刷新緩沖區

void

newLine()

輸出一個換行字符

void

print(Object)

將指定類型的數據輸出到Http流,不換行

void

println(Object)

將指定類型的數據輸出到Http流,并輸出一個換行符

Appendable

append(char c | CharSequence cxq, int start, int end | CharSequence cxq )

將一個字符或者實現了CharSequence接口的對象添加到輸出流的后面

jsp內置對象之request對象

  1.request的getParameter()方法是最為常用的,使用此方法可以獲得上一頁面的所提交的參數值、例如:注冊頁面(reginput.jsp)通過HTML表單為注冊提交頁面(reginfo.jsp)提交了兩個參數,

  名稱分別為name和pwd,通過調用request.getParameter("name")和request.getParameter("pwd")就可以獲取這兩個參數的值

   2.在注冊頁面中,出現了多個復選框,復選框的名字都是channel,在注冊提交頁面中使用getParameterValues("channel")方法就可以獲取一個置字符串是數組,可以該數組中存儲的是所有選中的

  復選框對應的值。

  3.request對象的setCharacterEncoding()方法用于設置字符集,可以用來解決中文亂碼問題,

  為什么會出現中文亂碼問題?

  常用字符集編碼有ASCII,ISO-8859-1,GB2312,GBK,Unicode,UTF-8等,java在其內部使用Unicode字符集來表示字符,這樣就存在Unicode字符集和本地字符集進行轉換的過程。在Web應用中,

  通常都包括了瀏覽器,Web服務器,Web應用程序和數據庫等部分,每一部分都有可能使用不同的字符集,從而導致字符數據在各種不同的字符集之間轉換時,出現亂碼問題。

request 對象方法

返回類型

方法名稱

說明

Object

getAttribute(String name)

返回由name指定的屬性值,該屬性不存在時返回null

Enumeration

getAttributeNames()

返回request對象的所有屬性名稱的集合

String

getAuthType()

返回用來保護servlet的認證方法的名稱,未受保護時返回null

String

getCharacterEncoding()

返回請求中的字符編碼方法,可以在response對象中設置

int

getContentLength()

返回請求的BODY的長度,不能確定長度時返回-1??梢栽趓esponse中設置

String

getContentType()

返回在response中定義的內容類型

String

getContentPath()

返回請求的路徑

Cookie[]

getCookies()

返回客戶端所有的Cookie的數組

Enumeration

getHeaderNames()

返回所有HTTP頭的名稱的集合

Enumeration

getHeaders(String name)

返回指定HTTP頭的所有值的集合

String

getHeader(String name)

返回指定名稱的HTTP頭的信息

long

getDateHeader(String name)

返回指定名稱的Data類型的HTTP頭的信息

int

getIntHeader(String name)

返回指定名稱的Int類型的HTTP頭的信息

ServletInputStream

getInputStream()

返回請求的輸入流

Locale

getLocale()

返回當前頁的Locale對象(此對象有兩個方法,分別是getDisplayCountry和getDisplayLanguage),可以在response中設定

Enumeration

getLocales()

返回請求中所有的Locale對象的集合

String

getLocalName()

獲取響應請求的服務器端主機名

String

getLocalAddr()

獲取響應請求的服務器端地址

int

getLocalPort()

獲取響應請求的服務器端端口

String

getMethod()

獲取客戶端向服務器端發送請求的方法(GET、POST)

String

getParameter(String name)

獲取客戶端發送給服務器端的參數值

Map

getParameterMap()

該方法返回包含請求中所有參數的一個Map對象

Enumeration

getParameterNames()

返回請求中所有參數的集合

String[]

getParameterValues(String name)

獲得請求中指定參數的所有值

String

getQueryString()

返回get方法傳遞的參數字符串,該方法不分解出單獨的參數

String

getPathInfo()

取出請求中處于ServletPath和QueryString之間的額外信息

String

getPathTranslated()

返回用getPathInfo()方法取得的路徑信息的實際路徑

String

getProtocol()

返回請求使用的協議。可以是HTTP1.1或者HTTP1.0

BufferedReader

getReader()

返回請求的輸入流對應的Reader對象,該方法和getInputStream()方法在一個頁面中只能調用一個

String

getRemoteAddr()

獲取發出請求的客戶端ip地址

String

getRemoteHost()

獲取發出請求的客戶端主機名

String

getRemoteUser()

返回經過客戶端驗證的用戶名,未經驗證返回null

int

getRemotePort()

返回發出請求的客戶端主機端口

String

getRealPath(String path)

返回給定虛擬路徑的物理路徑

RequestDispatcher

getRequestDispatcher(String path)

按給定的路徑生成資源轉向處理適配器對象(轉發)

String

getRequestedSessionId()

返回請求的session的標識

String

RequestURI()

返回發出請求的客戶端地址,但是不包括請求的參數字符串

StringBuffer

getRequestURI()

返回響應請求的服務器端地址

String

getScheme()

獲取協議名稱,缺省值為HTTP協議

String

getServerName()

返回響應請求的服務器名稱

String

getServletPath()

獲取客戶端所請求的腳本文件的文件路徑

int

getServerPort()

獲取響應請求的服務器端主機端口號

void

removeAttribute(String name)

在屬性列表中刪除指定名稱的屬性

void

setAttribute(String name, Object value)

在屬性列表中添加/刪除指定的屬性

void

setCharacterEncoding(String charset)

設置請求的字符編碼格式

HttpSession

getSession() | getSession(boolean create)

獲取session,如果create為true,在無session的情況下創建一個

boolean

isRequestedSessionIdFromCookie()

檢查請求的會話ID是否為通過Cookie傳入

boolean

isRequestedSessionIdFromURL()

檢查請求的會話ID是否為通過URL傳入

boolean

isRequestedSessionIdValid()

檢查請求的會話ID是否仍然有效

boolean

isSecure()

檢查請求是否使用安全鏈接,如果HTTPS等

boolean

isUserInRole(String role)

檢查已經通過驗證的用戶是否在是role所指定的角色

Principal

getUserPrincipal()

返回包含用戶登陸名的一個java.security.Principal對象

 

  JSP內置對象response

    response對象:

    1.對客戶端的請求作出回應,將Web服務器處理后的結果發回客戶端。

    2.屬于javax.servlet.HttpServletResponse接口的實例。

response 對象方法

返回類型

方法名稱

說明

void

addCookie(Cookie cookie)

添加一個Cookie對象,保存客戶端信息

void

addDateHeader(String name, long value)

添加一個日期類型的HTTP頭信息,覆蓋同名的HTTP頭信息

void

addHeader(String name, String value)

添加一個HTTP頭,覆蓋同名的舊HTTP頭

void

addIntHeader(String name, int value)

添加一個整型的HTTP頭,覆蓋同名的舊HTTP頭

boolean

containsHeader(String name)

判斷指定的HTTP頭是否存在

String

encodeRedirectURL(String url)

對sendRedirect()方法使用的URL進行編碼

String

encodeURL(String url)

將URL予以編碼,回傳包含session ID的URL

void

flushBuffer()

強制把當前緩沖區的內容發送到客戶端

int

getBufferSize()

取得以kb為單位的緩沖區大小

String

getCharacterEncoding()

獲取響應的字符編碼格式

String

getContentType()

獲取響應的類型

Locale

getLocale()

獲取響應的Locale對象

ServletOutputStream

getOutputStream()

返回客戶端的輸出流對象

PrintWriter

getWriter()

獲取輸出流對應的writer對象

boolean

isCommitted()

判斷服務器端是否已經將數據輸出到客戶端

void

reset()

清空buffer中的所有內容

void

sendError(int xc | int xc, String msg)

發送錯誤,包括狀態碼和錯誤信息

void

sendRedirect(String locationg)

把響應發送到另外一個位置進行處理(轉發)

void

setBufferSize(int size)

設置以kb為單位的緩沖區大小

void

setCharacterEncoding(String charset)

設置響應使用的字符編碼格式

void

setContentLength(int length)

設置響應的BODY長度

void

setContentType(String type)

設置響應的類型

void

setDateHeader(String name, long value)

設置指定名稱的Data類型的HTTP頭的值

void

setHeader(String name, String value)

設置指定名稱的HTTP頭的值

void

setIntHeader(String name, int value)

設置指定名稱的int類型的HTTP頭的值

void

setStatus(int xc)

設置響應狀態碼,新值會覆蓋當前值

 

    轉發與重定向

      先給你們看看圖!!!!!

        轉發圖解:

      

 

      重定向圖解:

      

 

如果想從一個頁面重定向到另一個目標頁面,這個時候使用的是轉發操作,

    request.getRequestDispatcher("main.jsp").forward(request,response);

  重定向和轉發:

    01.從客戶端發送的請求數量來看,重定向是向服務器發送了兩次請求。而轉發是服務器內部進的操作,只發送了一次請求,request對象中的數據可以保留 。

    02.從URL顯示的角度來說:重定向這兩次請求都是直接受瀏覽器干預的。也就是說重定向后url地址欄里看到的地址發生變化了。而轉發是由服務器內部從一個資源頁面定位到另一個資源頁面,并沒有經過瀏覽器干預,所以url地址欄沒有發生改變。

  結論:要想在request中保存數據,那么就使用轉發,否則使用重定向。

 

  重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定  向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由于重定向方式產生了一個新的請求,所以經過一次重定向后,request內的對象將無法使用。
          怎么選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由于在轉發之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。

    轉發和重定向的區別?。。?!

        

      不要僅僅為了把變量傳到下一個頁面而使用session作用域,那會無故增大變量的作用域,轉發也許可以幫助你解決這個問題。
      重定向:以前的request中存放的變量全部失效,并進入一個新的request作用域。
      轉發:以前的request中存放的變量不會失效,就像把兩個頁面拼到了一起。

   1. 重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,
    當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由于重定向方式產生了一個新的請求,所以經過一次重定向后,request內的對象將無法使用。
          怎么選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由于在轉發之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。 

  
   2. 不要僅僅為了把變量傳到下一個頁面而使用session作用域,那會無故增大變量的作用域,轉發也許可以幫助你解決這個問題。
    重定向:以前的request中存放的變量全部失效,并進入一個新的request作用域。
    轉發:以前的request中存放的變量不會失效,就像把兩個頁面拼到了一起。

 

  

    重定向過程:

          客戶瀏覽器發送http請求----》

          web服務器接受后發送302響應要求客戶瀏覽器發送一個新的http請求----》

          客戶端瀏覽器接受此響應后在發送一個新的http請求到服務器----》

          服務器根據此請求尋找資源并發送給客戶,

          它可以重定向到任意URL,

          不能共享request范圍內的數據。

      轉發過程:

          客戶瀏覽器發送http請求----》

          web服務器接受此請求后調用內部的一個方法在容器內部完成請求處理和轉發動作----》

          將目標資源發送給客戶,它只能在同一個web應用中使用,可以共享request范圍內的數據。

      怎么選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,

      所以他是第一選擇。但是由于在轉發之后,瀏覽器中URL仍然指向開始頁面,

  此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。

 

 

    JSP內置對象session

        還是老樣子先看看圖:

          

        

    Session的使用

  TTP協議是無狀態的,即信息無法通過HTTP協議本身進傳遞。為了跟蹤用戶的操作狀態,asp應用SESSION對象。JSP使用一個叫HttpSession的對象實現同樣的功能。HTTPSession 是一個建立在cookies 和URL-rewriting上的高質量的界面。

  Session的信息保存在服務器端,Session的id保存在客戶機的cookie中。事實上,在許多服務器上,如果瀏覽器支持的話它們就使用cookies,但是如果不支持或廢除了的話就自動轉化為URL-rewriting,session自動為每個流程提供了方便地存儲信息的方法。

  Session一般在服務器上設置了一個30分鐘的過期時間,當客戶停止活動后自動失效。Session 中保存和檢索的信息不能是基本數據類型如 int, double等,而必須是java的相應的對象,如Integer, Double。

  Httpsession具有如下API:

  getId 此方法返回唯一的標識,這些標識為每個session而產生。當只有一個單一的值與一個session聯合時,或當日志信息與先前的sessions有關時,它被當作鍵名用。

  GetCreationTime 返回session被創建的時間。最小單位為千分之一秒。為得到一個對打印輸出很有用的值,可將此值傳給Date constructor 或者GregorianCalendar的方法setTimeInMillis。

  GetLastaccessedTime 返回session最后被客戶發送的時間。最小單位為千分之一秒。

  GetMaxInactiveInterval 返回總時間(秒),負值表示session永遠不會超時。

  getAttribute 取一個session相聯系的信息。(在jsp1.0中為 getValue)

  Integer item = (Integer) session.getAttrobute("item") //檢索出session的值并轉化為整型

  setAttribute 提供一個關鍵詞和一個值。會替換掉任何以前的值。(在jsp1.0中為putValue)

  session.setAttribute("ItemValue", itemName); // ItemValue 必須不是must簡單類型

  在應用中使用最多的是getAttribute和setAttribute。現以一個簡單的例子來說明session的應用,  test1.jsp(信息寫入session),test2.jsp(從session讀出信息)。

 1 test1.jsp 2  3 <HTML> 4  5 <HEAD> 6  7 <TITLE> Document </TITLE> 8  9 </HEAD>10 11 <BODY BGCOLOR="#FFFFFF"12 session.setAttribute("str",new String(“this is test”));13 </BODY>14 15 </HTML>16 test2.jsp17 <HTML>18 19 <HEAD>20 <TITLE> New Document </TITLE>21 22 </HEAD>23 24 <BODY BGCOLOR="#FFFFFF"25 <%26 String ls_str=null;27 ls_str=(String)session.getAttribute("str");28 out.println(“從session里取出的值為:”+ls_str);29 %30 </BODY>31 32 </HTML> 

  

順便補個圖

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂av综合网| 亚洲人高潮女人毛茸茸| 欧美高清视频在线观看| 最近免费中文字幕视频2019| 日韩av在线导航| 亚洲精品资源美女情侣酒店| 最新国产成人av网站网址麻豆| 国内精品久久久久伊人av| 久久久亚洲影院| 亚洲一区二区福利| 在线视频日韩精品| 最近2019中文字幕一页二页| 欧美xxxx18国产| 欧美视频在线看| 97久久超碰福利国产精品…| 久久亚洲精品中文字幕冲田杏梨| 国产精品最新在线观看| 日韩av在线看| 福利视频导航一区| 国产精品视频一区二区高潮| 在线观看精品国产视频| 日韩欧美亚洲一二三区| 精品人伦一区二区三区蜜桃网站| 欧美特黄级在线| 亚洲乱码一区av黑人高潮| 18性欧美xxxⅹ性满足| 欧美日韩国产一区二区三区| 亚洲国产精品女人久久久| 欧美日韩成人在线视频| 尤物yw午夜国产精品视频| 狠狠综合久久av一区二区小说| 8050国产精品久久久久久| 日韩中文字幕亚洲| 欧美又大又粗又长| 精品一区二区电影| 国产日本欧美一区二区三区| 青青草国产精品一区二区| 成人天堂噜噜噜| 欧美日韩视频免费播放| 久久99精品久久久久久琪琪| 国产日韩在线视频| 久久精品成人欧美大片古装| 国产中文字幕91| 欧美www视频在线观看| 欧美一区二区色| 午夜精品蜜臀一区二区三区免费| 欧美成人精品一区二区三区| 丝袜美腿精品国产二区| 国产精品国产三级国产aⅴ浪潮| 日韩激情在线视频| 久久精品中文字幕一区| 最近更新的2019中文字幕| 国产自产女人91一区在线观看| 青青精品视频播放| 久久精品小视频| 国产91免费看片| 欧美最猛性xxxxx亚洲精品| 国产精品情侣自拍| 日韩电影免费观看在线| 91精品久久久久久久久久久| 日韩av123| 日韩精品中文字幕视频在线| 亚洲va码欧洲m码| 日韩视频免费中文字幕| 欧美黑人xxxⅹ高潮交| 国产精品视频久| 国产精品久久久久9999| 国产suv精品一区二区三区88区| 欧美另类极品videosbest最新版本| 久久成人亚洲精品| 亚洲色图13p| 在线免费观看羞羞视频一区二区| 日本久久久久久久久| 91老司机在线| 一区二区三区高清国产| 国产一区二区三区高清在线观看| 欧美亚洲在线观看| 26uuu另类亚洲欧美日本一| 国产激情久久久| 亚洲精品丝袜日韩| 三级精品视频久久久久| 久久久国产视频| 自拍偷拍亚洲欧美| 九九九久久久久久| 亚洲第一福利网站| 久久夜精品va视频免费观看| 萌白酱国产一区二区| 成人黄色片在线| 一区二区欧美亚洲| 国产福利视频一区二区| 日韩中文字幕在线免费观看| 国产精品久久久久aaaa九色| 国产玖玖精品视频| 久久久久久久久国产精品| 国产91免费看片| www.亚洲一二| 黑人巨大精品欧美一区免费视频| 91亚洲精品在线| 亚洲欧美在线免费| 亚洲aⅴ日韩av电影在线观看| 国产精品va在线播放| 久久人人爽人人爽爽久久| www.久久久久| 亚洲视频在线观看网站| 亚洲аv电影天堂网| 91精品国产91久久| 伊人久久免费视频| 日韩精品黄色网| 国产亚洲精品美女| 亚洲国产精品国自产拍av秋霞| 成人免费在线视频网站| 欧美日韩国产专区| 成人午夜激情免费视频| 欧美中文在线视频| www.亚洲男人天堂| 日韩精品免费在线播放| 久久夜色精品国产欧美乱| 国产日韩欧美一二三区| 456亚洲影院| 亚洲国内精品在线| 国产精品国产三级国产专播精品人| 亚洲成人激情图| 一本一道久久a久久精品逆3p| 亚洲一区二区三区毛片| 欧美日韩中文字幕综合视频| 激情成人中文字幕| 欧美日韩在线第一页| 日韩黄色高清视频| 精品国产91久久久久久老师| 97久久精品国产| 色婷婷综合成人av| 日韩视频免费观看| 欧美成人精品三级在线观看| 欧美日韩亚洲91| 2023亚洲男人天堂| 国产在线日韩在线| 97不卡在线视频| 正在播放欧美一区| 91在线视频九色| 国产一区二区丝袜高跟鞋图片| 中文字幕日韩av电影| 中文字幕综合一区| 亚洲精品久久久久久久久久久久久| 欧美乱大交xxxxx另类电影| 成人a视频在线观看| 精品视频在线观看日韩| 尤物九九久久国产精品的分类| 欧美专区在线视频| 97国产精品视频人人做人人爱| 欧美高清激情视频| 国产成人在线一区二区| 午夜精品在线观看| 久久精品国产久精国产一老狼| 欧美二区在线播放| 亚洲电影第1页| 成人av番号网| 亚洲精品电影在线| 亚洲欧美第一页| 亚洲精品美女网站| 成人福利视频在线观看| 欧美日韩一区二区在线播放| 日韩欧美在线看| 国产精品亚洲网站| 中文字幕免费精品一区高清|