JAVA Web基礎(chǔ)學(xué)習(xí)---JSP(二)

JSP內(nèi)置對象

JSP內(nèi)置對象是Web容器創(chuàng)建的一組對象,不使用new關(guān)鍵字就可以使用的內(nèi)置對象,一共有9種內(nèi)置對象,
分別為:out 亮曹、 request 、 response 秘症、 session 照卦、 applicationPage 、 pageContext 乡摹、 exception 役耕、 config
其中常用的有:out 、 request 聪廉、 response 瞬痘、 session 故慈、 application
不太常用的對象:Page 、 pageContext 框全、 exception 察绷、 config

1.out對象

out對象是JspWriter類的實例,是向客戶端(這里指瀏覽器)輸出內(nèi)容的常用對象津辩。
常用方法
· void println()向客戶端打印字符
· void clear()清除緩沖區(qū)的內(nèi)容拆撼。如果在flush之后調(diào)用,會拋出異常
· void clearBuffer() 也是清除緩沖區(qū)內(nèi)容喘沿,但在flush之后不會拋出異常
· void flush()將緩沖區(qū)內(nèi)容輸出到客戶端
· int getRemaining()返回緩沖區(qū)還剩余多少可用
· int getBufferSize()返回緩沖區(qū)的大姓⒍取(字節(jié)數(shù)),如不設(shè)緩沖區(qū)則為0
· boolean isAutoFlush()返回緩沖區(qū)滿時摹恨,是否自動清空緩沖區(qū)
· void close()關(guān)閉輸出流

2.request對象

request對象表示客戶端的請求,客戶端的請求信息被封裝在request對象中,通過他才能了解到客戶的需求,然后做出響應(yīng),他是HttpServletRequest類的實例,request對象具有請求域,即完成客戶端的請求之前,該對象一直有效.
常用方法

  1. String getParameter(String name)返回name指定參數(shù)的參數(shù)值(用戶名,密碼)
  2. Stringp[] getParameterValues(String name)返回包含參數(shù)name的所有值數(shù)組(復(fù)選框)
  3. void setAttribute(String,Object):存儲此請求中的屬性
  4. object getAttribute(String name)返回指定屬性的屬性值
  5. String getContentType():得到請求體的MIME類型
  6. String getProtocol()返回請求用的協(xié)議類型以版本號
  7. String getServerName():返回接受請求的服務(wù)器主機(jī)名

8.int getServerPort():返回服務(wù)器接受此請求所用的端口號
9.String getCharacterEncoding():返回字符編碼方式
10.void setCharacterEncodign():設(shè)置請求的字符編碼方式在server.xml的<connector></connector>內(nèi)添加 URIEncoding="UTF-8"
11.int getContentLength():返回請求體的長度(以字節(jié)數(shù))
12.String getRemoteAddr():返回發(fā)送此請求的客戶端IP地址
13.String getRealPath(String path):返回虛擬路徑的真實路徑

下面通過一個小例子.看一下實現(xiàn)結(jié)果:
首先在項目中新建一個jsp文件,命名為reg.jsp,用于創(chuàng)建一個注冊界面,把輸出字符編碼更改為utf-8,如下圖:


image.png

使用表單方式創(chuàng)建界面結(jié)構(gòu),程序如下圖:


image.png

新建一個request.jsp文件,用于接收表單傳輸?shù)膬?nèi)容并測試request對象方法,程序代碼如下:
image.png

實現(xiàn)結(jié)果如下:
image.png

點擊登錄之后,運行結(jié)果如下圖:


image.png

response對象

respones對象包含了響應(yīng)客戶請求的有關(guān)信息,但在JSP中很少直接到它,它是HttpServletResponse類的實例,response對象具有頁面的作用域,即訪問一個頁面時,該頁面的response對象只能對這次訪問有效,其他的頁面response對象對當(dāng)前頁面無效
常用方法:
String getCharacterEncoding( ) 返回響應(yīng)用的是何種字符編碼
void setContentType (String type) 設(shè)置響應(yīng)的MIME類型
PrintWriter getWriter( ) 返回可以向客戶端輸出字符的一個對象(注意比較:PrintWriter 與內(nèi)置out對象的區(qū)別)
sendRedirect(java.lang.String location) 重新定向客戶端的請求
測試代碼如下所示:

image.png

image.png

有圖可見,雖然out對象的輸出程序代碼寫在前面,但是顯示在由PrintWriter getWriter( )定義的outer對象后面.可見其兩者的優(yōu)先關(guān)系.
請求轉(zhuǎn)發(fā)與請求重定向
1.請求重定向:
客戶端行為筋岛,response.sendRedirect(),從本質(zhì)上講等同于兩次請求,前一次的請求對象不會保存晒哄,地址欄的URL地址會發(fā)成改變睁宰!
2.請求轉(zhuǎn)發(fā):
服務(wù)器行為,request.getRequestDispatcher().forward(request,response);是一次請求寝凌,轉(zhuǎn)發(fā)后請求對象會保存柒傻,地址欄的URL地址不會發(fā)成改變!

session對象

