JSP+JavaBean+Servlet技术(MVC模型)
一,Servlet開發(fā)
用戶在瀏覽器中輸入一個(gè)網(wǎng)址并回車,瀏覽器會(huì)向服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求。服務(wù)器端程序接受這個(gè)請(qǐng)求,并對(duì)請(qǐng)求進(jìn)行處理,然后發(fā)送一個(gè)回應(yīng)。瀏覽器收到回應(yīng),再把回應(yīng)的內(nèi)容顯示出來。這種請(qǐng)求—響應(yīng)模式就是典型的Web應(yīng)用程序訪問過程。
? ? ? ?JavaWeb應(yīng)用程序中所有的請(qǐng)求—響應(yīng)都是由Servlet完成的。Servlet是JavaWeb的核心程序,所有的網(wǎng)址最終都交給Servlet處理。Servlet并沒有main之類的執(zhí)行方法。當(dāng)用戶訪問服務(wù)器的時(shí)候,Tomcat是通過調(diào)用Servlet的某些方法來完成整個(gè)處理過程的。?
?Servlet是什么
? ?一個(gè)Servlet程序就是一個(gè)實(shí)現(xiàn)了特殊接口的Java類,它由支持Servlet的Web服務(wù)器調(diào)用和啟動(dòng)運(yùn)行。一個(gè)Servlet程序負(fù)責(zé)處理它所對(duì)應(yīng)的一個(gè)或一組URL地址的訪問請(qǐng)求,并接收客戶端發(fā)出的訪問請(qǐng)求信息和產(chǎn)生響應(yīng)內(nèi)容。
Servlet程序可以完成普通Java程序所能完成的大多數(shù)任務(wù):,
1,獲取客戶端通過HTML的FORM表單提交的數(shù)據(jù)和URL后面的參數(shù)信息
2,創(chuàng)建對(duì)客戶端的響應(yīng)信息內(nèi)容,
3,訪問服務(wù)器端的文件系統(tǒng)
4,連接數(shù)據(jù)庫(kù)并開發(fā)基于數(shù)據(jù)庫(kù)的應(yīng)用,
5,調(diào)用其它的Java類
Servlet工作流程
瀏覽器提交的請(qǐng)求是遵循HTTP協(xié)議的文本。這段文本由服務(wù)器也就是Tomcat接收并解析,封裝成了HttpServletRequest類型的request對(duì)象。所有的HTTP頭數(shù)據(jù)都可以通過request相應(yīng)的方法查詢到。Tomcat同時(shí)把輸出流封裝成為HttpServletResponse類型的response對(duì)象,通過設(shè)置response對(duì)象可以控制輸出的內(nèi)容。在請(qǐng)求—響應(yīng)的這個(gè)過程中,Tomcat把request對(duì)象、response對(duì)象作為參數(shù),調(diào)用Servlet的相應(yīng)方法,例如doPost(request,response)、doGet(request,response)等。
Servlet接口
Servlet是一種實(shí)現(xiàn)了javax.servlet.Servlet接口的類。Servlet接口規(guī)定了特定的方法來處理特定的請(qǐng)求。Servlet規(guī)范是建立在HTTP規(guī)范基礎(chǔ)上的。HTTP 1.1 規(guī)范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中訪問方式,其中最常用的就是GET和POST了。
GET:表示查詢信息,URL中可以附帶少量的參數(shù)信息,但是URL總長(zhǎng)度不能超過255個(gè)字符,并且參數(shù)會(huì)顯示在瀏覽器地址欄。
POST:表示提交信息,一般用于提交大數(shù)據(jù)信息或者文件,提交的內(nèi)容不受長(zhǎng)度限制,并且不會(huì)顯示在瀏覽器地址欄中。
Servlet工作流程
利用Servlet完成的Web應(yīng)用的實(shí)際工作流程是通過Tomcat服務(wù)器發(fā)布服務(wù),客戶端與服務(wù)器端之間的交互遵循Http協(xié)議完成的。具體工作流程如下:
客戶端瀏覽器向服務(wù)器端發(fā)送請(qǐng)求。
1,服務(wù)器端由Tomcat服務(wù)器提供的Servlet容器解析接收到的請(qǐng)求。
2,通過Web應(yīng)用程序的配置文件web.xml,解析到對(duì)應(yīng)執(zhí)行的Servlet。
3,Servlet完成客戶端發(fā)送的請(qǐng)求邏輯,并完成向客戶端發(fā)送的響應(yīng)內(nèi)容。
4,由Tomcat服務(wù)器提供的Servlet容器向客戶端瀏覽器進(jìn)行響應(yīng)。
一,Java Web應(yīng)用設(shè)計(jì)模式:
1)采用JSP+JavaBean的技術(shù)
JSP獨(dú)自響應(yīng)請(qǐng)求并發(fā)送處理結(jié)果給用戶,數(shù)據(jù)通過JavaBean來處理,是JSP技術(shù)發(fā)展初期經(jīng)常采用模式1,適用于一些小型開發(fā)項(xiàng)目。
2)采用JSP+JavaBean+Servlet技術(shù)(MVC模型)
MVC(Model-View-Controller)模型,適用于中型以上開發(fā)項(xiàng)目
“模型-視圖-控制器”關(guān)系圖:
MVC構(gòu)架設(shè)計(jì)圖:
二,Servlet中的請(qǐng)求轉(zhuǎn)發(fā)機(jī)制
Web應(yīng)用中,常由Servlet來充當(dāng)調(diào)度員的角色,把這樣的Servlet叫控制器,可以將請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)Servlet或JSP頁(yè)面,由它們對(duì)請(qǐng)求作進(jìn)一步處理,并產(chǎn)生對(duì)請(qǐng)求的響應(yīng)。Servlet中實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)方式:
1)共享一個(gè)request:request.getRequestDispacher(“xxx.jsp/xxxservlet”).forword(requet,response);
2)重定向:
Request.sendRedict(“xxx.jsp/xxxservlet””);
三,運(yùn)用MVC模式開發(fā)WEB應(yīng)用的步驟
1)定義bean來表示數(shù)據(jù)和封裝業(yè)務(wù)邏輯
a)定義數(shù)據(jù)Bean來表示需要顯示給用戶的結(jié)果
b)定義業(yè)務(wù)Bean來封裝業(yè)務(wù)邏輯,BeanDao.
2)使用Servlet處理用戶請(qǐng)求
a)根據(jù)用戶請(qǐng)求,將數(shù)據(jù)的處理結(jié)果寫入bean,并將其存于請(qǐng)求或會(huì)話的上下文中
b)通過請(qǐng)求轉(zhuǎn)發(fā)的形式,將請(qǐng)求轉(zhuǎn)發(fā)到合適的頁(yè)面,servlet不需要?jiǎng)?chuàng)建任何輸出,輸出由JSP頁(yè)面完成
2)JSP頁(yè)面輸出結(jié)果: 從bean中獲取數(shù)據(jù)輸出
總之:
① JSP作界面
② Servlet接受用戶請(qǐng)求,并作初步處理,然后將請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)
③業(yè)務(wù)處理借助Bean
總結(jié)
以上是生活随笔為你收集整理的JSP+JavaBean+Servlet技术(MVC模型)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于ServletJsp的网上书店设计(
- 下一篇: Spring IOC的理解总结