当前位置: 首页 > news >正文

配置 Servlet

一、前期环境准备

  1. 基础环境依赖
    开发工具:IntelliJ IDEA(图片中使用的开发环境)
    服务器:Apache Tomcat 9.x(图片中版本为 Tomcat 9.0.115)
    JDK:1.8 及以上(适配 Tomcat 9)
    项目类型:Java Web 项目(使用 Maven 构建)
  2. Maven 核心依赖(pom.xml 配置)
    确保 pom.xml 中引入 Servlet 核心依赖,否则无法使用 HttpServlet 类:
    javax.servletjavax.servlet-api4.0.1provided
org.apache.maven.pluginsmaven-compiler-plugin3.8.188UTF-8 二、方式一:基于 web.xml 配置 Servlet 步骤 1:创建包结构 在 IDEA 中,右键点击 src/main/java → 新建软件包,命名为:com.example.uint2_1(与图片中包名一致)。 ![image](https://img2024.cnblogs.com/blog/3744004/202603/3744004-20260315155157790-16970306.png)

步骤 2:创建 Servlet 类(HelloServlet)
右键点击包 com.example.uint2_1 → 新建 → 类,命名为 HelloServlet。
编写基础 Servlet 代码(继承 HttpServlet,重写 doGet 方法):
package com.example.uint2_1;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
// 重写 doGet 方法,处理 GET 请求
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应编码(避免中文乱码)
resp.setContentType("text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = resp.getWriter();
// 输出 HTML 内容
out.println("");
out.println("");
out.println("

hello Servlet!

");
out.println("");
out.println("");
}
}
如果代码里 HttpServlet 报红(找不到类),需要在 pom.xml 中添加依赖:



javax.servlet
javax.servlet-api
4.0.1
provided


粘贴后,IDEA 会自动下载依赖,红线下划线就会消失。
步骤 3:配置 web.xml(核心步骤)
找到项目下的 webapp/WEB-INF/web.xml 文件(图片中可见该路径)。
配置 节点,完成 Servlet 注册与路径映射:

Archetype Created Web Application
<!-- 注册 Servlet -->
<servlet><servlet-name>HelloServlet</servlet-name> <!-- 与类名一致(自定义) --><servlet-class>com.example.uint2_1.HelloServlet</servlet-class> <!-- 全类名 -->
</servlet><!-- 映射访问路径 -->
<servlet-mapping><servlet-name>HelloServlet</servlet-name> <!-- 与上面的 servlet-name 一致 --><url-pattern>/hello</url-pattern> <!-- 访问路径:项目根路径/hello -->
</servlet-mapping>
步骤 4:配置 Tomcat 并运行 点击 IDEA 底部的 服务 标签 → 找到 Tomcat 服务器 → 点击绿色三角(启动按钮)。 等待 Tomcat 启动完成(控制台会显示 Server startup in X ms)。 确认项目已部署到 Tomcat:在服务面板里能看到你的项目名(默认是 untitled)。 IDEA 中配置 Tomcat: 点击右上角「Add Configuration」→ 加号「+」→ 选择「Tomcat Server」→ 本地「Local」。 配置 Tomcat 安装路径,设置「HTTP 端口」为 8080(图片中端口为 8080)。 切换到「Deployment」选项卡 → 点击「+」→ 选择「Artifact」→ 选择项目对应的 oO_war_exploded(图片中部署包名)。 启动 Tomcat 服务器: 启动后访问地址:http://localhost:8080/oO_war_exploded/hello(图片中访问路径)。 页面成功显示 hello Servlet! 即配置成功。 或者: 打开浏览器,输入地址: http://localhost:8080/untitled/hello localhost:8080:Tomcat 默认地址和端口。 untitled:你的项目名(如果改过就用你自己的项目名)。 /hello:web.xml 里配置的访问路径。 如果看到页面显示 Hello Servlet!,就说明成功了 ✅。 也可以先测试 JSP 页面: http://localhost:8080/untitled/index.jsp 应该能看到 Hello World!。

三、方式二:基于注解配置 Servlet(替代 web.xml)
步骤 1:创建 Servlet 类(HelloServletZj)
右键包 com.example.uint2_1 → 新建类,命名为 HelloServletZj。
编写注解式 Servlet 代码,核心是 @WebServlet 注解:
package com.example.uint2_1;

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

// 注解直接配置访问路径,无需 web.xml
@WebServlet("/helloZj")
public class HelloServletZj extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("");
out.println("");
out.println("

hello zhu jie!

");
out.println("");
out.println("");
}
}
步骤 2:运行测试
保持 Tomcat 运行,访问地址:http://localhost:8080/oO_war_exploded/helloZj。
页面显示 hello zhu jie! 即注解配置生效(无需修改 web.xml)。
四、进阶:表单参数获取(ParamServlet + info.html)
步骤 1:创建新包与 Servlet 类
右键 src/main/java → 新建包 com.example.uint2_2。
右键该包 → 新建类 ParamServlet,编写参数获取逻辑:
package com.example.uint2_2;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;

