《Spring MVC學習指南》讀書筆記--附錄C JavaServer Pages

C.1 JSP概述

當一個JSP頁面第一次被請求時惶傻,容器會生成一個java類挖胃。該類實現(xiàn)JspPage或其子接口HttpJspPage辽剧。而JspPage是javax.servlet.Servlet的子接口族淮。所以每一個JSP頁面實現(xiàn)類都是一個servlet椭迎。

C.2 注釋

<%-- --%> JSP注釋
<!-- --> HTML注釋

C.3 內(nèi)置對象

這些對象不用實例化彰阴,直接就可以使用瘾敢。

request     --     javax.servlet.http.HttpServletRequest
response     --     HttpServletResponse
out     --     javax.servlet.jsp.JspWriter (功能上和Response.get)
session     --     javax.servlet.http.HttpSession
application     --     javax.servlet.ServletContext
config     --     javax.servlet.ServletConfig
pageContext     --     javax.servlet.jsp.PageContext
page     --     javax.servlet.jsp.HttpJspPage
exception     --     java.lang.Throwable

一些方法:

     //獲取request中header名字集合,可用Enumeration<String>接收
     request.getHeaderNames() 
     //獲取header參數(shù)的具體值 
     request.getHeader(String header)     
     response.getBufferSize()
     session.getId()
     config.getServletName()
     application.getServletInfo()

C.4 指令

指令知識JSP轉(zhuǎn)換器如何翻譯JSP頁面為Servlet尿这,其中最重要的是page和include指令簇抵。

C.4.1 page指令

語法格式:

<%@ page attribute1="value1" attribute2="value2" ...%>

page屬性列表:

  • import 導入java類
  • session 是否加入會話管理
  • buffer 定義out的緩沖大小
  • autoFlush 為True表示緩沖區(qū)滿時自動寫入輸出流
  • isThreadSafe 線程安全級別,不推薦使用
  • info
  • errorPage 定義錯誤處理頁面
  • isErrorPage 標識本頁是一個錯誤處理頁面
  • language 值為java

C.4.2 include指令

<%@ include file="url"%>
JSP轉(zhuǎn)換器處理include指令時射众,將指令替換為指令所包含文件的內(nèi)容正压。
.jspf文件、html文件等常被include

C.5腳本元素

一個腳本程序是以<%開始以%>結(jié)束的java代碼塊责球。
定義在一個腳本的變量焦履,可以在后續(xù)的腳本程序中使用。

C.5.1 表達式

以<%=開始雏逾,以%>結(jié)束嘉裤。會被jsp容器執(zhí)行。實際上會用out對象打印出結(jié)果栖博。
如:
Today is <%=java.util.Calendar.getInstance().getTime()%>
無需分號結(jié)尾.

C.5.2 聲明

聲明在JSP頁面中使用的方法和變量屑宠。以<%!開始,并以%>結(jié)束仇让。
(聲明方法是包括方法體的)
可以通過聲明來重寫類的(JSP頁面生成的servlet類)init和destroy方法典奉。

<%!
  public void jspInit(){
       System.out.println("index.jsp jspInit...");
  }
  public void jspDestroy(){
       System.out.println("index.jsp jspDestroy...");
  }
%>

C.5.3 禁用腳本元素

“隨著JSP 2.0對表達式語言的加強,推薦的實踐是:在JSP頁面中用EL訪問服務器端對象且不寫JAVA代碼丧叽∥谰粒”(?)

<jsp-property-group>
     <url-pattern>*.jsp</url-pattern>
     <scripting-invalid>true</scripting-invalid >
</jsp-property-group>

C.6 動作

useBean\setProperty\getProperty

<jsp:useBean id="employee" class="entity.Employee"></jsp:useBean>
<jsp:setProperty property="firstName" name="employee" value="chen"/>
first name:<jsp:getProperty property="firstName" name="employee"/>

include動作與include指令的區(qū)別:
對于include指令,資源引入發(fā)生在頁面轉(zhuǎn)換時踊淳,即當JSP容器轉(zhuǎn)換頁面生成Servlet時假瞬。
而include動作,資源引入發(fā)生在請求頁面時,故可以傳遞參數(shù)脱茉。
還有其他……未完善

forward動作
轉(zhuǎn)向其他資源:

