HTTP状态 404 - 未找到

访问网址http://localhost:8080/brand-demo/selectAllServlet

出现如下情况

JDK版本:JDK17

Tomcat版本:Tomcat 9.0.70

Intellij IDEA版本:2021.2.1

错误原因:访问网址http://localhost:8080/brand-demo/selectAllServlet

正确网址:http://localhost:8080/brand_demo_war_exploded/selectAllServlet

总结:

Module名为brand-demo,但是Tomcat Server Development Artifact 是brand_demo_war_exploded

因此,修改index.html为

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<a href="/brand_demo_war_exploded/selectAllServlet">查询所有</a>

</body>
</html>

对应的SelectAllServlet.java为

package com.itheima.web;

import com.itheima.pojo.Brand;
import com.itheima.service.BrandService;

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.util.List;

@WebServlet("/selectAllServlet")
public class SelectAllServlet extends HttpServlet {
    private BrandService service = new BrandService();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //1.调用BrandService完成查询
        List<Brand> brands = service.selectAll();


        //2.存入request域中
        req.setAttribute("brands",brands);

        //3.转发到brand.jsp
        req.getRequestDispatcher("/brand.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}


版权声明:本文为weixin_47525061原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。