[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 识别依赖)

重新启动项目

相关推荐
Zzzzmo_7 分钟前
Spring MVC
java·spring·mvc·cookie/session
cfm_291410 分钟前
Spring核心设计模式
java·spring·设计模式
Java小白笔记11 分钟前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
2333!!!!!16 分钟前
rocket新手一些常见问题
java·开发语言
骇客野人22 分钟前
Springboot 的 配置文件 application.yml 和 bootrap.yml 的由来和作用
java·spring boot·后端
wuminyu26 分钟前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
CoderYanger34 分钟前
A.每日一题:3622. 判断整除性
java·程序人生·算法·leetcode·面试·职场和发展·蓝桥杯
吴声子夜歌38 分钟前
ApacheCommons——commons-lang3(Java 基础语言增强)(二)
java·开发语言·apache
xcl092539 分钟前
幼儿托管系统开发实战:从需求分析到部署上线全指南
java·spring boot·需求分析
我不会起名字3221 小时前
一天一道算法题(26):栈的简单应用
java·数据结构·python·算法·leetcode·golang·