tomcat - 标准项目 Java EE Servlets 在 Intellij IDEA 中不起作用
问题描述
我在 IntelliJ IDEA 中生成了一个标准的 servlet 项目。
问题:
当我在浏览器中打开 localhost:8080/javaee 时,它可以工作。
但是当我尝试打开 servlet 页面时:localhost:8080/javaee/hello-servlet 出现 404 错误。
项目:
我使用 Maven,这里是 pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>java-ee</artifactId>
<version>1.0-SNAPSHOT</version>
<name>java-ee</name>
<packaging>war</packaging>
<properties>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
<junit.version>5.7.1</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
</plugin>
</plugins>
</build>
</project>
这是项目的结构:
index.jsp 有下一个内容:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="hello-servlet">Hello Servlet</a>
</body>
</html>
HelloServlet.java
package com.example;
import java.io.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
private String message;
public void init() {
message = "Hello World!";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>" + message + "</h1>");
out.println("</body></html>");
}
public void destroy() {
}
}
这是我从 Intellij Idea 运行 Tomcat 服务器的配置:
解决方案
推荐阅读
- postgresql - 通过 SSH 使用 pg_restore 恢复 Postgres 数据库
- python - 根据 column1 的值将 column1 的值设置为 column2 的值
- c# - Regex.IsMatch 处理空值
- java - 使用 UniVocity 将带有集合的对象写入 CSV
- python-3.x - 无法 pip 安装 lxml
- reactjs - 多边形未出现在 react-google-maps 中
- node.js - 变量无法进入角度 5 剩余的视图 html 已满
- erlang - Erlang integers in list and use them in formula's
- ios - 如何将我的 SDK 框架项目的 .dsym 文件包含到 App 项目中?
- unity3d - Admob 测试 广告出现在模拟器上但不是真手机?