MVC模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,
用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,
在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC 是 Model-View-Control 的简称,即模型-视图-控制器。它是一个存在于服务器
表达层的模型,它将应用分开,改变应用之间的高度耦合。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。包括Service层和Dao层,通常模型对象负责在数据库中存取数据。
1 public void update(AdminBean adminBean) { 2 // TODO Auto-generated method stub 3 String sql = "update admin set username='" + adminBean.getUsername() + "',password='" + adminBean.getPassword() 4 + "' where id='" + adminBean.getId() + "'"; 5 Connection conn = DBUtil.getConn(); 6 Statement state = null; 7 try { 8 state = conn.createStatement(); 9 state.executeUpdate(sql); 10 } catch (Exception e) { 11 e.printStackTrace(); 12 } finally { 13 DBUtil.close(state, conn); 14 } 15 }
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的,比如html静态页面,jsp动态页面。
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html> <html> <head> <meta charset="GB18030"> <title>Insert title here</title> </head> <body>你好啊 </body> </html>
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。例:在web.xml中把action同servlet连接起来,控制数据的传递。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd "> 3 <display-name>HBKJ</display-name> 4 <!-- 管理员 --> 5 <servlet> 6 <!-- servlet-name的值是自定义的,该值要和<servlet-mapping>中的servlet-name的值保持一致 --> 7 <servlet-name>AdminServlet</servlet-name> 8 <!-- 配置的servlet的类完全限定名 --> 9 <servlet-class>com.mysql.jsp.servlet.AdminServlet</servlet-class> 10 </servlet> 11 <servlet-mapping> 12 <servlet-name>AdminServlet</servlet-name> 13 <!-- 访问servlet路径 ,以/开头 --> 14 <url-pattern>/admin/adminServlet</url-pattern> 15 </servlet-mapping> 16 17 18 <servlet> 19 <servlet-name>servlettable2</servlet-name> 20 <!-- 配置的servlet的类完全限定名 --> 21 <servlet-class>com.mysql.jsp.servlet.servlettable2</servlet-class> 22 </servlet> 23 <servlet-mapping> 24 <servlet-name>servlettable2</servlet-name> 25 <!-- 访问servlet路径 ,以/开头 --> 26 <url-pattern>/admin/table2/servlet2</url-pattern> 27 </servlet-mapping> 28 29 <servlet> 30 <servlet-name>servlettable3</servlet-name> 31 <!-- 配置的servlet的类完全限定名 --> 32 <servlet-class>com.mysql.jsp.servlet.servlettable3</servlet-class> 33 </servlet> 34 <servlet-mapping> 35 <servlet-name>servlettable3</servlet-name> 36 <!-- 访问servlet路径 ,以/开头 --> 37 <url-pattern>/admin/table3/servlet3</url-pattern> 38 </servlet-mapping> 39 40 <servlet> 41 <servlet-name>servlettable4</servlet-name> 42 <!-- 配置的servlet的类完全限定名 --> 43 <servlet-class>com.mysql.jsp.servlet.servlettable4</servlet-class> 44 </servlet> 45 <servlet-mapping> 46 <servlet-name>servlettable4</servlet-name> 47 <!-- 访问servlet路径 ,以/开头 --> 48 <url-pattern>/admin/table4/servlet4</url-pattern> 49 </servlet-mapping> 50 51 <servlet> 52 <servlet-name>servletcheck</servlet-name> 53 <!-- 配置的servlet的类完全限定名 --> 54 <servlet-class>com.mysql.jsp.servlet.servletcheck</servlet-class> 55 </servlet> 56 <servlet-mapping> 57 <servlet-name>servletcheck</servlet-name> 58 <!-- 访问servlet路径 ,以/开头 --> 59 <url-pattern>/admin/head/servletcheck</url-pattern> 60 </servlet-mapping> 61 62 <welcome-file-list> 63 <welcome-file>index.html 64 welcome-file 65 </welcome-file> 66 <welcome-file>index.htm</welcome-file> 67 <welcome-file>index.jsp</welcome-file> 68 <welcome-file>default.html</welcome-file> 69 <welcome-file>default.htm</welcome-file> 70 <welcome-file>default.jsp</welcome-file> 71 </welcome-file-list> 72 </web-app>
mvc模式将三种不同功能的代码块从设计之初就分离开来,代码块高内聚低耦合,模型-视图-控制器三个模块实现了前后端的分离,也就是客户端与服务器端的代码分离,更便于修改更新代码。