StudentServlet.java
/*
* Copyright (c) 2020, 2021,great-sun https://blog.csdn.net/weixin_44728473 All rights reserved.
*
*/
package org;
//该代码所用Tomcat为10.0.14自9以上servlet架包改成下面的,9以下不能运行需替换架包
import jakarta.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
/**
* @author great-sun [https://blog.csdn.net/weixin_44728473]
*/
public class StudentServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse)
throws ServletException, IOException {
servletResponse.setContentType("text/html");
PrintWriter out = servletResponse.getWriter();
//编写JDBC代码,连接数据库,查询所有学生的信息
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql://localhost:3305/bjpowernode";
String user = "root";
String password ="";
conn = DriverManager.getConnection(url, user, password);
//获取预编译操作对象
String sql = "select no, name from t_student";
ps = conn.prepareStatement(sql);
//执行sql
rs = ps.executeQuery();
//处理查询结果集
while (rs.next())
{
String no = rs.getString("no");
String name = rs.getString("name");
out.print(no +","+name + "<br>");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
//释放资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
student.html
这里的xmm为项目名,通过编辑tomcat在Deployment里面的Applocation contect加/xmm
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/xmm/servlet/student">student list</a>
</body>
</html>
web.xml
servlet-name前后保持一致,可以随意写
servlet-class为项目全类名
url-pattern为servlet地址,通过浏览器显示超链接访问servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>studentServlet</servlet-name>
<servlet-class>org.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>studentServlet</servlet-name>
<url-pattern>/servlet/student</url-pattern>
</servlet-mapping>
</web-app>