1.什么是MVC
MVC是Model-View-Controller的简称,即模型-视图-控制器。
2.MVC处理过程
3.MVC案例1
1)界面设计:
studentInfoQueryForm.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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>欢迎使用学生查询模块</h2>
<a href="stuInfoQuery">查询学生信息</a>
</body>
</html>
studentInfoDisplayForm.jsp为信息显示界面
<%@page import="java.util.List"%>
<%@page import="com.zhaoliang.javaweb.Student"%>
<%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table>
<%
List<Student> stus = (List<Student>)request.getAttribute("students");
%>
<tr>
<td>ID</td>
<td>NAME</td>
<td>AGE</td>
<td>MAJOR</td>
</tr>
<%
for(Student student : stus){
%>
<tr>
<td><%=student.getsID() %></td>
<td><%=student.getsName() %></td>
<td><%=student.getsAge() %></td>
<td><%=student.getsMajor() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
2)控制类(Servlet)设计
StuInfoQueryServlet.java:用来调用相关的model类和JSP页面
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class StuInfoQueryServlet 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.queryStudentInfo();
request.setAttribute("students", students);
request.getRequestDispatcher("/studentInfoDisplayForm.jsp").forward(request, response);
}
}
3)数据模型(Model)设计
Student.java:用来记录数据库中数据记录的属性数据
public class Student {
private Integer sID;
private String sName;
private Integer sAge;
private String sMajor;
public Integer getsID() {
return sID;
}
public void setsID(Integer sID) {
this.sID = sID;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public Integer getsAge() {
return sAge;
}
public void setsAge(Integer sAge) {
this.sAge = sAge;
}
public String getsMajor() {
return sMajor;
}
public void setsMajor(String sMajor) {
this.sMajor = sMajor;
}
public Student(Integer sID, String sName, Integer sAge, String sMajor) {
super();
this.sID = sID;
this.sName = sName;
this.sAge = sAge;
this.sMajor = sMajor;
}
public Student() {
}
}
StudentDao.java:用来连接数据库,并查询获取数据库记录数据
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 {
public List<Student> queryStudentInfo(){
List<Student> students = new ArrayList<>();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
String driverClass = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql:///haha";
String user = "root";
String password = "123456";
Class.forName(driverClass);
connection = DriverManager.getConnection(url, user, password);
String sqlString = "SELECT id,stu_name,stu_age,stu_major FROM student";
preparedStatement = connection.prepareStatement(sqlString);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
int sID = resultSet.getInt(1);
String sName = resultSet.getString(2);
int sAge = resultSet.getInt(3);
String sMajor = resultSet.getString(4);
Student student = new Student(sID, sName, sAge, sMajor);
students.add(student);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement != null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return students;
}
}