【问题标题】:tomcat shows 404 error in html but jsp work finetomcat在html中显示404错误,但jsp工作正常
【发布时间】:2016-06-24 02:30:01
【问题描述】:

我使用 Intellij IDEA 用 tomcat 7.0.64 创建了一个简单的 WebApplication。

我在 IDEA 中运行 tomcat,然后http://localhost:8080/ 可以正常工作,显示 index.jsp。然后我可以附加 xxx.jsp 以转到该页面。 但如果我想转到 .html 页面,那将是 404 错误:

如果我在浏览器中打开 .html 文件,它可以正常工作并显示内容。

在我更改了 index.jsp 的名称后(所以我猜 index.html 将是门),问题仍然存在。

我的文件夹层次结构:

编辑:

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_3_1.xsd"
         version="3.1">


</web-app>

实际上什么都没有,因为项目什么都没有生成,我不知道应该配置什么属性。

【问题讨论】:

  • 向我们展示您的web.xml 文件。 index.html 的请求很可能被拦截了。
  • 您没有提供正确的 url 来午餐那个 html 文件尝试类似 localhost:8080/html/index.html 或直接从 intellij 运行文件
  • @PacMan 呃......这很奇怪。我在询问之前已经这样做了,当时我无法访问 localhost:8080/html/index.html ,但现在它似乎工作了。无论如何谢谢!
  • @PacMan 现在我不确定 index.html 是否在 tomcat 中打开。我怎样才能让tomcat的门成为index.html(就像之前的index.jsp一样)所以我可以运行tomcat并显示。
  • 你检查过tomcat日志吗?

标签: java html jsp tomcat intellij-idea


【解决方案1】:

一切都很简单,你可以通过添加这些标签在你的web.xml文件中配置它

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>name you want to see</display-name>
  <welcome-file-list>
    <welcome-file>html/index.html</welcome-file>
  </welcome-file-list>
</web-app>

然后 index.html 将在运行您的应用程序时作为第一页加载

【讨论】:

  • 这很容易理解,但可能由于某些其他原因,它显示 404 ,...呃...现在,通过某种方式,它可以在 localhost:8080 中显示 index.html 但没有样式!控制台显示无法获取 css 和 img,甚至无法使用 '$' 符号!
  • @matsuiCao 尝试只加载一些 css 文件而不是那个 html,看看它是否会打开有内容
  • 现在我通过 response.sendRedirect("html/index.html"); 将 index.jsp 直接设置为我想要的跳转到 .html;一切都很好。非常感谢:)
  • @matsuiCao glat 因为它有帮助:) 你可以检查我的答案是否正确
【解决方案2】:

我猜您已将项目存储在正确的位置,并且端口 8080 是 Tomcat 运行服务器的位置。假设您有,按照您调用 index.html 的方式,Tomcat 正在其默认文件夹中查找名为 index.html 的文件。它没有在其子目录中查找该文件。您可以看到原因,因为如果您有多个项目并且每个项目都有自己的 index.html,那么它就不会知道要显示哪一个。

您需要告诉浏览器要查看哪个文件夹/项目。如果您的项目是“MyProject”,请在浏览器中输入 localhost:8080/MyProject/index.html。

基本上,您已经创建了一个本地服务器,并且正在查看服务器拥有的文件。这与您尝试通过终端查看文件时相同。您正在为浏览器提供文件的路径,因此您需要指定项目/文件夹名称。

【讨论】:

    【解决方案3】:

    你的路径可能不正确或者你的tomcat被盗版了。嗯,也许前者更有可能。

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2019-08-04
      • 2012-11-11
      • 2017-04-16
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多