Servlet,报了一上午404和500的报错

按照要求把class文件弄到:tomcat->webapps->工程目录->WEB-INF->classes下,但是在浏览器中无限的404和500报错,折腾了一上午,把整个examples的WEB-INF都拷贝过来排错,唉····

为了防止出错,一定要:
1、web.xml直接从webapps里的ROOT文件拷贝过来,其他servlet部署自己写,class名也最好copy
2、JavaProject新建的类就不要放包里了,开始以为不会出错,最后无限错误代码500,应该就是这里,如果写包里,web.xml的servlet-class就得改改了,class文件不知道是不是也得放在classes文件夹里的新建文件夹,麻烦(下文已解决放在包里老出错的问题 :-D)

步骤:
1、在tomcat->webapps新建工程目录,例如名为test
2、在test下新建文件夹,名为WEB-INF,把webapps->ROOT下的web.xml拷贝到新的WEB-INF。
配置web.xml(servlet和servlet-mapping)
例如:

  <servlet>
    <servlet-name>hw</servlet-name>
    <servlet-class>hw</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hw</servlet-name>
    <url-pattern>/hw</url-pattern>
  </servlet-mapping>

3、在WEB-INF下新建文件夹,名为classes
4、新写一个继承HttpServlet的类,把.class文件(例如名为hw.class)放到classes文件夹下(Eclipse在保存.java时自动编译生成.class文件)
5、启动tomcat
6、访问:http://localhost:8080/test/hw

如果.java源文件在包里,例如 package com.study;

1、在web.xml里改为<servlet-class>com.study.hw</servlet-class>其他不变
1.1、把.class文件还是直接放在classes文件夹,报错500

2、把包含com的整个文件夹拷贝到classes文件夹里。
2.1、可能错误的考过去的是包含.java的包文件夹,没有.class文件。.class文件是在java工程目录的bin目录下,不要弄错成了src。否则报错404,根本找不到文件了

综上终于解决了。看来昨天做第一个Servlet,折腾一上午的404和500:
一是没有注意到自己的.java源文件是写在包里的。
二是把.class文件复制到classes文件夹时,没有复制整个包的文件夹。
三是文件夹复制错了,复制了src目录里的包文件夹,正确的是bin目录里的文件夹

:-D

另外今天用到jsp的内建exception类,在自己写的ErrorPage.jsp里面,发现又开始无限报错500
原因是直接在eclipse中的浏览器运行,应该就是IE,会在ErrorPage.jsp页面很短的时候,用自己的500界面代替我们写的ErrorPage.jsp
用Chrome测试,一切正常

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值