您好,登錄后才能下訂單哦!
今天小編給大家分享一下MVC模型層分離實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
什么是模型層,它是用來干什么的?模型層其實可以理解為一種邏輯。就像解題模型一樣,servlet將數據傳給模型層,然后模型給出一個結果返回給servlet。沒錯,模型層也可以被稱為業務邏輯層(在學習數據庫操作后,會將模型層進行拆分,比如拆分成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.5655pk.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();
}
}
這里的代碼中有一部分是進行請求參數的判定的,這一部分的代碼雖然不多(因為沒有完整寫完),但我們仍然有必要將從servlet中剝離。接下來我們新建一個專門的java類(順便擴寫將完整邏輯寫完,以顯示差異性)來處理這部分邏輯:
public class model {
String url = "";
String element = "";
public void select(String classname) {
if (classname.equals("qd")) {//目前只做前端判定,后期再增加
url = "http://www.5655pk.com/courses?direction=2120&tag=0&type=&condition=&order=";
element = "前端微課";
}else if (classname.equals("hd")){
url ="http://www.5655pk.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("db")){
url ="http://www.5655pk.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("cp")){
url ="http://www.5655pk.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}
else if (classname.equals("Android")){
url ="http://www.5655pk.com/courses?direction=2126&tag=0&type=&condition=&order=";
element="后端微課";
}else if (classname.equals("other")){
url ="http://www.5655pk.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();
}
}
如上代碼所示,我們將業務邏輯代碼拆分到一個專門的model類中,然后通過調用model類的方法來實現業務邏輯,這樣業務邏輯就被拆分到model類中了,servlet只需要在請求到來的時候,明白要調用什么model的方法,然后將model返回的處理完畢的數據轉發給JSP進行視圖的輸出即可。剝離了業務邏輯代碼和視圖表現代碼的servlet剩下的功能就是作為視圖和模型的連接,所以他又被稱為控制器(十分形象,servlet控制了業務邏輯的調用和表現代碼的調用)。
以上就是“MVC模型層分離實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。