2020-03-19

(一)JSP的概述

一氢卡、什么是JSPJSP:JavaServer Pages(Java服務(wù)器頁面),其實就是在HTML中嵌入Java代碼

二晨缴、為什么學(xué)習(xí)JSPSUN公司提供了動態(tài)網(wǎng)頁開發(fā)技術(shù):Servlet译秦,Servlet自身有一些缺點(diǎn),SUN公司發(fā)現(xiàn)了這些問題击碗,就推出了一個新的動態(tài)網(wǎng)頁開發(fā)技術(shù)JSPServlet的缺點(diǎn):

Servlet需要進(jìn)行配置筑悴,不方便維護(hù)Servlet很難向網(wǎng)頁中輸出HTML頁面內(nèi)容

(二)JSP的運(yùn)行原理

一、JSP的簡單使用1延都、創(chuàng)建一個JSP頁面

2雷猪、運(yùn)行JSP(JSP需要發(fā)布到服務(wù)器中才能運(yùn)行)發(fā)布項目到Tomcat中

JSP的運(yùn)行原理分析JSP文件會翻譯成Java文件睛竣,將這個Java文件編譯生成class文件晰房,再運(yùn)行class文件

(三)JSP的腳本元素

一、JSP的腳本元素概述什么是

JSP的腳本元素JSP=HTML+Java代碼+JSP自身的東西JSP的腳本元素就是在JSP中嵌入Java代碼

二射沟、JSP的腳本元素的分類

1殊者、聲明標(biāo)簽

(1)語法:<%!變量或方法聲明%>寫在這個腳本中的代碼,會被翻譯成Servlet內(nèi)部的成員變量验夯、或成員方法

(2)用法:<%!//聲明變量int i = 3;%>

2猖吴、表達(dá)式標(biāo)簽

(1)語法:<%=表達(dá)式%>寫在這個腳本中的代碼,會被翻譯成方法內(nèi)部的out.print();當(dāng)中的內(nèi)容

(2)用法:<%= i %>

3挥转、程序代碼標(biāo)簽(1)語法:<%程序代碼%>寫在這個腳中的代碼海蔽,會被翻譯成方法內(nèi)部的局部變量或方法內(nèi)部的代碼片段

(2)用法:<%//程序代碼int x = 5;%

一共屈、JSP開發(fā)模式動態(tài)網(wǎng)頁開發(fā)模式的發(fā)展

(四)JSP的開發(fā)模式之MVC模式

一、JSP開發(fā)模式

動態(tài)網(wǎng)頁開發(fā)模式的發(fā)展

(五)開發(fā)中的路徑問題

一党窜、路徑問題描述什么時候會遇到路徑問題開發(fā)中我們會提供一些頁面拗引,在頁面中會提供鏈接或者表單,當(dāng)點(diǎn)擊鏈接或表單時幌衣,需要進(jìn)行提交矾削,提交到

Servlet中,從頁面向Servlet發(fā)送請求的地址(路徑)應(yīng)該如何編寫

二豁护、路徑的分類

1哼凯、相對路徑(1)相對路徑的寫法:相對路徑不是以/開頭的(2)相對路徑的使用:1)在根路徑下的頁面訪問

Servlet

demo2.jsp

的訪問路徑:

http://localhost:8080/web02/demo2.jsp

ServletDemo1

的訪問路徑:

http://localhost:8080/web02/ServletDemo1

2)在某個目錄下的頁面訪問Servletdemo2.jsp的訪問路徑:http://localhost:8080/web02/demo2/demo2.jspServletDemo1的訪問路徑(不變):http://localhost:8080/web02/ServletDemo1

2、絕對路徑

(1)絕對路徑的寫法:通常以/開頭使用絕對路徑楚里,就不需要關(guān)心當(dāng)前文件和要請求的文件之間的相對位置關(guān)系了

(2)注意:絕對路徑分成服務(wù)器端路徑和客戶端路徑客戶端路徑需要帶工程名服務(wù)器端路徑不需要帶工程名

(六)案例需求介紹

一断部、案例需求描述

1、提供登錄頁面腻豌,用于用戶登錄(用戶名和密碼需要查詢數(shù)據(jù)庫)

2家坎、如果登錄失敗,需要回到登錄頁面(給出提

示信息)

3吝梅、如果登錄成功虱疏,頁面進(jìn)行跳轉(zhuǎn),在成功頁面上顯示登錄成功的總?cè)藬?shù)

二苏携、案例

流程分析

(七)Request作為域?qū)ο蟠嫒?shù)據(jù)

一做瞪、Request作為域?qū)ο蟮腁PI向Request域中保存數(shù)據(jù)set Attribute(String name,Object o)從Request域中獲取數(shù)據(jù)getAttribute(String name)從Request域中移除數(shù)據(jù)removeAttribute(String name)

二、Request作為域?qū)ο蟮淖饔梅秶鶵equest對象其實就是從客戶端瀏覽器右冻,向服務(wù)器送的一次請求信息的封裝装蓬,那么實質(zhì)上向Request中所保存的數(shù)據(jù),有效期也是一次請求范圍一次

請求范圍:從客戶端瀏覽器向服務(wù)器發(fā)送一次請求纱扭,服務(wù)器針對這次請求對瀏覽器作出響應(yīng)牍帚,當(dāng)服務(wù)器作出響應(yīng)之后,請求對象就銷毀了乳蛾,保存在其中的數(shù)據(jù)就無效了

(八)請求轉(zhuǎn)發(fā)和重定向完成頁面的跳轉(zhuǎn)

一暗赶、請求轉(zhuǎn)發(fā)

1、請求轉(zhuǎn)發(fā)的寫法

(1)通過ServletRequest對象RequestDispatchergetRequestDispatcher(String path)

(2)再根據(jù)RequestDispatcher中的方法進(jìn)行請求轉(zhuǎn)發(fā)

forward(ServletRequest request ServletResponse response)

2肃叶、請求轉(zhuǎn)發(fā)的代碼實現(xiàn)

3蹂随、請求轉(zhuǎn)發(fā)的效果(請求Servlet顯示JSP)

二、重定向

1因惭、重定向的寫法

(1)通過HttpServletResponse對象中的方法實現(xiàn):send Redirect(String location)

2岳锁、重定向的代碼實現(xiàn)

2、請求轉(zhuǎn)發(fā)和重定向區(qū)別總結(jié)

(1)請求轉(zhuǎn)發(fā)是一次請求一次響應(yīng)蹦魔,而重定向是兩次請求次響應(yīng)

(2)請求轉(zhuǎn)發(fā)地址欄不會變化激率,重定向地址欄發(fā)生變化(3)請求轉(zhuǎn)發(fā)路徑不帶工程名咳燕,重定向需要帶工程名路徑

(4)請求轉(zhuǎn)發(fā)只能在本網(wǎng)

站內(nèi)部,重定向可以定向到任何網(wǎng)站

3乒躺、代碼演示請求轉(zhuǎn)發(fā)和重定向區(qū)別

4迟郎、注意:如果需要使用Request進(jìn)行值傳遞,需要通過請求轉(zhuǎn)發(fā)完成聪蘸,如果頁面需要跳轉(zhuǎn)到其他網(wǎng)站宪肖,必須使用重定向

(九)案例準(zhǔn)備-MVC的準(zhǔn)備

一、MVC如何在案例中應(yīng)用

二健爬、案例準(zhǔn)備-創(chuàng)建數(shù)據(jù)庫

1控乾、創(chuàng)建數(shù)據(jù)庫create database web02_login charset utf8;use web02_login;

2、建表語句create tableuser(uidintprimarykeyauto_increment,usernamevarchar(20),password varchar(20)nickname varchar(20));insert into user values(null,‘zs’,‘123’,‘張三’);insert into user values(null,‘ls’,‘123’,‘李四’);insert into user values(null,‘ww’,‘123’,‘王五’);

三娜遵、案例準(zhǔn)備-項目環(huán)境搭建

1蜕衡、項目環(huán)境搭建

(1)創(chuàng)建Web項目

(2)創(chuàng)建相關(guān)的包結(jié)構(gòu)

四、案例準(zhǔn)備-引入相關(guān)資源

1设拟、引入相關(guān)的jar包:MySQL數(shù)據(jù)庫驅(qū)動包C3P0連接池所需jar包DBUtils開發(fā)的jar包

2慨仿、引入C3P0配置文件將配置文件放到工程的src下即可

3、引入JDBC開發(fā)的工具類

五纳胧、案例準(zhǔn)備-創(chuàng)建登錄頁面

1镰吆、創(chuàng)建登錄頁面

