本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1085
【项目包含内容】(见下图):
【实例效果图】
第一种404页面显示
第二种404页面显示
第三种404页面显示
在使用tomcat进行JAVA项目开发时,时常遇到如下图所示的404错误:
显示的错误信息为:
“The origin server did not find a current representation for the target resource or is not willing to disclose that one exists”
意即“源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式”。
主要原因是因为服务器找不到HTML以及图像等资源,故会出现该404错误。现给出相关可能的原因及解决方法:
1.未部署Web应用。
2.一般情况下为URL出现错误,可通过更改URL设置进行纠错:
检查URL的IP地址和端口号是否书写正确;
检查上下文路径:Project——Properties——MyElipse——Web——WebContext-root是否正确;
查看相关文件名是否正确书写;
3.如果要运行的为servlet文件,在进行web.xml配置时加上如下字段:
<servlet>
<servlet-name>文件名</servlet-name>
<servlet-class>文件名</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>文件名</servlet-name>
<url-pattern>文件名</url-pattern>
</servlet-mapping>
4.如果索要运行的Web文件中有多个jsp文件,则在进行web.xml配置时应加上如下字段:
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1085
【项目包含内容】(见下图):
【实例效果图】
第一种404页面显示
第二种404页面显示
第三种404页面显示
转载于:https://my.oschina.net/u/3743971/blog/1934213
之前出现了这个问题,项目并没有报错,但运行一直显示404,也是弄了好几个小时,试了各种办法都解决不了。后来查找了很多资料终于解决了,下面把我的方法分享给大家:
解决方案:
1、检查server中web.xml文件
打开过程如图
打开后找到108行servlet标签(可能个人行数会不一样)
<param-value>
的默认值是false,将false改为true(此处这样做的目的是将项目下的文件自动列出),重新运行,运行过后会出现这个界面:
点击该jsp文件即可打开jsp页面。
2、修改项目中WEB-INF目录下的web.xml文件,添加<welcome-file>readme.jsp</welcome-file>
(添加对应的文件名,我的是readme)如图:
修改好后重新运行项目即可直接打开webcontent目录下的jsp文件。
404问题对于刚刚接触web开发的新手朋友来说,算得上是头痛的问题。其实这个问题很简单。根本原因就是服务器找不到目标页面(或者说成找不到目web资源)而产生的。既然找不到资源,那么很大原因就是访问路径或者XML的配置的出了问题。解决办法我们就从这里入手。
第一个方法:检查表单的action属性中路径是否正确,是否有因为粗心而打错的字。
第二个方法:a标签中路径是否正确。
需要注意的是表单或a标签中的路径有时候应该加上你的basePath。
第三个方法:.XML是否配置正确
当然,既然有了错误,控制台一般也会报错。我们也要结合控制台给我们提供的报错信息进行针对性Debug.
比如:控制台有
ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Reg_log]]
或
Error deploying configuration descriptor E:\java.metadata.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\Reg_log.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Reg_log]]
很可能就是你已经选择了servlet的在XML中自动配置。而你又在XML配置了一遍,于是就会报错。
我们在编写Servlet的时候是选择创建Servlet文件如图:
所以创建后Servlet文件中会产生着样的一串代码:@WebServlet("/InitServlet")具体如下图:
这说明在XML文件中就不用再配置对应的Servlet文件了。可我们在XML中还是写了,所以就产生了上面控制台中的报错。更改之前的XML文件如图:
当我们把和两个标签删除之后就,程序就可以正常运行了
总之,发生404错误就两大点要注意的。第一,是项目中关于页面跳转的所有路径要检查正确与否。第二,是.XML文件是否配置正确。
(笔者能力有限,如有错误和缺点希望得到指点)