// 配置访问路径 /ParamServlet
@WebServlet("/ParamServlet")
public class ParamServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 获取单个参数(姓名、年龄)
String name = req.getParameter("name"); // 获取 name 输入框的值
int age = Integer.parseInt(req.getParameter("age")); // 获取 age 并转整型

    // 2. 获取多个参数(爱好,复选框)String[] hobbies = req.getParameterValues("hobby");// 3. 设置响应编码resp.setContentType("text/html;charset=UTF-8");PrintWriter out = resp.getWriter();// 4. 输出参数到页面out.println("<html>");out.println("<body>");out.println("姓名:" + name + "<br>");out.println("年龄:" + age + "<br>");out.println("爱好:" + Arrays.toString(hobbies) + "<br>");out.println("</body>");out.println("</html>");// 控制台打印参数(可选)System.out.println("姓名:" + name);System.out.println("年龄:" + age);System.out.println("爱好:" + Arrays.toString(hobbies));
}

}
步骤 2:创建前端表单页面(info.html)
找到 webapp 目录(图片中可见该目录),新建文件 info.html,编写表单:

个人信息
姓名:
年龄:
爱好:
唱歌
游泳
电脑游戏
步骤 3:运行测试 启动 Tomcat,访问地址:http://localhost:8080/oO_war_exploded/info.html(图片中访问路径)。 填写表单内容(如姓名:张三,年龄:20,勾选唱歌 + 电脑游戏)→ 点击「提交」。 页面跳转至 ParamServlet,显示提交的参数;控制台也会打印参数,实现表单参数获取。 五、常见问题排查 404 错误: 检查访问路径是否与 url-pattern/@WebServlet 一致(包括大小写、斜杠)。 检查 Tomcat 部署的 Artifact 是否正确(是否为 xxx_war_exploded)。 500 错误(类找不到 / 方法重写错误): 检查 Servlet 类的全类名是否与 web.xml 中 一致。 检查 HttpServlet 依赖是否引入(pom.xml 缺失会导致类无法加载)。 中文乱码: 响应时添加 resp.setContentType("text/html;charset=UTF-8"); 统一编码。
http://www.jsqmd.com/news/481707/

相关文章:

  • 资质齐全的近视防控眼镜门店,产品价格大概多少钱 - 工业推荐榜
  • 2026年 沈阳氟碳铝单板厂家实力推荐:源头工厂精选,专注外墙幕墙工程,提供高耐候定制方案 - 品牌企业推荐师(官方)
  • 上海爱彼维修、北京江诗丹顿保养、杭州百达翡丽检修|6城高端腕表维修进阶指南 - 时光修表匠
  • 宿迁选购路沿石东昆石材产品好用吗 - 工业品牌热点
  • 2026年沈阳木纹铝板厂家专业推荐:匠心工艺与环保品质的行业标杆之选 - 品牌企业推荐师(官方)
  • 讲讲超纯水处理设备厂商,重庆地区好用的推荐有哪些 - 工业品牌热点
  • mingW 编译wxWidget3.2.x并集成到Code::blocks25.03中
  • 2026火锅季:口碑爆棚的网红火锅品牌盘点,社区火锅/老火锅/重庆火锅/附近火锅/牛肉火锅/美食,火锅品牌推荐排行榜 - 品牌推荐师
  • 自动化测试面试真题
  • 聊聊奥康斯品牌忠诚度怎么样,口碑好的门窗推荐哪家? - 工业设备
  • 【AI黑话日日新】什么是近内存计算?
  • 2026年 幕墙铝单板厂家实力推荐:精选十大源头工厂,解析创新工艺与工程定制核心优势 - 品牌企业推荐师(官方)
  • 【深度学习新浪潮】Claude悄悄更新了Skills生成器
  • 2026年沈阳蜂窝铝板厂家专业推荐:精选优质品牌,解析技术实力与市场口碑,助力建筑装饰选材 - 品牌企业推荐师(官方)
  • 从此告别拖延!专科生专属一键生成论文工具 —— 千笔·专业论文写作工具
  • Hertz-Mindlin 颗粒接触模型:原理、公式与农业工程应用
  • 亲测好用! AI论文软件 千笔·专业学术智能体 VS 学术猹 全领域适配首选
  • 2026油罐行业新趋势,精选几家实力厂家推荐,目前油罐推荐技术领航者深度解析 - 品牌推荐师
  • 青岛东泉环保智能设备有限公司电话查询:如何有效获取官方信息 - 品牌推荐
  • 2026年盘点靠谱的中空板厂家,费用怎么收费 - 工业品网
  • Thinkphp和Laravel框架都支持基于uniapp的固定资产借用租赁管理平台- 小程序
  • Thinkphp和Laravel框架都支持基于uniapp的居家养老院老年人健康监控提醒管理系统-小程序
  • 2026年 沈阳异型铝板造型厂家推荐:创意定制与专业工艺,打造独特建筑立面解决方案 - 品牌企业推荐师(官方)
  • 2026靠谱的眼镜店连锁品牌排名,长沙株洲康视怡名列前茅 - myqiye
  • 聊聊黑龙江地区房车外观改装厂,哪家专业且售后好? - mypinpai
  • 大模型技能速成秘籍,轻松掌握GPT-4、BERT等顶尖技术,成为AI领域高薪人才
  • Thinkphp和Laravel框架都支持基于uniapp的高校教室预约管理平台可视化-小程序
  • Thinkphp和Laravel框架都支持基于安卓的小餐饮餐桌包厢预订管理系统的设计与实现-小程序
  • 2026年哈尔滨越野改装品牌推荐,勺子改装专业服务值得选 - 工业推荐榜
  • 从Deepseek到强人工智能,普通人如何抓住大模型风口?