Fash( ̄o ̄) . z Z 2024-03-26 17:13 采纳率: 0%
浏览 9

IDEA直接创建WEB项目自带的servlet访问404

为什么IDEA直接创建WEB项目自带的servlet访问404,但自己配置的项目没有问题

index.jsp是能显示的

img

但是servlet 404

img

servlet代码如下:

package com.example.demo2;
import java.io.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
@WebServlet("/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() {
    }
}

tomcat配置如下:

img

img

但自己从空项目开始手动配置一次WEB,却不会出现这种问题

package web.servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/test")
public class HelloWorld extends HttpServlet {
    private String message;
    public void init() throws ServletException{
        message = "hello world";
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<h1>"+message+"<h1>");
    }
}

img

可是我看tomcat的配置一样啊

img

img

  • 写回答

2条回答 默认 最新

  • 关注

    Fash( ̄o ̄) . z Z 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    出现404错误可能有多种原因。根据你提供的信息,很可能是web.xml文件的问题。在第一个示例中,使用了@WebServlet注解来映射Servlet,并没有使用web.xml文件配置Servlet。而在第二个示例中,你没有提供web.xml文件内容,所以应该是没有正确配置Servlet。

    以下是解决方案的步骤:

    1. 确保在项目的WEB-INF目录下有一个名为web.xml的文件。如果没有,请创建一个新的web.xml文件。

    2. 在web.xml文件中添加Servlet的配置。假设你的Servlet类名为HelloWorld,你的web.xml文件应该包含以下内容:

    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    			http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
             
        <servlet>
            <servlet-name>HelloWorld</servlet-name>
            <servlet-class>web.servlet.HelloWorld</servlet-class>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>HelloWorld</servlet-name>
            <url-pattern>/test</url-pattern>
        </servlet-mapping>
        
    </web-app>
    
    1. 确保你的Servlet类所在的包路径和web.xml中配置的路径一致。在这个例子中,Servlet类的包路径是web.servlet

    2. 重新部署你的项目并启动Tomcat服务器,然后尝试访问http://localhost:8080/项目名/test,其中"项目名"是你部署的项目名称。如果一切顺利,你应该可以看到"hello world"的输出。

    请注意,首先你需要确保你的项目已经正确部署并且Tomcat服务器已经成功启动。如果你仍然遇到问题,请提供更多的出错信息,以便我们更好地帮助你。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月26日

悬赏问题

  • ¥15 天翼云搭建多ip l2tp
  • ¥30 matlab求解刃位错方程
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥20 dify工作流分析sql查询结果
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果