<jsp:forward page="useBeanTest.jsp">
    <jsp:param name="" value=""/>
</jsp:forward>

C.7 錯誤處理

可將一個JSP頁面定義為錯誤處理頁面剪芥,只需設(shè)置<%@page isErrorPage="true"%>
設(shè)置一個頁面的錯誤處理頁面:<%@page errorPage="errorHandler.jsp"%>
這樣當該jsp頁面拋出異常時,便會跳轉(zhuǎn)到錯誤頁面處理琴许,當網(wǎng)頁url不變税肪,輸出為頁面處理程序的輸出,
不再會輸出難以理解的信息榜田。

C.8 小結(jié)

JSP隱身對象: (九大對象)

  • out
  • session
  • request
  • response
  • exception
  • application
  • page
  • config
  • pageContext

3大語法元素:

  1. 指令:
    <%@page attribute="value"%>
    <%@ include file="url"%>
  2. 腳本元素
    <% %>腳本
    <%= %>表達式
    <%! %>聲明
  3. 動作
//bean
<jsp:useBean name="" class=""></jsp:useBean>
<jsp:setProperty name="" property="" vlaue=""/>
<jsp:getProperty name="" property=""/>
//include動作:
<jsp:include page="">
     <jsp:param name="" value=""/>
</jsp:include>
forward動作:
<jsp:forward page="">
     <jsp:param name="" value="">
</jsp.forward>

其他:

  1. 新增加JSP頁面后益兄,并不需要重啟Tomcat服務器。

  2. 解決JSP頁面中文亂碼問題:
    <%@page contentType="text/html;charset=utf-8"%>

  3. Servlet的缺點:

  • html是由以字符串形式輸出的串慰。這使得處理response響應非常繁瑣。
  • 頁面形式的一點變化都要重新編譯

備注

第一次用MarkDown寫文章唱蒸,確實強大邦鲫,排版很方便、很美觀神汹。棒棒噠庆捺!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市屁魏,隨后出現(xiàn)的幾起案子滔以,更是在濱河造成了極大的恐慌,老刑警劉巖氓拼,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件你画,死亡現(xiàn)場離奇詭異,居然都是意外死亡桃漾,警方通過查閱死者的電腦和手機坏匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撬统,“玉大人适滓,你說我怎么就攤上這事×底罚” “怎么了凭迹?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長苦囱。 經(jīng)常有香客問我嗅绸,道長,這世上最難降的妖魔是什么撕彤? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任朽砰,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞧柔。我一直安慰自己漆弄,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布造锅。 她就那樣靜靜地躺著撼唾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哥蔚。 梳的紋絲不亂的頭發(fā)上倒谷,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音糙箍,去河邊找鬼渤愁。 笑死,一個胖子當著我的面吹牛深夯,可吹牛的內(nèi)容都是我干的抖格。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咕晋,長吁一口氣:“原來是場噩夢啊……” “哼雹拄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掌呜,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤滓玖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后质蕉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體势篡,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年模暗,在試婚紗的時候發(fā)現(xiàn)自己被綠了殊霞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡汰蓉,死狀恐怖绷蹲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顾孽,我是刑警寧澤祝钢,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站若厚,受9級特大地震影響拦英,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜测秸,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一疤估、第九天 我趴在偏房一處隱蔽的房頂上張望灾常。 院中可真熱鬧,春花似錦铃拇、人聲如沸钞瀑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雕什。三九已至,卻和暖如春显晶,著一層夾襖步出監(jiān)牢的瞬間贷岸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工磷雇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留偿警,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓唯笙,卻偏偏與公主長得像螟蒸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子睁本,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,810評論 0 11
  • 1.什么是JSP (1)jsp全稱是Java Server Pages尿庐,它和Servlet技術(shù)一樣都是sun公司定...
    yjaal閱讀 3,648評論 5 99
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法忠怖,類相關(guān)的語法呢堰,內(nèi)部類的語法,繼承相關(guān)的語法凡泣,異常的語法枉疼,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • 前面講了servlet入門實踐現(xiàn)在開始介紹jsp入門實踐,開發(fā)環(huán)境的搭建請參考我前面的tomcat的文章鞋拟,jsp入...
    伊豚wall閱讀 3,368評論 2 56
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題骂维。 96、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,404評論 0 10