目录
视图层(add.jsp, delete.jsp, edit.jsp, list.jsp):
控制器层(addStudent.jsp, deleteStudent.jsp, editStudent.jsp, StudentController.java):
扫描二维码关注公众号,回复:
16220968 查看本文章
模型层(Student.java):
public class Student {
private int id;
private String name;
private String gender;
private String birthday;
private String major;
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 getGender() { return gender; }
public void setGender(String gender) { this.gender = gender; }
public String getBirthday() { return birthday; }
public void setBirthday(String birthday) { this.birthday = birthday; }
public String getMajor() { return major; }
public void setMajor(String major) { this.major = major; }
}
数据访问对象层(StudentDAO.java):
public class StudentDAO {
private Connection conn;
public StudentDAO() {
conn = Database.getConnection();
}
public void addStudent(Student student) {
try {
PreparedStatement ps = conn.prepareStatement("INSERT INTO student(name, gender, birthday, major) VALUES (?, ?, ?, ?)");
ps.setString(1, student.getName());
ps.setString(2, student.getGender());
ps.setString(3, student.getBirthday());
ps.setString(4, student.getMajor());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteStudent(int id) {
try {
PreparedStatement ps = conn.prepareStatement("DELETE FROM student WHERE id=?");
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateStudent(Student student) {
try {
PreparedStatement ps = conn.prepareStatement("UPDATE student SET name=?, gender=?, birthday=?, major=? WHERE id=?");
ps.setString(1, student.getName());
ps.setString(2, student.getGender());
ps.setString(3, student.getBirthday());
ps.setString(4, student.getMajor());
ps.setInt(5, student.getId());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Student> getAllStudents() {
List<Student> students = new ArrayList<Student>();
try {
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM student");
while (rs.next()) {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setBirthday(rs.getString("birthday"));
student.setMajor(rs.getString("major"));
students.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public Student getStudentById(int id) {
Student student = new Student();
try {
PreparedStatement ps = conn.prepareStatement("SELECT * FROM student WHERE id=?");
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setGender(rs.getString("gender"));
student.setBirthday(rs.getString("birthday"));
student.setMajor(rs.getString("major"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
}
视图层(add.jsp, delete.jsp, edit.jsp, list.jsp):
add.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add Student</title>
</head>
<body>
<form action="addStudent.jsp" method="post">
Name: <input type="text" name="name"><br/>
Gender: <input type="radio" name="gender" value="Male"> Male
<input type="radio" name="gender" value="Female"> Female<br/>
Birthday: <input type="text" name="birthday"><br/>
Major: <input type="text" name="major"><br/>
<input type="submit" value="Add">
</form>
</body>
</html>
delete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Delete Student</title>
</head>
<body>
<form action="deleteStudent.jsp" method="post">
ID: <input type="text" name="id"><br/>
<input type="submit" value="Delete">
</form>
</body>
</html>
edit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Edit Student</title>
</head>
<body>
<form action="editStudent.jsp" method="post">
ID: <input type="text" name="id"><br/>
Name: <input type="text" name="name"><br/>
Gender: <input type="radio" name="gender" value="Male"> Male
<input type="radio" name="gender" value="Female"> Female<br/>
Birthday: <input type="text" name="birthday"><br/>
Major: <input type="text" name="major"><br/>
<input type="submit" value="Update">
</form>
</body>
</html>
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>List Students</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Gender</th>
<th>Birthday</th>
<th>Major</th>
<th>Edit</th>
<th>Delete</th>
</tr>
<%
StudentDAO studentDAO = new StudentDAO();
List<Student> students = studentDAO.getAllStudents();
for (Student student : students) {
out.println("<tr>");
out.println("<td>" + student.getId() + "</td>");
out.println("<td>" + student.getName() + "</td>");
out.println("<td>" + student.getGender() + "</td>");
out.println("<td>" + student.getBirthday() + "</td>");
out.println("<td>" + student.getMajor() + "</td>");
out.println("<td><a href='edit.jsp?id=" + student.getId() + "'>Edit</a></td>");
out.println("<td><a href='delete.jsp?id=" + student.getId() + "'>Delete</a></td>");
out.println("</tr>");
}
%>
</table>
<br>
<a href="add.jsp">Add Student</a>
</body>
</html>
控制器层(addStudent.jsp, deleteStudent.jsp, editStudent.jsp, StudentController.java):
addStudent.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
Student student = new Student();
student.setName(request.getParameter("name"));
student.setGender(request.getParameter("gender"));
student.setBirthday(request.getParameter("birthday"));
student.setMajor(request.getParameter("major"));
StudentDAO studentDAO = new StudentDAO();
studentDAO.addStudent(student);
response.sendRedirect("list.jsp");
%>
deleteStudent.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
int id = Integer.parseInt(request.getParameter("id"));
StudentDAO studentDAO = new StudentDAO();
studentDAO.deleteStudent(id);
response.sendRedirect("list.jsp");
%>
editStudent.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
Student student = new Student();
student.setId(Integer.parseInt(request.getParameter("id")));
student.setName(request.getParameter("name"));
student.setGender(request.getParameter("gender"));
student.setBirthday(request.getParameter("birthday"));
student.setMajor(request.getParameter("major"));
StudentDAO studentDAO = new StudentDAO();
studentDAO.updateStudent(student);
response.sendRedirect("list.jsp");
%>
StudentController.java
@WebServlet("/")
public class StudentController extends HttpServlet {
private static final long serialVersionUID = 1L;
private StudentDAO studentDAO;
public void init() {
studentDAO = new StudentDAO();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getServletPath();
switch (action) {
case "/new":
showAddForm(request, response);
break;
case "/insert":
addStudent(request, response);
break;
case "/delete":
deleteStudent(request, response);
break;
case "/edit":
showEditForm(request, response);
break;
case "/update":
updateStudent(request, response);
break;
default:
listStudents(request, response);
break;
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private void listStudents(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> students = studentDAO.getAllStudents();
request.setAttribute("students", students);
RequestDispatcher dispatcher = request.getRequestDispatcher("list.jsp");
dispatcher.forward(request, response);
}
private void showAddForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("add.jsp");
dispatcher.forward(request, response);
}
private void addStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student();
student.setName(request.getParameter("name"));
student.setGender(request.getParameter("gender"));
student.setBirthday(request.getParameter("birthday"));
student.setMajor(request.getParameter("major"));
studentDAO.addStudent(student);
response.sendRedirect("list");
}
private void deleteStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
studentDAO.deleteStudent(id);
response.sendRedirect("list");
}
private void showEditForm(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
Student student = studentDAO.getStudentById(id);
RequestDispatcher dispatcher = request.getRequestDispatcher("edit.jsp");
request.setAttribute("student", student);
dispatcher.forward(request, response);
}
private void updateStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Student student = new Student();
student.setId(Integer.parseInt(request.getParameter("id")));
student.setName(request.getParameter("name"));
student.setGender(request.getParameter("gender"));
student.setBirthday(request.getParameter("birthday"));
student.setMajor(request.getParameter("major"));
studentDAO.updateStudent(student);
response.sendRedirect("list");
}
}
注:如果使用Maven进行工程管理,则需要在pom.xml文件中添加相应的依赖包