以”HTTP Status 404(The requested resource is not available)”示例
1.未部署Web应用
2.URL输入错误
a.查看URL的IP地址和端口号是否书写正确。
b.查看上下文路径是否正确 Project——–Properties——MyElipse—–Web—– Web Context-root检查这个路径名称是否书写正确。
c.检查一下文件名称是否书写正确。
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
<param-name>listing</param-name>
<param-value>false(将其改为true)</param-value>
5.WEB-INF下面必须要有几个固定的文件夹和文件
web.xml 该web app的配置文件
lib 该web app用到的库文件
classes存放编译好的servlet
请注意他们的名字,以免错写浪费的精力去查错。
6. 如果要运行的不是.jsp文件,而是servlet(.class)文件,要配置web.xml(当然是WEB-INF下面的),加上以下字段:
<servlet-name>HelloWorldServletservlet-name
<servlet-class>HelloWorldServlet</servlet-class>
HelloWorldServlet
/HelloWorldServlet
其中的“HelloWorldServlet”改为你要运行的文件名
7.其他解决思路
以上方法无果,介于”HTTP Status 404(The requested resource is not available”异常发生情况的多样性,采用替换大法:
步骤:
a.找一份正常的相同环境(找同学同事相同开发环境机子或者网上下载的正常demo等)
b.依次替换问题项目文件,进行排除,定位.直到解决.
作者:元气满满小酒窝
链接:http://www.jianshu.com/p/e3256211df43
來源:简书
我本人添加的:
web.xml 中设置了过滤器,但是没有设置好
web.xml
[html] view plain copy
<?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" metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<welcome-file-list><!-- 定义主界面 -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name> <!-- 过滤器的名字 -->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- 引用个具体类文件 -->
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
附上一些filter中的配置说明:
首先<filter>...</filter>
: 定义一个过滤器的意思
其次<filter-mapping>...</ filter-mapping>
:配置上面那个定义的过滤器。
<url-pattern>/*</url-pattern>
表示适用的范围是所有的请求。
<filter-name>
过滤器的名字,可以自己取。
<filter-class>
引用的具体类文件名。一般引用搜索官方包装好的,名字固定。
定义和配置即<filter>
和<filter-mapping>
是成对出现的。其中的<filter-name>
相同则是一对。