①JSP+JavaBean+Servlet? ?
視圖? ? ? 業(yè)務(wù)? ? ? 控制? ? MVC
1)javabean 封裝了數(shù)據(jù)和操作的功能類? 供(web組件)jsp,servlet調(diào)用
[內(nèi)容:私有屬性? get/set方法? 構(gòu)造函數(shù)]
2)Servlet:接收數(shù)據(jù)并處理? [doGet/doPost方法]
關(guān)系:
jsp中含有參數(shù)逝她,對應(yīng)javabean中的屬性款熬。jsp中form action指定serlvet的映射路徑,轉(zhuǎn)向servlet惩坑。servlet和jsp通過request、session擎浴、application(jsp內(nèi)置對象)實(shí)現(xiàn)數(shù)據(jù)共享歉嗓。
jsp頁面請求參數(shù)赫段,請求參數(shù)信息傳給servlet乌询,servlet在request中獲取參數(shù)榜贴,創(chuàng)建javabean對象實(shí)例,將其封裝到j(luò)avabean對象妹田,并調(diào)用javabean內(nèi)定義的業(yè)務(wù)處理方法唬党,得到結(jié)果。用request中setAttribute("屬性"鬼佣,屬性值)驶拱,把結(jié)果值設(shè)定在request范圍(容器)內(nèi)[實(shí)現(xiàn)屬性數(shù)據(jù)共享],請求轉(zhuǎn)發(fā)后的頁面使用getAttribute可獲取結(jié)果值。/servlet根據(jù)結(jié)果值直接選擇轉(zhuǎn)發(fā)到j(luò)sp頁面晶衷,顯示頁面信息屯烦。
②JSP+JavaBean+Servlet+DAO?
DAO模式:把數(shù)據(jù)庫表的操作轉(zhuǎn)化為對java類的操作。(抽象出數(shù)據(jù)訪問方法[增刪查改]房铭,所有數(shù)據(jù)訪問都有DAO代理)
[在java語言或JSP,在實(shí)現(xiàn)數(shù)據(jù)庫操作時温眉,可以采用將數(shù)據(jù)庫表和普通的java類映射缸匪,將數(shù)據(jù)表轉(zhuǎn)換為類(對象),然后利用對象實(shí)現(xiàn)對數(shù)據(jù)庫的操作类溢。]
[JavaBean和DAO之間的數(shù)據(jù)傳遞和交換凌蔬。][數(shù)據(jù)訪問邏輯使用DAO模塊提供服務(wù),為了使得任何需要訪問數(shù)據(jù)庫中數(shù)據(jù)的邏輯操作都可以以統(tǒng)一的方式使用DAO,一般需要設(shè)計(jì)數(shù)據(jù)訪問邏輯處理的接口闯冷。]
1)數(shù)據(jù)JavaBean:對應(yīng)數(shù)據(jù)庫表結(jié)構(gòu)砂心,即每個字段屬性,以及get/set方法
2)數(shù)據(jù)訪問邏輯處理接口(DAO接口):抽象出來的數(shù)據(jù)訪問方法蛇耀,如增刪查改方法
3)業(yè)務(wù)邏輯處理類(JavaBean)? -DAO:繼承接口 寫具體實(shí)現(xiàn)方法
4)serlvet調(diào)用有關(guān)對象的操作方法
③視圖層設(shè)計(jì)技術(shù):HTML辩诞、JSP、JSTL(JSP標(biāo)準(zhǔn)標(biāo)簽庫)纺涤、EL(表達(dá)式語句)译暂、Ajax技術(shù)(運(yùn)用Javascript和可擴(kuò)展語言xml實(shí)現(xiàn)瀏覽器與服務(wù)器通信)。
④servlet技術(shù):監(jiān)聽器(Listener)和過濾器(Filter)撩炊。
⑤JDBC技術(shù):用于執(zhí)行SQL語句的java api外永,由一組類與接口組成,通過調(diào)用這些類和接口所提供的方法拧咳,可以使用標(biāo)準(zhǔn)的SQL語句來存取數(shù)據(jù)庫中的數(shù)據(jù)伯顶。
⑥struts2框架
1)struts是整合了當(dāng)前動態(tài)網(wǎng)站技術(shù)中Servlet、JSP、JavaBean祭衩、JDBC灶体、XML等相關(guān)開發(fā)技術(shù)基礎(chǔ)上的一種主流Web開發(fā)框架。
2)struts2是基于MVC模式的web框架汪厨,按照MVC的思想主要有控制器層包括核心控制器FilterDispatcher赃春、業(yè)務(wù)控制器Action;模型層劫乱,包括業(yè)務(wù)邏輯組件和數(shù)據(jù)庫訪問組件织中;視圖組件。
3)struts.xml(控制器層組件) : 實(shí)現(xiàn)視圖(頁面JSP)與業(yè)務(wù)邏輯組件(Action)之間關(guān)系的聲明衷戈。
4)對于struts2,各組件之間的數(shù)據(jù)共享是通過Action的屬性實(shí)現(xiàn)的狭吼,提交界面給輸入域x,y提供值;提交后殖妇,進(jìn)入Action刁笙,Action接收數(shù)據(jù)并賦值給自身屬性,然后自動執(zhí)行方法execut(),并返回一個字符串谦趣;在配置文件struts.xml中疲吸,根據(jù)字符串的值,轉(zhuǎn)向不同的處理前鹅。
5)p241例11-1 開發(fā)步驟理解
web.xml配置核心控制器
編寫JSP頁面(視圖組件)? struts標(biāo)簽摘悴、form action=""
編寫業(yè)務(wù)控制器組件(Action)? 屬性變量get/set方法
修改struts.xml配置文件,配置Action和頁面跳轉(zhuǎn)配置
6)struts2中的Action能自動將請求參數(shù)傳遞給對應(yīng)的包含Setter方法的屬性舰绘,但當(dāng)頁面請求參數(shù)較多是蹂喻,把過多的參數(shù)屬性定義在Action中不符合Struts所倡導(dǎo)的松耦合原則,較好的辦法是使用javabean來封裝參數(shù)捂寿,在Action中定義javabean對象作為屬性口四,在表單中使用對象的屬性作為表單域。
jsp中form action="javabean對象"
7)多方法的Action:
前面都是通過execute()方法處理請求秦陋。[action的method缺省是蔓彩,默認(rèn)為excute方法]在實(shí)際應(yīng)用中,所為每個業(yè)務(wù)邏輯定義一個Action,需要在struts.xml中配置的內(nèi)容多,action也多驳概》嘈。可以用一個Action處理多個業(yè)務(wù)請求,并在struts.xml指定業(yè)務(wù)處理所采用的方法抡句。
方式:?
為Action配置method屬性
動態(tài)方法調(diào)用?
使用通配符映射方式
⑦Hibernate持久化技術(shù)
1)Hibernate框架封裝了JDBC的一種來源的對象/關(guān)系映射(ORM)探膊。
2)數(shù)據(jù)持久化:程序中的數(shù)據(jù)以某種形式保存到某存貯介質(zhì)中。
3)通過配置文件和映射文件把java對象或持久化對象(PO)映射到數(shù)據(jù)庫表格待榔,然后通過操作PO實(shí)現(xiàn)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪查改等操作逞壁。
————
自己的理解:
1.JSP+Servlet+JavaBean
? 1)隱含jdbc+mysql流济,
? ? 2)jdbc技術(shù)放在javabean里實(shí)現(xiàn)了,如DbUtils,封裝對數(shù)據(jù)庫表的操作腌闯。
? ? 3)DAO模式時绳瘟,jdbc技術(shù)則處在訪問邏輯處理類中(xxxDAO)。
2.JSP+JavaBean+Servlet+DAO模式
就是改變了javabean,將原來javabean(屬性姿骏、get/set方法糖声、業(yè)務(wù)操作方法)變成多個文件→
數(shù)據(jù)javabean[屬性和get/set方法]、
數(shù)據(jù)訪問邏輯處理接口[抽象的數(shù)據(jù)處理方法]分瘦、
業(yè)務(wù)處理javabean[繼承接口蘸泻,實(shí)現(xiàn)具體方法]
3.struts2框架?
1)用 struts2+數(shù)據(jù)庫 就能完成一個系統(tǒng)項(xiàng)目開發(fā)。 可以取代整個JSP+Servlet+JavaBean嘲玫。
2) 是個MVC模式框架悦施,
控制層功能相當(dāng)于servlet技術(shù),Action相當(dāng)于servlet,且有監(jiān)聽器攔截器
視圖層:JSP struts標(biāo)簽(似JSTL去团、EL表達(dá)式)
模型層:依舊是javabean抡诞。
3)區(qū)別:
在struts2,各組件之間的數(shù)據(jù)共享通過Action的屬性實(shí)現(xiàn)的土陪。
4) servlet和Action的相似點(diǎn)
servlet需要在web.xml中配置昼汗,配置類路徑、servlet名稱鬼雀、訪問地址顷窒。在jsp中 form action="servlet訪問地址"
Action需要在struts中配置,配置名稱(地址映射名稱)取刃、對應(yīng)的實(shí)現(xiàn)類、Action類中處理方法名出刷、結(jié)果配置
4.Hibernate框架
1)可以取代原始JDBC
2)將PO持久化對象映射到數(shù)據(jù)表璧疗,實(shí)現(xiàn)自動化建數(shù)據(jù)庫數(shù)據(jù)表
3)直接操作PO對象實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的操作