[Java Web]在IDEA中完整实现Servlet的示例

一、Tomcat的相关下载和配置教程

https://blog.csdn.net/2301_79954314/article/details/142059407?fromshare=blogdetail&sharetype=blogdetail&sharerId=142059407&sharerefer=PC&sharesource=2302_80281315&sharefrom=from_link


二、Tomcat项目配置(备注:这里使用的是IDEA2024旗舰版)


三、创建 Servlet 类

java 复制代码
package servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

// 注解配置:指定Servlet处理/greeting路径的请求
@WebServlet("/greeting")
public class GreetingServlet extends HttpServlet {
    // 处理GET请求(浏览器直接访问、超链接、表单GET提交)
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 设置响应编码(解决中文乱码)
        response.setContentType("text/html;charset=UTF-8");
        // 2. 获取请求参数(URL中?name=张三 部分)
        String name = request.getParameter("name");
        // 3. 处理参数:如果没传name,默认显示"游客"
        if (name == null || name.isEmpty()) {
            name = "游客";
        }
        // 4. 向浏览器返回响应内容
        response.getWriter().println("<h1>你好," + name + "!这是Servlet的GET请求响应</h1>");
    }

    // 处理POST请求(表单POST提交、Ajax POST)
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1. 设置请求/响应编码(解决POST中文乱码)
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        // 2. 获取POST表单中的message参数
        String message = request.getParameter("message");
        // 3. 返回响应
        response.getWriter().println("<h1>收到你的POST消息:" + message + "</h1>");
    }
}

这里创建软件包是为了好管理代码,也可以不创建,直接在scr文件夹下建即可


四、创建前端 HTML 表单(测试 POST 请求)

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Servlet测试页面</title>
</head>
<body>
<h2>测试GET请求(直接访问Servlet)</h2>
<a href="/greeting?name=小宝你好!">点击发送GET请求</a>

<hr>

<h2>测试POST请求(表单提交)</h2>
<form action="/greeting" method="POST">
    输入消息:<input type="text" name="message" placeholder="比如:Servlet真简单" required>
    <input type="submit" value="提交POST请求">
</form>
</body>
</html>

注意:这里html文件需要建在web文件夹下才能正常运行


五、配置 Tomcat 并运行项目

注意:注意,这里接下来可能会出现一个错误:点击"点击发送GET请求"和输入消息内容之后点击"提交POST请求"出来的网页是404

原因:缺少对应的jakarta.servlet相关依赖

解决办法:去Maven官网下载相应的依赖Maven Repository: jakarta.servlet >> jakarta.servlet-api >> 6.0.0

将下载的依赖包另存到项目的lib文件夹下

回到IDEA中,找到lib文件夹下的依赖包,将 JAR 包 "添加为库"(让 IDEA 识别依赖)

重新启动项目

相关推荐
曹牧1 分钟前
Java:PDF文件扁平化处理
java·开发语言·pdf
灰色人生qwer2 分钟前
解决IDEA运行Java程序jdk版本不匹配问题
java·开发语言·intellij-idea
yaoxin5211235 分钟前
405. Java 文件操作基础 - 装饰者模式与 I/O Streams
java·开发语言·python
xiufeia7 分钟前
后端项目初始化的一些小坑点
java·junit·maven·idea
丑八怪大丑8 分钟前
JDBC基础篇
java·sql
环流_24 分钟前
Redis:epoll和IO多路复用
java·redis·mybatis
Chase_______27 分钟前
Java基础语言 ④ :面向对象核心——构造方法、this关键字与对象内存模型详解
java·开发语言·面向对象·类与对象
欢璃27 分钟前
表白墙案例
java·开发语言·jvm·spring boot·spring·maven·mybatis
代码漫谈27 分钟前
Jetty vs Tomcat:Spring Boot应用场景最佳选择
spring boot·tomcat·jetty
‎ദ്ദിᵔ.˛.ᵔ₎34 分钟前
Java 匿名内部类与 Lambda 表达式
java