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; } }