day12_編碼實戰(zhàn)&Jsp基礎(chǔ)

1課程回顧

會話管理

1)會話管理:管理瀏覽器和服務(wù)器之間的會話過程中產(chǎn)生的會話數(shù)據(jù)

2)Cookie技術(shù):會話數(shù)據(jù)保存在瀏覽器客戶端。

Cookie核心的API:

2.1在服務(wù)器端創(chuàng)建Cookie對象

Cookeie cookie = new Cookie("name","value");

2.2把cookie發(fā)送給瀏覽器端(通過響應(yīng)頭:set-cookie)

response.addCookie(cookie);

2.3瀏覽器帶著cookie信息訪問服務(wù)器(通過請求頭:cookie)肌似,服務(wù)器得到cookie信息

Cookie[] cookies = request.getCookies();

局限:

1)只能保存字符串類型,不能保存中文

2)一個cookie不能超過4kb

3)Session技術(shù):會話數(shù)據(jù)保存在服務(wù)器端车海。(內(nèi)存)

Session核心的API:

3.1創(chuàng)建或得到session對象

HttpSession session = request.getSession(); //創(chuàng)建或得到session對象

request.getSession(false); //得到session對象

3.2會話數(shù)據(jù)保存session對象中浑彰,和得到會話數(shù)據(jù)

session.setAttribute("name",Object);保存數(shù)據(jù)

session.getAttribute("name")得到數(shù)據(jù)

注意:

1)session.setIntactiveInterval(時間);設(shè)置session過期時間

2)session.invalidate()手動銷毀session對象

2 Session案例

用戶登錄場景

3編程實戰(zhàn)

通訊錄程序

軟件的生命周期

3.1需求分析(需求分析師)

功能分析:

1)添加聯(lián)系人

2)修改聯(lián)系人

3)刪除聯(lián)系人

4)查詢所有聯(lián)系人

功能流轉(zhuǎn)

美工設(shè)計:設(shè)計軟件的靜態(tài)原型

3.2需求設(shè)計(系統(tǒng)分析師/架構(gòu)師/資深開發(fā)人員)

1)設(shè)計實體(抽象實體)

聯(lián)系人實體:

class Contact{

private String id;

private String name;

private String gender;

private int age;

private String phone;

private String email;

private String qq;

}

2)設(shè)計“數(shù)據(jù)庫”,(xml代替"數(shù)據(jù)庫")

contact.xml

張三

20

13433334444

zs@qq.com

43222222

3)設(shè)計涉及的接口

DAO接口(數(shù)據(jù)訪問對象):實體對象的CRUD方法去件。

項目原則:通常一個實體對象就會對應(yīng)一個DAO接口和一個DAO實現(xiàn)類

interface ContactDao{

public void addContact(Contact contact);//添加聯(lián)系人

public void updateContact(Contact contact);//修改聯(lián)系人

public void deleteContact(String id);//刪除聯(lián)系人

public List findAll();? //查詢所有聯(lián)系人

public Contact findById(String id);//根據(jù)編號查詢聯(lián)系人

}

4)設(shè)計項目的目錄結(jié)構(gòu)

項目名稱:contactSys_web

目錄結(jié)構(gòu):

|- contactSys_web

|-src

|-gz.itcast.contactSys_web.entity :存放實體對象

|-gz.itcast.contactSys_web.dao :存放dao的接口

|-gz.itcast.contactSys_web.dao.impl:存放dao的實現(xiàn)類

|-gz.itcast.contactSys_web.servlet:存放servlet的類

|-gz.itcast.contactSys_web.test:存放單元測試類

|-gz.itcast.contactSys_web.util:存放工具類

|-gz.itcast.contactSys_web.exception:存放自定義異常類

|-WebRoot

|-html文件

|-images:目錄笨农。存放圖片資源

|-css:目錄就缆。存放css資源

|-js:目錄。存放js資源

3.3編碼實現(xiàn)(軟件開發(fā)工程師/攻城獅)

開發(fā)順序:

設(shè)計數(shù)據(jù)庫->實體-> DAO接口谒亦,DAO實現(xiàn)-> Servlet+html頁面

3.4功能測試(測試攻城獅)

3.5性能測試(測試攻城獅)

