MVC

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

































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章