您好,登錄后才能下訂單哦!
今天小編給大家分享一下MVC模型層分離實(shí)例分析的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
什么是模型層,它是用來(lái)干什么的?模型層其實(shí)可以理解為一種邏輯。就像解題模型一樣,servlet將數(shù)據(jù)傳給模型層,然后模型給出一個(gè)結(jié)果返回給servlet。沒(méi)錯(cuò),模型層也可以被稱為業(yè)務(wù)邏輯層(在學(xué)習(xí)數(shù)據(jù)庫(kù)操作后,會(huì)將模型層進(jìn)行拆分,比如拆分成service層和dao層)。
回顧:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String classname = "";
String url = "";
String element = "";
classname = request.getParameter("class");
if (classname.equals("qd")) {//目前只做前端判定,后期再增加
url = "http://www.kemok4.com/courses?direction=2120&tag=0&type=&condition=&order=";
element = "前端微課";
}
request.setAttribute("url",url);
request.setAttribute("element",element);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
try {
view.forward(request,response);
} catch (ServletException e) {
e.printStackTrace();
}
}
這里的代碼中有一部分是進(jìn)行請(qǐng)求參數(shù)的判定的,這一部分的代碼雖然不多(因?yàn)闆](méi)有完整寫(xiě)完),但我們?nèi)匀挥斜匾獙膕ervlet中剝離。接下來(lái)我們新建一個(gè)專門(mén)的java類(lèi)(順便擴(kuò)寫(xiě)將完整邏輯寫(xiě)完,以顯示差異性)來(lái)處理這部分邏輯:
public class model {
String url = "";
String element = "";
public void select(String classname) {
if (classname.equals("qd")) {//目前只做前端判定,后期再增加
url = "http://www.kemok4.com/courses?direction=2120&tag=0&type=&condition=&order=";
element = "前端微課";
}else if (classname.equals("hd")){
url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("db")){
url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("cp")){
url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}
else if (classname.equals("Android")){
url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("other")){
url ="http://www.kemok4.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}
}
public String getUrl() {
return url;
}
public String getElement() {
return element;
}
}
然后修改servlet的代碼(只展示doGet()
方法):
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String classname = "";
classname = request.getParameter("class");
model select = new model();
select.select(classname);
request.setAttribute("url",select.url);
request.setAttribute("element",select.element);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
try {
view.forward(request,response);
} catch (ServletException e) {
e.printStackTrace();
}
}
如上代碼所示,我們將業(yè)務(wù)邏輯代碼拆分到一個(gè)專門(mén)的model類(lèi)中,然后通過(guò)調(diào)用model類(lèi)的方法來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯,這樣業(yè)務(wù)邏輯就被拆分到model類(lèi)中了,servlet只需要在請(qǐng)求到來(lái)的時(shí)候,明白要調(diào)用什么model的方法,然后將model返回的處理完畢的數(shù)據(jù)轉(zhuǎn)發(fā)給JSP進(jìn)行視圖的輸出即可。剝離了業(yè)務(wù)邏輯代碼和視圖表現(xiàn)代碼的servlet剩下的功能就是作為視圖和模型的連接,所以他又被稱為控制器(十分形象,servlet控制了業(yè)務(wù)邏輯的調(diào)用和表現(xiàn)代碼的調(diào)用)。
以上就是“MVC模型層分離實(shí)例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。