溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP 學習總結(jié)---學習筆記

發(fā)布時間:2020-07-14 11:29:52 來源:網(wǎng)絡(luò) 閱讀:893 作者:知止內(nèi)明 欄目:開發(fā)技術(shù)

什么是JSP

1)為什么說,Servlet是一個動態(tài)Web開發(fā)技術(shù)呢?
Servlet是基于服務端的一種動態(tài)交互技術(shù),
HttpServletRequest表示客戶端到服務端的對象
HttpServletResponse表示服務端到客戶端的對象
2)JSP是SUN公司開發(fā)的一個基于服務端的一種動態(tài)WEB開發(fā)技術(shù)
3)JSP的代碼結(jié)構(gòu)/內(nèi)容=HTML+JSP所有元素內(nèi)容
4)在IDE工具中,開發(fā)JSP,pageEncoding有二層含義:
a)指明當前JSP中的中文采用什么方式編碼(如果在IDE工具外)
b)指明當前JSP頁面保存時采用什么方式編碼
5)項目中,JSP最佳實踐模式:
Servlet:適合控制器
Jsp:適合顯示
JavaBean:模型

*2 JSP工作原理

1)Web容器根據(jù)客戶端訪問的資源類別(Web容器會根據(jù)資源的第一行代碼確定),如果你訪問的是JSP資源,就交由JSP引擎處理
如果你訪問的是Servlet資源,就交由Servlet引擎處理
2)如果是JSP資源,JSP引擎會將其翻譯成Servlet資源,傳入相關(guān)的對象,如果是靜態(tài)資源,以out.write()形式輸出,如果是動態(tài) 資源,以out.print()形式輸出
3)此時JSP引擎在翻譯正確后,將其輸出給Servlet引擎,當作Servlet處理。
4)如果再次訪問同一個date.jsp文件,翻譯工作依然進行,Servlet引擎工作可以減化,所以這是為會么第N次較第1次快的原因

3 JSP語法

1)JSP模版元素
模版元素就是HTML中的靜態(tài)內(nèi)容,即<body>,<table>,<form>標簽。。。

2)JSP表達式
a)語法:<%="字符串變量或表達式"%>
b)結(jié)束無分號
c)默認輸出到瀏覽器

3)JSP腳本片斷
a)語法:<% ...java代碼; %>
b)腳本片斷中的注釋符號與java代碼一致
注意:JSP修改后,無需重新部署,直接刷新,Web容器會自動比較新舊二個版本的JSP
c)多個JSP腳本片斷中定義的變量,本質(zhì)是_jspService()方法中的局部變量,可以訪問
4)JSP聲明
a)語法:<%! ...java代碼 %>
b)JSP聲明的變量或方法,會成為Servlet的實例變量或?qū)嵗椒ɑ蚱胀ǚ椒?br/>c)JSP腳本片斷中不能定義局部方法,方法只能定義在JSP聲明中

5)JSP注釋

1)語法:<%-- 注釋的內(nèi)容 --%>
    2)對于HTML注釋來說,JSP引擎會將其翻譯成servlet內(nèi)容,
  對于JSP注釋來說,JSP引擎不會將其翻譯成servlet內(nèi)容
    3)注釋不能嵌套使用

6)JSP指令
1)指令是程序員控制JSP引擎做什么的依據(jù)
2)有三類:
a)page
b)include
c)tablib
3)page指令的屬性有
language="指明JSP支持的語言,默認為java語言"
import="當前JSP頁面中,需要導入的包,其中import可以寫多次"
session="true表示需要服務器創(chuàng)建session/false不需要服務器創(chuàng)建session",默認true
buffer="none|8kb|sizekb"JSP輸出使用的緩存大小,默認8kb
autoFlush="true表示當緩存滿時,web容器是自動刷新到客戶端/false需要手工刷新到客戶端",默認true
isThreadSafe="true表示web服務器確保線程安全/false不確保線程安全",默認true
info="text"表示jsp的相關(guān)描述信息,可以通過getServletInfo()取得該jsp的信息
errorPage="當前jsp頁面出錯后,轉(zhuǎn)發(fā)到的目標頁面"
isErrorPage="true"(當某個jsp頁面有該屬性時,web容器會自動創(chuàng)建exception對象
上述異常處理屬于局部異常處理
在web.xml文件:
<error-page>
<error-code>500</error-code>
<location>/s_500.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NumberFormatException</exception-type>
<location>/s1_500.jsp</location>
</error-page>
上述異常處理屬于全部異常處理
如果全局中有code又有type,此時二者同時顯示
當全局和局部異常同時出現(xiàn)時,局部異常優(yōu)先
pageEncoding="UTF-8"
前提在IDE工具中
a)JSP頁面的中文采用UTF-8方式編碼
b)JSP保存時采用UTF-8方式編碼
c)指示瀏覽器以UTF-8方式查看
contentType="text/html;charset=UTF-8"
isELIgnored="false表法JSP引擎不忽略EL表達式語言/true表法JSP引擎忽略EL表達式語言"

9)如何查找JSP頁面中的錯誤

4 JSP出錯后處理方法

5 M(Javabean)V(Jsp)C(Servlet)模式

6 @include指令[靜態(tài)包含]

1)include指令包含多個JSP頁面,最后JSP引擎只翻譯總JSP頁面,即index.jsp頁面
2)include指令包含多個JSP頁面,那么被包含的JSP頁面原封不動的進入總JSP頁面,即index.jsp頁面,造成HTML結(jié)構(gòu)非?;靵y
3)include指令包含多個JSP頁面,多個JSP最終會翻譯成一個Servlet,即index_jsp.java頁面

*7 jsp九大隱式/內(nèi)置對象

1)request
2)response
3)session
    訪問jsp頁面時,默認web服務器創(chuàng)建session
    訪問servlet時,必須通過request.getSession()才能創(chuàng)建session
    在轉(zhuǎn)發(fā)和重定向情況下,session域不會銷毀
4)application=ServletContext對象  
5)config:取得jsp在web.xml文件中的映射信息
6)exception:該對象只能在<%@isErroPage="true"%>的情況下,容器才會創(chuàng)建,否則容器不予創(chuàng)建
7)out:out的類型是JspWriter,它是具體緩存功能的PrintWriter對象
8)pageContext: 表示Jsp行運過程中的環(huán)境對象
  a)能夠取得其它8個內(nèi)置對象
  b)具有轉(zhuǎn)發(fā)和包含的功能 
  c)域?qū)ο?[pageContext/request/session/application]
9)page
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI