JSP

1.jsp = html + java(使用特殊標(biāo)簽tag引入)的動(dòng)態(tài)資源的技術(shù)。

jsp就是servlet。雖然作用一樣,可是使用場(chǎng)景不一樣。

使用jsp開(kāi)發(fā)的web應(yīng)用是跨平臺(tái)的,既能夠在linux下運(yùn)行,也能在其他操作心痛運(yùn)行。

可以把jsp頁(yè)面想象為html頁(yè)面,它的地位相當(dāng)于html頁(yè)面。jsp在tomcat中當(dāng)做html訪問(wèn)。

Jsp特點(diǎn):
1))jsp運(yùn)行:
必須交給服務(wù)器運(yùn)行。
work目錄:tomcat服務(wù)器存放Jsp運(yùn)行時(shí)的臨時(shí)文件。

2)jsp既可以寫(xiě)html代碼也可以寫(xiě)java代碼
(html頁(yè)面不能寫(xiě)java代碼,而jsp頁(yè)面可以寫(xiě)java代碼)

2.jsp放在WebRoot下,servlet 放在src下面。

3.JSP(Java Server Page) 和 Servelet 是Java EE 的兩個(gè)基本成員。二者本質(zhì)相同,jsp最終也是要被編譯成Servlet之后才能運(yùn)行。

4.web應(yīng)用和web.xml文件

6D8A92BE-43CE-4BE0-B3D5-4DC903A829AD.png

src文件夾:存放java源文件
WebRoot: Web應(yīng)用的根目錄
META-INF: 系統(tǒng)自動(dòng)生成,存放系統(tǒng)描述信息
WEB-INF:該目錄中內(nèi)容不能對(duì)外發(fā)布,里面的內(nèi)容,外部不能訪問(wèn)。
lib文件夾:存放以jar/zip形式表現(xiàn)的庫(kù)文件
web.xml:Web應(yīng)用的初始化配置文件。

5.jsp的四種基本語(yǔ)法

a. jsp注釋: <%-- 注釋內(nèi)容 --%>
b. jsp聲明: <%! 申明部分 %>
聲明部分可以使用private, public等訪問(wèn)控制符修飾,但是不能使用abstract
c. 輸出jsp表達(dá)式: <%= 表達(dá)式 %>
d. jsp腳本: <% 腳本 %>
在腳本部分可以申明變量,但是不能使用訪問(wèn)控制符來(lái)修飾。

  1. jsp的7個(gè)動(dòng)作指令

1)forward

<jsp:forward page="result.jsp">
    <jsp:param name="aa" value="bb" />
</jsp:forward>

使用forward指令后,瀏覽器地址不會(huì)發(fā)生變化,并且不會(huì)丟失請(qǐng)求的參數(shù)。

  1. include

    <jsp:include page="result.jsp">
    <jsp:param name="aa" value="bb"/>
    </jsp:include>
    動(dòng)態(tài)Include導(dǎo)入和上面的靜態(tài)Include導(dǎo)入的方法不同之處:

  • 靜態(tài)導(dǎo)入時(shí)將2個(gè)頁(yè)面融合為一個(gè)servlet
  • 靜態(tài)導(dǎo)入時(shí)候編譯指令會(huì)起作用
  • 動(dòng)態(tài)包含還可以增加額外的參數(shù)

include和forward很相似,區(qū)別在于Include是局部的引入


學(xué)習(xí)目標(biāo):

  1. 掌握B/S編程技能(html, js, jsp)
  2. OO思想(面向?qū)ο笏枷?編寫(xiě)后臺(tái)業(yè)務(wù)代碼
  3. 具備基本的調(diào)試B/S系統(tǒng)的能力
  4. 熟練掌握J(rèn)DBC和集合編寫(xiě)數(shù)據(jù)庫(kù)訪問(wèn)程序

掌握B/S開(kāi)發(fā)的基本概念:

  1. 動(dòng)態(tài)網(wǎng)頁(yè) vs 靜態(tài)網(wǎng)頁(yè)
  2. B/S程序 vs C/S程序
  3. B/S開(kāi)發(fā)設(shè)計(jì)的技術(shù)內(nèi)容

開(kāi)發(fā)jsp動(dòng)態(tài)網(wǎng)站的基本步驟:
1)掌握web系統(tǒng)的工作目錄
2)創(chuàng)建按web工程與html,js文件
3)實(shí)現(xiàn)web工程的部署與運(yùn)行
4)進(jìn)行web系統(tǒng)的調(diào)試與排錯(cuò)

部署Web項(xiàng)目

http://www.thinksaas.cn/topics/0/350/350000.html

Intellij IDEA 創(chuàng)建Web項(xiàng)目,并且在Tomcat中部署運(yùn)行。

6.語(yǔ)法

1)jsp的模板

jsp頁(yè)面中的html代碼就是jsp模板。
2)jsp的表達(dá)式

語(yǔ)法:<%= 變量或者表達(dá)式 %>   作用:可以向?yàn)g覽器輸出信息
表達(dá)式的原理就是翻譯成 `out.print("內(nèi)容")`,通過(guò)該方法向?yàn)g覽器寫(xiě)出內(nèi)容。表達(dá)式后面不需要加分號(hào)。

3)jsp的腳本

語(yǔ)法:<% java代碼 %>
作用:執(zhí)行Java代碼。穿插html代碼。
注意:a.原理吧腳本中Java代碼原封不動(dòng)拷貝到_jspService方法中執(zhí)行。

<!-- 穿插html代碼 -->
<% for (int i = 0; i < 5; i ++){%>
<h2>標(biāo)題<%= i %></h2>
<% } %>

4)jsp的聲明

語(yǔ)法:<%!   變量或者方法 %>
腳本中不能聲明方法。
jsp的聲明中不能重復(fù)定義翻譯好的一些方法。
注意:
變量翻譯成成員變量,方法翻譯成成員方法。

<!-- jsp聲明 -->
<%!
    String name = "聊么人";
    public String getName() {
        return name;
    }
%>

5)jsp的注釋

語(yǔ)法:<%-- jsp注釋 --%>
html的注釋不能注釋jsp的內(nèi)容,應(yīng)該用jsp注釋方法注釋。

6)jsp的指令:一共有三個(gè)指令。

a) include 指令:也叫靜態(tài)的包含指令。

語(yǔ)法:`<%@include file="common/header.jsp" %>`
作用:包含其他頁(yè)面。在當(dāng)前頁(yè)面包含其他頁(yè)面。
原理:把被包含的頁(yè)面(header.jsp)的內(nèi)容翻譯到包含頁(yè)面(index.jsp)中,合并成翻譯成一個(gè)java源文件,再編譯運(yùn)行。這種包含叫作靜態(tài)包含(袁愛(ài)民包含)。
如果使用靜態(tài)包含,被包含的頁(yè)面中就不需要再出現(xiàn)全局的html標(biāo)簽了。

b) page 指令

作用:告訴tomcat服務(wù)器如何翻譯jsp文件。

<%@ page contentType="text/html;charset=UTF-8" -->這個(gè)charset表示服務(wù)器發(fā)送瀏覽器的數(shù)據(jù)類型和內(nèi)容編碼
     language="java"  --> 告訴服務(wù)器使用什么動(dòng)態(tài)語(yǔ)言來(lái)翻譯jsp
     pageEncoding="utf-8"  --> 告訴服務(wù)器使用什么編碼翻譯jsp文件。
     import="java.util.*"  --> 告訴服務(wù)器java文件使用了什么包
     buffer="8kb" --> 緩沖內(nèi)存大小
     errorPage="error.jsp"
%>
c) taglib 指令

7.jsp的執(zhí)行過(guò)程

8.為什么Jsp就是servlet?

jsp翻譯的java文件,間接集成了HttpServlet這個(gè)類。

servlet生命周期:
1)構(gòu)造方法(第1次訪問(wèn)才要做的)
2)Init方法(第1次訪問(wèn)才要做的)
3)service方法
4)destroy方法
jsp的生命周期:
1)翻譯:jsp->java文件
2)編譯:java文件->class文件(servlet程序)
3)構(gòu)造方法
4)init方法
5)service方法
6)destroy方法

圖片.png

servlet的技術(shù)可以用在jsp技術(shù)中。
jsp的技術(shù)并不是全部適用于servlet程序。

9.異常相關(guān)的:

errorPage:指定當(dāng)前jsp頁(yè)面的錯(cuò)誤處理頁(yè)面。
isErrorPage:是否是錯(cuò)誤頁(yè)面

500.jsp
404.html

10.jsp的內(nèi)置對(duì)象(重點(diǎn))

