Servlet是Java程序,所以在Servlet中完全可以编写JDBC代码连接数据库
编写jdbc代码
package servlet;
import jakarta.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
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 {
// 设置响应的内容类型是普通文本或html代码,可以让数据库数据直接显示在页面上
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:3306/bjpowernode";
String user = "root";
String password = "123";
conn = DriverManager.getConnection(url,user,password);
// 第三步:取预编译数据库的操作对象
String sql = "select no,name from t_student";
//第四步执行sql
ps = conn.prepareStatement(sql);
//处理查询结果集
rs = ps.executeQuery();
while (rs.next()){
String no = rs.getString("no");
String name = rs.getString("name");
out.println(no +", "+name +"<br>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally { //释放资源
try {
if (rs !=null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (ps !=null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn !=null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
将StudentServlet.class(带包名一起)拷贝到WEB-INF\classes目录下文件放入
WEB-INF\classes\servlet\StudentServlet.class
在web.xml文件中编写配置信息,让“请求路径”和“Servlet类名”关联在一起
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true">
<servlet>
<servlet-name>student</servlet-name>
<servlet-class>servlet.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>student</servlet-name>
<url-pattern>/molu/abc/sdf</url-pattern>
</servlet-mapping>
</web-app>
设置一个超链接intex1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>intex page</title>
</head>
<body>
<a href="/crm/molu/abc/sdf">Student Servlet</a>
<!--http://127.0.0.1:8080/crm/molu/abc/sdf 前面的端口和ip地址都可以省略 -->
</body>
</html>
最重要的是在一个webapp中去连接数据库,需要将(mysql-connector-java-8.0.27.jar)驱动jar包放到WEB-INF/lib目录下。(com.mysql.cj.jdbc.Driver 这个类就在驱动jar包当中。)
启动Tomcat服务器
打开浏览器,在浏览器地址栏上输入url:http://127.0.0.1:8080/crm/intex1.html
程序对数据库增删改后,页面刷新后,显示数据也会自动同步,实现动态网页