刚学习了java web 不久,然后对前端的知识也算有了一些了解。在学习的过程中总会遇到一些问题。在解决这些问题的同时,自己也增长了知识。比如今天要说的404解决办法就是在慕课学习的过程中得。
404问题是因为服务器找不到目标页面(或者说成找不到目web资源)而产生的。所以很可能是因为访问路径的原因引起服务器找不到目标页面。解决办法我们就从这里入手。
第一个方法:检查表单的action属性中路径是否正确,是否有因为粗心而打错的字。
第二个方法:a标签中路径是否正确。
第三个方法:.XML是否配置正确
文章暂时先到这里,以后有了新的收获我会继续更新。同时也希望各位朋友给与指点。
(第二次更新2018.11.1)
自从上次第一次写手记之后,过了将近一个月。在404的错误上有仍然是无穷无尽(苦笑)。这次关于404错误的手记是对上次的拓展。正文如下:
这次依然是404错误,当错误产生后我按照前面的三个方法Debug.然而并没有发现任何错误。于是我开始查看控制台内容。(其实,第一次写的时候没有考虑控制台的内容,这应该是新手常常忽略的。)
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Reg_log]]
Caused by: java.lang.IllegalArgumentException: The servlets named [InitServlet] and [com.imooc.servlet.InitServlet] are both mapped to the url-pattern [/InitServlet] which is not permitted
十一月 01, 2018 8:35:19 下午 org.apache.catalina.startup.HostConfig deployDescriptor
严重: 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]]
于是我拼命在网上查找这种错误原因。按网上的说法进行了查看,但是并没有起作用。但是我断定是一定是与XML有关。想到与XML相关就会联系到Servlet。于是我有查看了我自定义的那些Servlet.最后果然找到了错误。因为我在编写Servlet的时候是选择创建Servlet文件如图:
所以创建后Servlet文件中会产生着样的一串代码:@WebServlet("/InitServlet")具体如下图:
这说明在XML文件中就不用再配置对应的Servlet文件了。可是我在XML中还是写了,所以就产生了上面控制台中的报错。更改之前的XML文件如图:
当我把<servlet>和<servlet-mapping>两个标签删除之后就,程序就可以正常运行了。
更改之后:
(第三次更新2018.11.2)
这次更新希望也是最后一次。
第一次更新说了404错误的检查,有表单的action属性、a标签中路径是否正确、.XML是否配置正确这些,其实还有对于重定向和转发的检查。
总之,发生404错误就两大点要注意的。第一,是项目中关于页面跳转的所有路径要检查正确与否。第二,是.XML文件是否配置正确。
(第三次更新2019.12.4)
还有两种情况导致404。tomcat与jdk版本不匹配和tomcat申请内存不足。具体问题具体分析,大家根据这两点自己网上百度下吧
共同学习,写下你的评论
评论加载中...
作者其他优质文章