內(nèi)置對(duì)象:
在jsp開(kāi)發(fā)中,會(huì)頻繁使用到一些對(duì)象:
HttpSession,ServletContext,HttpServletRequest.
如果我們每次要使用這些對(duì)象去,都去創(chuàng)建這些兌現(xiàn)干就顯得非常麻煩。

session可以直接使用。
在jsp頁(yè)面加載完畢之后就會(huì)自動(dòng)幫開(kāi)發(fā)者創(chuàng)建好這些對(duì)象,而開(kāi)發(fā)者只需要直接使用這些對(duì)象調(diào)用方法即可,這些創(chuàng)建好的對(duì)象就叫內(nèi)置對(duì)象。

JSP有9大內(nèi)置對(duì)象:

內(nèi)置對(duì)象名    類型
request        HttpServletRequest
response     HttpServletResponse
config          ServletConfig
application  ServletContext
session        HttpSession
exception    Throwable
page            Object(this)
out               JspWriter 
pageContext  PageContext

1)Out對(duì)象:

out對(duì)象類型,JspWriter類,相當(dāng)于帶緩存的PrintWriter.

jsp頁(yè)面的緩存機(jī)制:

什么情況緩存區(qū)內(nèi)容會(huì)向外寫(xiě)出:
1)緩存區(qū)滿了
2)刷新緩存區(qū)
3)關(guān)閉緩沖區(qū)
4)執(zhí)行完jsp頁(yè)面

圖片.png

PrintWriter一寫(xiě)就寫(xiě)到瀏覽器中了。
2)pageContext對(duì)象

pageContext對(duì)象的類型是PageContext,叫作jsp的上下文
1)可以獲取其他八個(gè)內(nèi)置對(duì)象
2)可以從四個(gè)域中獲取數(shù)據(jù):

pageContext.getAttribute("name", 域范圍常量)

3)自動(dòng)在四個(gè)域中搜索數(shù)據(jù)

jsp的四個(gè)域?qū)ο螅?/p>

pageContext: page域
request:request域
session:session域
application:context域

1)域?qū)ο笞饔茫?br> 保存數(shù)據(jù) 和 獲取數(shù)據(jù), 用于數(shù)據(jù)共享
2)域?qū)ο蠓椒ǎ?br> setAttribute()
getAttribute()
removeAttribute()
3)域?qū)ο笞饔梅秶?br> page域:只能在jsp頁(yè)面中使用
request域:只能在同一個(gè)請(qǐng)求中使用
session域:只能在同一個(gè)會(huì)話(session對(duì)象)中使用
context:只能在同一個(gè)web應(yīng)用中使用。

JSP 頁(yè)中 requestScope是什么意思?該怎么用?

表示變量的作用域,一共4種。pageScope: 表示變量只能在本頁(yè)面使用。requestScope:表示變量能在本次請(qǐng)求中使用。sessionScope:表示變量能在本次會(huì)話中使用。applicationScope:表示變量能在整個(gè)應(yīng)用程序中使用。

${requestScope.message} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門(mén)和常用指令 JSP的內(nèi)置對(duì)象&標(biāo)簽介紹 EL表達(dá)式&EL的內(nèi)置對(duì)象 2.JSP技術(shù)入門(mén)...
    WendyVIV閱讀 2,326評(píng)論 1 18
  • 1.什么是JSP (1)jsp全稱是Java Server Pages,它和Servlet技術(shù)一樣都是sun公司定...
    yjaal閱讀 3,837評(píng)論 5 99
  • 一、JSP基礎(chǔ) 1.1什么是JSP JSP(Java ServerPage)是Java服務(wù)器端動(dòng)態(tài)頁(yè)面技術(shù)。是su...
    晨星資源閱讀 1,268評(píng)論 0 6
  • 前面講了servlet入門(mén)實(shí)踐現(xiàn)在開(kāi)始介紹jsp入門(mén)實(shí)踐,開(kāi)發(fā)環(huán)境的搭建請(qǐng)參考我前面的tomcat的文章,jsp入...
    伊豚wall閱讀 3,432評(píng)論 2 56
  • 復(fù)習(xí)復(fù)習(xí)!??!搞起來(lái)?。ervlet和JSP是Java EE規(guī)范最基本成員,他們是Java Web開(kāi)發(fā)的重點(diǎn)知識(shí)...
    JackFrost_fuzhu閱讀 2,988評(píng)論 1 70

友情鏈接更多精彩內(nèi)容