用servlet写一个宿舍管理系统
时间: 2023-10-07 15:13:23 浏览: 216
基于servlet学生宿舍管理系统
5星 · 资源好评率100%
好的,我可以为你提供一个宿舍管理系统的servlet的基本框架。以下是一个简单的实现方式:
1. 首先,需要创建一个servlet类来处理请求和响应。可以继承HttpServlet类。
2. 在servlet中,需要实现doGet()和doPost()方法,来响应GET和POST请求。这里假设我们使用GET请求来获取数据,POST请求来提交数据。
3. 在doGet()方法中,可以实现获取宿舍信息的功能。可以使用JDBC连接数据库,查询宿舍信息,并将结果返回到浏览器。
4. 在doPost()方法中,可以实现修改宿舍信息的功能。获取用户提交的表单数据,更新数据库中的宿舍信息,并返回成功或失败的信息到浏览器。
5. 可以使用JSP页面来呈现宿舍信息,并提供修改宿舍信息的表单。在servlet中,可以使用getRequestDispatcher()方法来转发请求到JSP页面。
6. 在web.xml文件中配置servlet和JSP页面的映射关系。
下面是一个简单的宿舍管理系统servlet的代码示例:
```java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DormServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取宿舍信息
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
stmt = conn.prepareStatement("SELECT * FROM dorm");
rs = stmt.executeQuery();
// 将结果返回到浏览器
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html><head><title>Dorm Info</title></head><body>");
out.println("<table border=\"1\"><tr><th>ID</th><th>Name</th><th>Capacity</th></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("name") + "</td><td>" + rs.getInt("capacity") + "</td></tr>");
}
out.println("</table>");
out.println("</body></html>");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (Exception e) {}
try {
stmt.close();
} catch (Exception e) {}
try {
conn.close();
} catch (Exception e) {}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 修改宿舍信息
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int capacity = Integer.parseInt(request.getParameter("capacity"));
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
stmt = conn.prepareStatement("UPDATE dorm SET name = ?, capacity = ? WHERE id = ?");
stmt.setString(1, name);
stmt.setInt(2, capacity);
stmt.setInt(3, id);
int result = stmt.executeUpdate();
// 返回成功或失败的信息到浏览器
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
if (result == 1) {
out.println("Update dorm info successfully");
} else {
out.println("Update dorm info failed");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
stmt.close();
} catch (Exception e) {}
try {
conn.close();
} catch (Exception e) {}
}
}
}
```
注意,以上代码仅为示例,实际应用中需要根据具体需求进行修改和完善。
阅读全文