3.6部署上線(實施攻城獅)

3.7維護階段(實施攻城獅)

4 Jsp基礎(chǔ)

4.1 Jsp引入

Servlet的作用:用java語言開發(fā)動態(tài)資源的技術(shù)=咴住!份招!

Jsp的作用:用java語言(+html語言)開發(fā)動態(tài)資源的技術(shù)G薪摇!锁摔!

Jsp就是servlet@!谐腰!

4.2 Jsp的特點

1)jsp的運行必須交給tomcat服務(wù)器T斜!J励背!

tomcat的work目錄:tomcat服務(wù)器存放jsp運行時的臨時文件

2)jsp頁面既可以寫html代碼,也可以寫java代碼砸西。

(html頁面不能寫java代碼叶眉。而jsp頁面可以寫java代碼)

4.3體驗jsp頁面作用

需求:顯示當(dāng)前時間到瀏覽器上

可以把jsp頁面當(dāng)做html頁面在tomcat中訪問V啡濉!衅疙!

4.4 Jsp的執(zhí)行過程

問題:訪問http://localhost:8080/day12/01.hello.jsp如何顯示效果莲趣?

1)訪問到01.hello.jsp頁面,tomcat掃描到j(luò)sp文件炼蛤,在%tomcat%/work把jsp文件翻譯成java源文件

(01.hello.jsp? ->? _01_hello_jsp.java)(翻譯)

2)tomcat服務(wù)器把java源文件編譯成class字節(jié)碼文件(編譯)

(_01_hello_jsp.java? ->? _01_hello_jsp.class)

3)tomcat服務(wù)器構(gòu)造_01_hello_jsp類對象

4)tomcat服務(wù)器調(diào)用_01_hello_jsp類里面方法妖爷,返回內(nèi)容顯示到瀏覽器蝶涩。

第一次訪問jsp:

走(1)(2)(3)(4)

第n次訪問jsp:

走(4)

注意:

1)jsp文件修改了或jsp的臨時文件被刪除了理朋,要重新走翻譯(1)和編譯(2)的過程

4.5疑問

問題:為什么Jsp就是servlet!B唐浮嗽上!

jsp翻譯的java文件:

public final class_01_hello_jspextendsorg.apache.jasper.runtime.HttpJspBase

implements org.apache.jasper.runtime.JspSourceDependent {

HttpJspBase類:

public abstract class org.apache.jasper.runtime.HttpJspBaseextends javax.servlet.http.HttpServletimplements javax.servlet.jsp.HttpJspPage {

結(jié)論: Jsp就是一個servlet程序!Oㄈ痢兽愤!

servlet的技術(shù)可以用在jsp程序中

jsp的技術(shù)并不是全部適用于servlet程序!

Servlet的生命周期:

1)構(gòu)造方法(第1次訪問)

2)init方法(第1次訪問)

3)service方法

4)destroy方法

Jsp的生命周期

1)翻譯: jsp->java文件

2)編譯: java文件->class文件(servlet程序)

3)構(gòu)造方法(第1次訪問)

4)init方法(第1次訪問):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

5 Jsp語法

5.1 Jsp模板

jsp頁面中的html代碼就是jsp的模板

5.2 Jsp表達式

語法:<%=變量或表達式%>

作用:向瀏覽器輸出變量的值或表達式計算的結(jié)果

注意:

1)表達式的原理就是翻譯成out.print(“變量”);通過該方法向瀏覽器寫出內(nèi)容

2)表達式后面不需要帶分號結(jié)束挪圾。

5.3 Jsp的腳本

語法:<%java代碼%>

作用:執(zhí)行java代碼

注意:

1)原理把腳本中java代碼原封不動拷貝到_jspService方法中執(zhí)行浅萧。

5.4 Jsp的聲明

語法:<%!變量或方法%>

作用:聲明jsp的變量或方法

注意:

1)變量翻譯成成員變量,方法翻譯成成員方法哲思。

5.5 Jsp的注釋

語法:<%!--? jsp注釋--%>

注意;

1)html的注釋會被翻譯和執(zhí)行洼畅。而jsp的注釋不能被翻譯和執(zhí)行。

6 Jsp的三大指令

