HTTP状态 404 - 未找到

HTTP状态 404 - 未找到

news.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="container"></div>
<script>
    let xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET", "/news");
    xmlhttp.send();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            let str = xmlhttp.responseText;
            console.log(str);
        }
    }
</script>
</body>
</html>

NewsServlet.java

package com.imooc.ajax.servlet;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.imooc.ajax.entity.News;

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

@WebServlet("/news")
public class NewsServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<News> list = new ArrayList<>();
        list.add(new News("TRENDY","2021-05-54","BAIDU","DEMO"));
        list.add(new News("TRENDY","2021-05-55","BAIDU","DEMO"));
        list.add(new News("TRENDY","2021-05-56","BAIDU","DEMO"));
        list.add(new News("TRENDY","2021-05-57","BAIDU","DEMO"));
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(list);
        response.setContentType("text/json;charset=utf-8");
        response.getWriter().println(json);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
</web-app>

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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.imooc</groupId>
    <artifactId>ajax</artifactId>
    <version>1.0.0-RELEASED</version>
    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.0</version>
        </dependency>
    </dependencies>
</project>

News.java

package com.imooc.ajax.entity;

public class News {
    private String title;
    private String date;
    private String source;
    private String content;

    public News(String title, String date, String source, String content) {
        this.title = title;
        this.date = date;
        this.source = source;
        this.content = content;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

错误:

https://img1.sycdn.imooc.com//climg/6265000009b1da8b12470556.jpg

结果:

https://img1.sycdn.imooc.com//climg/62650013093cd1bd09320282.jpg

下载视频          

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2022-04-24 17:13:02

同学你好,1、404是没有找到对应文件导致的异常。老师测试同学代码是没有问题的,如下所示:建议同学查看浏览器中的访问地址是否是书写错误。

https://img1.sycdn.imooc.com//climg/62650e2a095b65ad06680404.jpg

2、建议同学查看在Application context处是否是/,如果不是建议同学修改为/

https://img1.sycdn.imooc.com//climg/62651430095e499310920692.jpg

3、建议同学查看是否有配置web模块,查看webapp处是否有一个小蓝点。如下所示:

https://img1.sycdn.imooc.com//climg/62650e7609c6310a02710074.jpg

如果没有,可能是没有成功配置web模块导致的,建议同学进行配置。如下所示:

https://img1.sycdn.imooc.com//climg/626514240956ee1413300853.jpg

4、也有可能是缓存的问题,建议同学删除target与out目录,然后在重构项目试一下。

https://img1.sycdn.imooc.com//climg/6265148e09b1482a01320112.jpg

祝学习愉快!

  • 提问者 HsiYuan #1
    检查后,通过“

    4、也有可能是缓存的问题,建议同学删除target与out目录,然后在重构项目试一下。

    解决了问题,十分感谢。

    请问出现这样的问题是什么原因呢?是因为调试次数过多吗

    下载视频          
    2022-04-24 17:24:56
  • 好帮手慕小尤 回复 提问者 HsiYuan #2

    同学你好,是的,修改的内容未同步到out目录中,从而导致出现缓存问题。

    祝学习愉快!

    2022-04-24 18:06:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师