十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)mvc在Java項(xiàng)目中的作用有哪些 ,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序設(shè)計(jì)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體。
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯式分離的方法組織代碼,將業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,在界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制的同時(shí)而不需要重新編寫業(yè)務(wù)邏輯。
概覽
MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中,MVC是分層的思想的體現(xiàn),但是區(qū)別于三層設(shè)計(jì)模式(區(qū)別以后再和大家分享)。
MVC是一個(gè)框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP + servlet + javabean的模式。
實(shí)例解析
UML圖:大家熟悉MVC的調(diào)用流程邏輯
第一:JSP:由頁面指令和HTML組成的查詢界面query_condention.jsp,也就是咱們現(xiàn)在的html頁和asp頁面類似。
學(xué)生信息
第二:控制層 SearchStudentServlet用來接受客戶的請(qǐng)求,來處理流程,調(diào)用Model(StudentManager.java),轉(zhuǎn)發(fā)到要請(qǐng)求的后臺(tái)服務(wù)器的student_list.jsp頁面
import java.text.*; import java.util.*; import java.io.*; import javax.servlet.http.*; import javax.servlet.*; import com.bjpowernode.exam.model.*; import com.bjpowernode.exam.manager.*; public class SearchStudentServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sBeginDate = request.getParameter("beginDate"); String sEndDate = request.getParameter("endDate"); Date beginDate = new Date(); Date endDate = new Date(); try { beginDate = new SimpleDateFormat("yyyy-MM-dd").parse(sBeginDate); endDate = new SimpleDateFormat("yyyy-MM-dd").parse(sEndDate); }catch(Exception e) { e.printStackTrace(); } StudentManager studentManager = new StudentManagerImpl(); ListstudentList = studentManager.findStudentList(beginDate, endDate); //將學(xué)生列表設(shè)置到requet范圍中 //request.setAttribute("student_list", studentList); //轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)是在服務(wù)器端轉(zhuǎn)發(fā)的,客戶端是不知道的 //request.getRequestDispatcher("/student_list.jsp").forward(request, response); //將studentList放到session中 HttpSession session = request.getSession(); session.setAttribute("student_list", studentList); //重定向,不會(huì)共享request //以下寫法錯(cuò)誤,該 "/"代表了8080端口 //response.sendRedirect("/student_list.jsp"); response.sendRedirect(request.getContextPath() + "/student_list.jsp"); } }
第三:student_list.jsp頁面接收數(shù)據(jù)形成html,返回到瀏覽器,渲染在界面上
<%@ page language="java" contentType="text/html;charset=GBK"%> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="com.bjpowernode.exam.model.*"%> <%@ page import="com.bjpowernode.exam.manager.*"%>學(xué)生信息
學(xué)生代碼 | 姓名 | 性別 | 出生日期 | 聯(lián)系電話 | 家庭住址 | 班級(jí)名稱 | 年齡 |
<%=student.getStudentId()%> | <%=student.getStudentName()%> | <%=student.getSex()%> | <%=new SimpleDateFormat("yyyy-MM-dd").format(student.getBirthday())%> | <%=student.getContactTel()%> | <%=student.getAddress()%> | <%=student.getClasses().getClassesName()%> | <% long b = 1000L*60L*60L*24L*365L; long a = System.currentTimeMillis() - student.getBirthday().getTime(); %><%=a/b%> |
在View的student_list.jsp頁面中是大量的html和java代碼的混合,在查詢條件界面query_condention.jsp主要是html,因?yàn)椴簧婕昂笈_(tái)數(shù)據(jù)的交互.
第四:xml配置Servlet:
SearchStudentServlet SearchStudentServlet SearchStudentServlet /SearchStudentServlet
第五:顯示查詢結(jié)果
總結(jié)
以上query_condention.jsp(輸入查詢條件)、SearchStudentServlet.java(請(qǐng)求控制Control分)+student_list.jsp(界面顯示)的組合相當(dāng)于三層中的U層,都與界面的顯示相關(guān),而StudentManager.java才是進(jìn)入業(yè)務(wù)處理相當(dāng)于三層的B層。故,我們可以簡(jiǎn)單理解成,MVC就是java基于U層的又一個(gè)細(xì)化,將界面顯示和請(qǐng)求處理做了進(jìn)一步細(xì)化分工。
MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中,MVC是分層的思想的體現(xiàn),但是區(qū)別于三層設(shè)計(jì)模式(區(qū)別以后再和大家分享)。
上述就是小編為大家分享的mvc在Java項(xiàng)目中的作用有哪些 了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。