目标:
安装环境 了解基础架构 了解代码执行顺序 与数据库进行连接
准备:
安装 下载IDEA并下载tomcat(后续出教程)
之后新建项目

注意点如下
1.应用程序服务器选择Web开发
2.新建Tomcat的服务器配置文件 并使用

HelloServlet所在的目录为我们操作的目录
先进行调试

出现这个页面为成功
我们建立一个自己的页面
IndexServlet
package com.example.demo7; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;
@WebServlet("/new")//使用这个方法 不用配置web.xml文件
public class IndexServlet extends HttpServlet {
@Override
//使用这个后 检测到Get方法 会执行相应代码 类似的有doPost等
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");//接收输入的name值
PrintWriter out = resp.getWriter();//打印在页面中
out.println("name: " + name);
System.out.println(name);//打印在调试页面中
System.out.println("doGet");
//super.doGet(req, resp);
}
//POST提交的例子
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doPost(req, resp);
String name = req.getParameter("name");//接收输入的name值
System.out.println(name);//打印在调试页面中
System.out.println("doPost");
}
}
并且我们需要在

目录下配置相应文件
<?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_6_0.xsd"
version="6.0">
<servlet>
<servlet-name>index</servlet-name>
<!--使用引用路径-->
<servlet-class>com.example.demo7.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern> <!-- * 表示任意-->
</servlet-mapping>
</web-app>
之后 访问/index

在调试器和页面上都有相应数值

这样进行一个简单的开发
这四个函数涉及使用问题
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("init");
}
//以下的来源不同
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("ServiceReq");
}
//有参数才触发
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("serviceHTTP");
}
//销毁
@Override
public void destroy() {
System.out.println("estroy");
}
执行结果来看 都会首先触发第一个init 根据有没有涉及传参 看一下打印了什么 最后结束是打印了estroy
这是代码执行的逻辑顺序

执行结果来看 都会首先触发第一个init 根据有没有涉及传参 看一下打印了什么 最后结束是打印了estroy
这是代码执行的逻辑顺序

JAVA-EE 的数据库有三种 jdbc mybatis hebermate
以使用频率来说 主要学习mybatis

需要先下载 这些红色的代表 是有不当会产生漏洞
下载好后 在IDEA新建一个文件 将下载好的文件导入


添加进库才能引用
package com.example.demo7;
import java.sql.*;
public class MyselectServlet {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1. 加载MySQL JDBC驱动(MySQL 8.0+可以省略,驱动会自动注册)
// 保留它是为了兼容旧代码或明确显示驱动依赖
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 定义数据库连接URL
// - serverTimezone=UTC 解决时区报错问题
// - 其他常用参数:useSSL=false(测试环境禁用SSL)、characterEncoding=utf8(设置编码)
String url = "jdbc:mysql://localhost:3306/demo01?serverTimezone=UTC";
// 3. 建立数据库连接
// 参数:URL, 用户名, 密码
Connection connection = DriverManager.getConnection(url, "root", "root");
String sql = "select * from admin"; // 从admin表查询所有字段
// 5. 创建Statement对象(用于执行静态SQL语句)
Statement statement = connection.createStatement();
// 6. 执行查询,获取结果集
ResultSet rs = statement.executeQuery(sql);
// 7. 遍历结果集
while (rs.next()) { // rs.next()移动游标并判断是否有下一条数据
// 按列名获取数据(也可以使用列索引:rs.getString(1))
String username = rs.getString("username");
String password = rs.getString("password");
// 8. 输出结果
System.out.println(username + ":" + password);
}
}
}
结果如下:

申明:不是真的学习开发 只是了解思路和流程 不考虑代码安全问题



















