关于http status 404的问题

本文详细介绍了在使用Struts2进行Web开发时遇到HTTPStatus404错误的常见原因及解决方案,包括未部署Web应用、URL输入错误、目录引用错误、Tomcat服务器配置问题等,并提供了部署Tomcat和调整web.xml文件的具体步骤,旨在帮助开发者高效定位并解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习struts2的过程中,遇到了http status 404 的问题,由于是跟着视频学的,所以出错后的第一反应是里面的代码写错了,于是乎,我开始跟视频上的一点一点的对照,后来发现没有写错,还是供源的作者人好,竟然还有源代码,我就直接把工程给导入了,接下来悲剧了,还是这个错,于是寄希望于百度了。不过还好,最后总算是把问题解决了,把方法贴出来,希望能帮到大家吧。

可能的情况如下:


HTTP Status 404(The requested resource is not available)的几种解决方案


1. 未部署Web应用


2.URL输入错误

     

 排错方法:

首先,查看URL的IP地址和端口号是否书写正确。

其次,查看上下文路径是否正确 Project--------Properties------MyElipse-----Web-----

Web Context-root检查这个路径名称是否书写正确。

最后,检查一下文件名称是否书写正确。


3.目录不能被引用

       排错方法:

       在 Eclipse的“包资源管理器(Package Explorer)”检查文件存放的位置。由于META-INF

WEB-INF文件夹下的内容无法对外发布,所以,如果你引用了带这两个目录的文件,肯定是不允许。例如: http://localhost:8080/guestbook/WEB-INF/index.html就是错误的

文件位置存放错误


4. Tomcat服务器中web.xml中的问题

       排错方法:

      如果你的web应用程序有多个jsp页面的话,当你点击你web应用程序的虚拟根目录时可能会出现404错 误,只是你只需要修改Tomcat服务器中web.xml

       <init-param>

            <param-name>listings</param-name>

            <param-value>false(将其该为true)</param-value>

        </init-param>


补充说明:在6.0.18 版本error:“ The requested resource () is not available. ”