6.1 include指令

作用:在當(dāng)前頁面用于包含其他頁面

語法:<%@include file="common/header.jsp"%>

注意:

1)原理是把被包含的頁面(header.jsp)的內(nèi)容翻譯到包含頁面(index.jsp)中,合并成翻譯成一個java源文件棚赔,再編譯運行5鄞亍!靠益,這種包含叫靜態(tài)包含(源碼包含)

2)如果使用靜態(tài)包含丧肴,被包含頁面中不需要出現(xiàn)全局的html標(biāo)簽了!k屎蟆S蟾 (如html、head壳快、body)

6.2 page指令

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

<%@page

language="java"--告訴服務(wù)器使用什么動態(tài)語言來翻譯jsp文件

import="java.util.*"--告訴服務(wù)器java文件使用什么包

導(dǎo)入包途样,多個包之間用逗號分割

pageEncoding="utf-8"--告訴服務(wù)器使用什么編碼翻譯jsp文件(成java文件)

contentType="text/html; charset=utf-8"服務(wù)器發(fā)送瀏覽器的數(shù)據(jù)類型和內(nèi)容編碼

注意:在開發(fā)工具中,以后只需要設(shè)置pageEncoding即可解決中文亂碼問題

errorPage="error.jsp"

isErrorPage="false"

buffer="8kb"

session="true"

isELIgnored="false"

%>

6.3 taglib指令

總結(jié):

1)編碼實戰(zhàn):

1.1 servlet應(yīng)用

1.2初步了解軟件開發(fā)流程

2)Jsp基礎(chǔ)

2.1 Jsp的執(zhí)行原理(翻譯-》編譯-》servlet的生命周期)

2.2語法(jsp表達式濒憋,jsp腳本)

2.3指令

include指令

page指令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末何暇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凛驮,更是在濱河造成了極大的恐慌裆站,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宏胯,居然都是意外死亡羽嫡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門肩袍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杭棵,“玉大人,你說我怎么就攤上這事氛赐』曜Γ” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵艰管,是天一觀的道長滓侍。 經(jīng)常有香客問我,道長牲芋,這世上最難降的妖魔是什么撩笆? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮缸浦,結(jié)果婚禮上夕冲,老公的妹妹穿的比我還像新娘。我一直安慰自己裂逐,他們只是感情好歹鱼,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著絮姆,像睡著了一般醉冤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上篙悯,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天蚁阳,我揣著相機與錄音,去河邊找鬼鸽照。 笑死螺捐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矮燎。 我是一名探鬼主播定血,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诞外!你這毒婦竟也來了澜沟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤峡谊,失蹤者是張志新(化名)和其女友劉穎茫虽,沒想到半個月后刊苍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡濒析,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年正什,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片号杏。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡婴氮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盾致,到底是詐尸還是另有隱情主经,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布绰上,位于F島的核電站旨怠,受9級特大地震影響渠驼,放射性物質(zhì)發(fā)生泄漏蜈块。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一迷扇、第九天 我趴在偏房一處隱蔽的房頂上張望百揭。 院中可真熱鬧,春花似錦蜓席、人聲如沸器一。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祈秕。三九已至,卻和暖如春雏胃,著一層夾襖步出監(jiān)牢的瞬間请毛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工瞭亮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留方仿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓统翩,卻偏偏與公主長得像仙蚜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厂汗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法委粉,類相關(guān)的語法,內(nèi)部類的語法娶桦,繼承相關(guān)的語法贾节,異常的語法匣掸,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司氮双,掛了不少碰酝,但最終還是拿到小米、百度戴差、阿里送爸、京東、新浪暖释、CVTE袭厂、樂視家的研發(fā)崗...
    時芥藍閱讀 42,253評論 11 349
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評論 0 11
  • Group+微組織1.0線上活動方案 (申明:此篇文章只做練習(xí)用纹磺,如有不適,請勿參與亮曹。) 一.微組織介紹 ...
    眺眺閱讀 429評論 4 1
  • 如果每一天都有這樣清澈的藍天 如果每一個生命沉淀以后都希望重生 放逐生命慢慢的游到水里呼吸 離苦得樂橄杨,自由自在。
    戒樂閱讀 262評論 0 0