session介紹
1.1 session表示客戶端與服務(wù)端的一次會話
1.2 Web中的session指的是用戶在瀏覽某個網(wǎng)站的時候,從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時間,也就是用戶瀏覽這個網(wǎng)站所花費的時間
1.3 從上述定義中可以看到,session實際上是一個特定的時間概念
session保存在服務(wù)器內(nèi)存中较木,并未不同用戶保存不同session
session對象
session對象是一個JSP內(nèi)置對象
session對象在第一個JSP頁面被裝載時自動創(chuàng)建,完成會話期管理
從一個客戶打開瀏覽器并連接服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個服務(wù)器結(jié)束,被稱為一個會話
當(dāng)一個客戶訪問一個服務(wù)器時,可能會在服務(wù)器的幾個頁面之間切換,服務(wù)器應(yīng)當(dāng)通過某種方法知道這是個客戶,就需要session對象
session對象是HttpSession類的實例
常用方法
session對象常用方法
long getCreationTime():返回創(chuàng)建SESSION創(chuàng)建時間
public String getId():返回SESSION創(chuàng)建時JSP引擎為他設(shè)的唯一ID號
public Object setAttribute(String name,Object value):使用指定名稱將對象綁定到此會話
public Object getAttribute(String name):返回與此會話中的指定名稱綁定在一起的對象,如果沒有對象綁定在改名下,則返回null
String[] getValueNames()"返回一個包含此SESSION中所有可用屬性的數(shù)組
int getMaxInactiveInterval():返回兩次請求間隔多長時間此SESSION被取消(單位秒)
測試程序如下:

image.png

頁面結(jié)果如下:
image.png

當(dāng)設(shè)置了session最大生存期限為10秒時,點擊跳轉(zhuǎn)到session2,實現(xiàn)如下圖:
image.png

可見ID編號變了,說明這是第二次會話.
當(dāng)取消session最大生存期限后,結(jié)果如下圖:
image.png

可見ID號相同,用戶名均存在,是同一次會話.
session生命周期
創(chuàng)建->活動->銷毀

  1. 創(chuàng)建
    當(dāng)客戶端第一次訪問某個jsp或者servlet時候,服務(wù)器會為當(dāng)前會話創(chuàng)建一個sessionID,每次客戶端向服務(wù)端發(fā)送請求時,都會將此sessionID攜帶過去,服務(wù)端會對此sessionId進(jìn)行校驗,會判斷是否是同意會話
  2. 活動
    2.1 某次會話當(dāng)中通過超鏈接打開的新頁面屬于同一次會話
    2.2 只要當(dāng)前會話頁面沒有全部關(guān)閉,重新打開新的瀏覽器窗口訪問同意項目時屬于同一會話
    2.3 除非本次會話的所有頁面都關(guān)閉后在重新訪問某個Jsp或者Servlet將會創(chuàng)建新的會話
    注意事項:
    注意原有會話還存在,只是這個舊的sessionID任然存在與服務(wù)端,只不過再也沒有客戶端攜帶它然后交與服務(wù)端校驗
    1. 銷毀
      session銷毀有三種方式
      3.2 調(diào)用了session.invalidate() 3.3 session超時(過期)
      3.4 服務(wù)器重新啟動
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末红符,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伐债,更是在濱河造成了極大的恐慌预侯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峰锁,死亡現(xiàn)場離奇詭異萎馅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)虹蒋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門糜芳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人魄衅,你說我怎么就攤上這事峭竣。” “怎么了晃虫?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵皆撩,是天一觀的道長。 經(jīng)常有香客問我哲银,道長毅访,這世上最難降的妖魔是什么沮榜? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任盘榨,我火速辦了婚禮喻粹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘草巡。我一直安慰自己守呜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布山憨。 她就那樣靜靜地躺著查乒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪郁竟。 梳的紋絲不亂的頭發(fā)上玛迄,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機(jī)與錄音棚亩,去河邊找鬼蓖议。 笑死,一個胖子當(dāng)著我的面吹牛讥蟆,可吹牛的內(nèi)容都是我干的勒虾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘸彤,長吁一口氣:“原來是場噩夢啊……” “哼修然!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起质况,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惜索,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后煞肾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窒盐,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年潭陪,在試婚紗的時候發(fā)現(xiàn)自己被綠了雄妥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡依溯,死狀恐怖老厌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黎炉,我是刑警寧澤枝秤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站慷嗜,受9級特大地震影響淀弹,放射性物質(zhì)發(fā)生泄漏丹壕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一薇溃、第九天 我趴在偏房一處隱蔽的房頂上張望菌赖。 院中可真熱鬧,春花似錦沐序、人聲如沸琉用。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邑时。三九已至,卻和暖如春特姐,著一層夾襖步出監(jiān)牢的瞬間晶丘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工唐含, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留浅浮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓觉壶,卻偏偏與公主長得像脑题,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铜靶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件叔遂,本...
    java日記閱讀 3,449評論 0 13
  • 0. 引言 學(xué)習(xí)Jsp的目的是為了解技術(shù)從前后端強(qiáng)耦合到前后端分離的過程,增加自己的技術(shù)積淀争剿。了解并且體會這個過程...
    付凱強(qiáng)閱讀 1,210評論 0 5
  • 一已艰、jsp定義及作用 JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)...
    yzw12138閱讀 1,232評論 0 0
  • JAVA相關(guān)基礎(chǔ)知識 1蚕苇、面向?qū)ο蟮奶卣饔心男┓矫?1.抽象: 抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面哩掺,以...
    yangkg閱讀 665評論 0 1
  • 前言 生命在前行中頓悟蹬碧,歲月在積累中生香舱禽。無論何種事業(yè),都要日積月累恩沽,平凡的工作也要努力做誊稚,每天不斷提高。 (一)...
    金奇老師閱讀 630評論 0 0