总是无法访问/myapp/*.jsp文件,可以将 /ROOT 中build.xml 文件copy 一份到myapp,  注意把里面所有的 ROOT 用 myapp 代替. 应该就OK.


5、WEB-INF下面必须要有几个固定的文件夹和文件

       

±web.xml 该web app的配置文件

±lib 该web app用到的库文件

±classes存放编译好的servlet

  请注意他们的名字,我曾经就由于把classes写成class,查错查了半宿还没解决,所以写这些的时候千万要仔细,要不会浪费更多的精力去查错。


6、如果要运行的不是.jsp文件,而是servlet(.class)文件,要配置web.xml(当然是WEB-INF下面的),加上以下字段:

  <servlet>

  <servlet-name>HelloWorldServlet</servlet-name>

  <servlet-class>HelloWorldServlet</servlet-class>

 </servlet>

 <servlet-mapping>

  <servlet-name>HelloWorldServlet</servlet-name>

  <url-pattern>/HelloWorldServlet</url-pattern>

 </servlet-mapping>

其中的“HelloWorldServlet”改为你要运行的文件名


如果你的错误原因以上的都不是,那么可能就是下面的问题了

可能是你没有部署tomcat,以下是方法:

关于Myeclipse中tomcat的部署问题:


一、在Myeclipse软件中部署

1、 在Myeclipse中,创建好工程后,在Myeclipse菜单栏中选择 Windows -> Preferences -> Myeclipse -> Tomcat5,选择"Enable";Tomact Home Directory要选择你机器上Tomcat所安装的目录。然后,再Windows -> Preferences-> Myeclipse -> Tomcat5 ->JDK,确保这个是有对应的jdk版本,若没有,则通过"Add"添加其安装路径。ok

2、选择工具栏上的            按钮,在”Project”中选择你要部署的工程,然后”Add”,再选择”Tomcat”,Finish。

3、 在工具栏上选择 ,启动Tomcat。

4、 运行程序。在IE中输入http://localhost:8080/aa/WebRoot/index.jsp(aa为工程名字)

二、在Tomcat的server.xml配置文件中部署(我就是用这种方法解决的)

1、在Tomcat下,找到conf文件下的server.xml,打开。

2、在<Host>和</host>之间加上如下代码:

1 <Context path="/虚拟目录名" docBase="目标目录位置" debug="0" reloadable="true">
2 </Context>

(严格区分大小写,当path=""时,此时的虚拟目录直接为root--->http://localhost:8080/)
    path:表示在浏览器中输入http://localhost:8080/虚拟目录名

docBase:表示你的程序包的物理绝对路径,默认的绝对路径是     %tomcat_home%/webapps

reloadable :为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序;为false则不自动加载。(我觉得这种部署方法就好在这里,可以不用重新启动Tomcat。)

示例: 1 <!-- 我的自定义目录-->
2 <Context path="/wess" debug="0" docBase="C:\Documentsand Settings\tt\workspace\Welcome_SS\WebRoot" reloadable="true">
3 </Context>
4、 启动Tomcat

在Myeclipse工具栏上选择  ,启动Tomcat。或者在Tomcat下,找到bin文件下的startup.bat,打开进行启动。

5、 运行程序。在地址中输入http://localhost/wess/index.jsp(引用上面示例配置时的情况)

在lib下的struts-config.xml可以添加下面三句进行主页默认的配置,而不必写出主页。

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

 

注:由于以上提到的有些图片不能显示,故把出处附上:http://wenku.baidu.com/view/69bce89c51e79b89680226ca.html

 

 

特别说明:如果以上情况都不是,可能是你的tomcat的安装路径问题,一般情况下我们会把tomcat的安装路径设为D:\Program Files\apache-tomcat-6.0.18,注意了,Program与Files中间的空格很可能就是问题所在,建议大家改变tomca的安装路径,如:C:\apache-tomcat-6.0.18,只要文件夹的名字中不含空格就可以了

 

 

### HTTP 状态码 404 的原因 HTTP 状态码 404 表示客户端尝试访问的资源在服务器上不存在。这可能是由于多种因素引起的: - 请求路径中的拼写错误或大小写不匹配[^1]。 - 资源文件被移动到其他位置而未设置重定向规则。 - 应用程序配置不当,导致无法正确映射请求至相应的处理逻辑[^2]。 对于基于 Spring Boot 和 JSP 技术栈的应用而言,当遇到 `/index.jsp` 文件返回 404 错误时,通常是因为默认视图解析器未能正常工作或是静态资源加载机制存在问题。 ### 解决方案概述 针对上述提到的不同场景,可以采取如下措施来解决问题并防止未来再次发生类似的状况: #### 配置与部署层面调整 为了确保应用程序能够正确识别和响应来自浏览器或其他客户端发出的 URL 请求,需确认应用内的路由定义无误,并且所指向的目标确实存在于预期的位置下。如果使用的是像 Apache Tomcat 这样的 Web 容器,则还需检查其内部目录结构以及上下文根路径是否适当设定好。 #### 开发框架特定修正 考虑到某些开发平台可能自带一些特殊行为模式,在此情况下应特别关注这些特性所带来的影响。例如,在构建 Java EE 或者 Spring MVC 类型的服务端组件时,应当仔细审查有关于前端控制器(Front Controller)、视图解析器(View Resolver)等方面的参数配置情况;而对于采用模板引擎渲染动态网页内容的情形来说,则要保证相应扩展名已注册给定环境下的处理器实例。 ```java // Example of configuring view resolver in Spring Boot with Thymeleaf template engine. @Bean public ViewResolver thymeleafViewResolver() { ThymeleafViewResolver resolver = new ThymeleafViewResolver(); resolver.setTemplateEngine(templateEngine()); return resolver; } ``` #### 日志分析与调试技巧 利用日志记录工具可以帮助快速定位问题所在之处。通过查看控制台输出的信息或者查阅专门的日志文件,往往能发现更多关于失败请求背后的故事线索——比如异常堆栈跟踪、SQL 查询语句执行结果等有用资料。此外,借助 IDE 内建的功能也可以实现断点调试的目的,从而更加直观地观察变量变化过程及其相互关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值