2、登錄頁面實現(xiàn)

(十)案例代碼-登錄代碼實現(xiàn)

一跑慕、登錄代碼實現(xiàn)

1万皿、登錄代碼實現(xiàn)流程登錄頁面(login.jsp)→登錄的Servlet(LoginServlet),在這個Servlet中需要接收數(shù)據(jù)核行,將這個數(shù)據(jù)封裝到一個JavaBean中牢硅,調(diào)用另一個JavaBean處理數(shù)據(jù)(就是查詢數(shù)據(jù)庫),根據(jù)處理結(jié)果進(jìn)行頁面跳轉(zhuǎn)

2芝雪、登錄代碼實現(xiàn)第一步:在controller包下創(chuàng)建LoginServlet第二步:在domain下創(chuàng)建一個User類第三步:在model下創(chuàng)建一個UserModel類第四步:根據(jù)處理結(jié)果進(jìn)行頁面跳轉(zhuǎn)

3减余、登錄的Servlet的業(yè)務(wù)代碼

二、登錄代碼底層實現(xiàn)處理數(shù)據(jù)部分的代碼

三惩系、登錄代碼錯誤信息的回顯

1位岔、錯誤信息的回顯代碼

2、錯誤信息顯示效果

四蛆挫、記錄登錄成功人數(shù)分析

五赃承、記錄登錄成功人數(shù)代碼實現(xiàn)

1妙黍、完成初始化操作在服務(wù)器啟動的時候初始化一個值為0悴侵,將這個值存入到ServletContext域中將這個Servlet配置成啟動時加載

2、記錄登錄成功的人數(shù)

3拭嫁、在登錄成功頁面上顯示總?cè)藬?shù)

作者:祀奈

鏈接:http://www.reibang.com/p/21f141ae900b

來源:簡書

簡書著作權(quán)歸作者所有可免,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處抓于。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浇借,隨后出現(xiàn)的幾起案子捉撮,更是在濱河造成了極大的恐慌,老刑警劉巖妇垢,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巾遭,死亡現(xiàn)場離奇詭異,居然都是意外死亡闯估,警方通過查閱死者的電腦和手機(jī)灼舍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涨薪,“玉大人骑素,你說我怎么就攤上這事「斩幔” “怎么了献丑?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侠姑。 經(jīng)常有香客問我创橄,道長,這世上最難降的妖魔是什么莽红? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任筐摘,我火速辦了婚禮,結(jié)果婚禮上船老,老公的妹妹穿的比我還像新娘咖熟。我一直安慰自己,他們只是感情好柳畔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布馍管。 她就那樣靜靜地躺著,像睡著了一般薪韩。 火紅的嫁衣襯著肌膚如雪确沸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天俘陷,我揣著相機(jī)與錄音罗捎,去河邊找鬼。 笑死拉盾,一個胖子當(dāng)著我的面吹牛桨菜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倒得,長吁一口氣:“原來是場噩夢啊……” “哼泻红!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起霞掺,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谊路,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后菩彬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缠劝,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年骗灶,在試婚紗的時候發(fā)現(xiàn)自己被綠了剩彬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡矿卑,死狀恐怖喉恋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情母廷,我是刑警寧澤轻黑,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站琴昆,受9級特大地震影響氓鄙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜业舍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一抖拦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舷暮,春花似錦态罪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沥割,卻和暖如春耗啦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背机杜。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工帜讲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椒拗。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓似将,卻偏偏與公主長得像获黔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玩郊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

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

  • jsp入門 & MVC (一)JSP的概述 一、什么是JSP JSP:JavaServer Pages(Jav...
    你養(yǎng)豬嗎閱讀 114評論 0 0
  • jsp入門 & MVC (一)JSP的概述 一枉阵、什么是JSP ...
    李霜_9191閱讀 260評論 0 0
  • (一)JSP的概述 一译红、什么是JSP JSP:JavaServer Pages(Java服務(wù)器頁面),其實就是...
    友人Atx閱讀 148評論 0 0
  • jsp入門 & MVC (一)JSP的概述 一兴溜、什么是JSP JSP:JavaServer Pages(Java...
    高海婁閱讀 244評論 0 0
  • 作業(yè): 一)JSP的概述 一侦厚、什么是JSPJSP:JavaServer Pages(Java服務(wù)器頁面),其實就是...
    常樂_b00d閱讀 325評論 0 0