您的位置:首页 > 其它

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:运行结果



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: