MVC模型介绍
2018-03-29 19:24
316 查看
MVC 是 Model-View-Controller的简称,即模型-视图-控制器的简称。
MVC是一种设计模式,它把应用程序分成三个核心模块:模型,视图,控制器,它们各自处理自己的事情。
模型(model)
POJO,普通的java类,以及访问数据库都叫model。
模型是应用程序的主体部分,模型表示业务数据和业务逻辑。
一个模型能为多个视图提供数据。
由于应用模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性。
视图(view)
视图是用户看到并与之交互的界面,作用如下:
视图向用户显示相关的数据 接受用户的输入 不进行任何实际的业务处
控制器(Controller)
控制器接受用户的输入并调用模型和视图去完成用户的需求。
控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。
案例:
mysql数据库名:students
创建一个表:student
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(5) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `sex` varchar(2) NOT NULL, `age` int(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
创建一个servlet类 : ListAllStudentsServlet
package com.alin.javaweb.mvc; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/listAllStudents") public class ListAllStudentsServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StudentDao studentDao = new StudentDao(); List<Student> students = studentDao.getAll(); request.setAttribute("student", students); request.getRequestDispatche c8b2 r("/students.jsp").forward(request, response); } }
一个Javabean:Student类
package com.alin.javaweb.mvc; public class Student { private int id; private String name; private String sex; private int age; public Student() { } public Student(int id, String name, String sex, int age) { super(); this.id = id; this.name = name; this.sex = sex; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
连接数据库的Dao类:StudentDao
package com.alin.javaweb.mvc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class StudentDao { private final static String url = "jdbc:mysql://localhost:3306/Students"; private final static String user = "root"; private final static String password = "2012122131435"; public static List<Student> getAll() { List<Student> students = new ArrayList<Student>(); Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(url,user,password); String sql = "select * from student"; statement = connection.prepareStatement(sql); resultSet = statement.executeQuery(); while(resultSet.next()) { int id = resultSet.getInt(1); String name = resultSet.getString(2); String sex = resultSet.getString(3); int age = resultSet.getInt(4); Student student = new Student(id, name, sex, age); students.add(student); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if(resultSet != null) { resultSet.close(); } } catch (SQLException e2) { e2.printStackTrace(); } try { if(statement != null) { statement.close(); } } catch (SQLException e2) { e2.printStackTrace(); } try { if(connection != null) { connection.close(); } } catch (SQLException e2) { e2.printStackTrace(); } } return students; } }
两个jsp页面: listAllStudents.jsp 和 显示查询所有学生的students.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <a href="listAllStudents">listAllStudents</a> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.List" %> <%@ page import="com.alin.javaweb.mvc.Student" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>listAllStudent</title> </head> <body> <% List<Student> stud = (List<Student>) request.getAttribute("student"); %> <table width="577" border="1" cellpadding="1" cellspacing="1" bordercolor="#0000FF" style="color:red" align="center" > <tr > <th>id</th> <th>name</th> <th>sex</th> <th>age</th> </tr> <% for(Student stu : stud){ %> <tr> <td align="center" style="color:#33ffff"><%= stu.getId() %></td> <td align="center" style="color:#33ffff"><%= stu.getName() %></td> <td align="center" style="color:#33ffff"><%= stu.getSex() %></td> <td align="center" style="color:#33ffff"><%= stu.getAge() %></td> </tr> <% } %> </table> </body> </html>
启动tomcat:运行结果
相关文章推荐
- J2EE中的MVC模型介绍
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二【领域模型的概念介绍及MVC模型绑定】
- MVC模型简单介绍
- MVC模型以及Model2模型介绍
- MVC模型介绍
- MVC模型流程初步介绍-访问页面及更改默认控制器
- J2EE中的MVC模型介绍
- 简单介绍下mvc的路由,加载控制器,模型,视图
- MVC模型介绍
- 《Pro ASP.NET MVC 3 Framework》学习笔记之四【领域模型介绍】
- MVC设计模型的功能介绍及优缺点分析
- 008 Android programming 3rd 学习写android程序以及MVC模型
- jvm 内存模型介绍
- mvc之控制器,模型和视图
- 【EntityFramework系列教程一,翻译】为ASP.NET MVC创建一个数据模型
- 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍
- Asp.net MVC验证那些事(1)-- 介绍和验证规则使用
- HENXU-SOA的业务规划和建模方法之八——组件化业务模型(CBM)介绍 推荐
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
- 认识MVC模型及其变种