tomcat servlet无法访问 搞得头都晕了

serlvet 2011-05-27 01:45:34
一个简单的HelloWorld,所有配置未发现问题,tomcat示例正常,JSP可以访问,但是servlet总是报错404,麻烦大家分析下是哪里的问题。

java7.0
tomcat7.0.14、tomcat6.0.26(两个都试过)
Eclipse3.6

\webapps\HelloWorld\WEB-INF\Web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns=" http://java.sun.com/xml/ns/j2ee"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

\webapps\HelloWorld\WEB-INF\classes目录下有HelloWorld.class

访问使用的URL为:http://localhost:8080/HelloWorld/HelloWorld
...全文
471 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisuliang 2011-07-06
  • 打赏
  • 举报
回复
我也是这个问题,你是怎么解决的??我真是头都大了
java131313 2011-05-28
  • 打赏
  • 举报
回复
<servlet-class>HelloWorld</servlet-class> 包名 一楼正解
serlvet 2011-05-28
  • 打赏
  • 举报
回复
已搞定,程序和设置都没问题,是web.xml(tomcat)和Web.xml(weblogic)的区别,搞完一头冷汗!
serlvet 2011-05-27
  • 打赏
  • 举报
回复
eclipse已经是官网下到的最新版本了
版本不合的可能性不大,因为tomcat的示例运行正常

因为用eclipse启动tomcat,我只设置了操作系统的环境变量JAVA_HOME,其它没有设置,不知道有没有影响

一会试一下不通过eclipse启动的tomcat有没问题
HealthyLee 2011-05-27
  • 打赏
  • 举报
回复
可能是你的tomcat版本和eclipse版本不符合。。。。换个高版本的eclipse吧
serlvet 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 liu67224657 的回复:]
你的访问路径是什么

是http://xxxx/HelloWorld/HelloWorld么

注意路径中的工程名称
[/Quote]
HelloWorld是我用来测试的,工程名称就是HelloWorld
访问是直接在IE的地址栏敲“http://localhost:8080/HelloWorld/HelloWorld”回车

回18楼:
不存在跳转的问题。
lffsonic 2011-05-27
  • 打赏
  • 举报
回复
404错误是找不到页面,你在serlvet里面有处理后的跳转页面,也就是显示页面,看你的代码好像没有
liu67224657 2011-05-27
  • 打赏
  • 举报
回复
你的访问路径是什么

是http://xxxx/HelloWorld/HelloWorld么

注意路径中的工程名称
serlvet 2011-05-27
  • 打赏
  • 举报
回复
examples下: http://localhost:8080/examples/HelloWorld
HelloWord下:http://localhost:8080/HelloWorld/HelloWorld
exterminator 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 serlvet 的回复:]

就是因为这样才头晕,我看着该做的都做了,但是就是访问不到

接着上面所说的,将HelloWorld.class放到"examples\WEB-INF\classes\"下正常访问后,我再把“examples\WEB-INF\Web.xml”文件拷贝到 “HelloWorld\WEB-INF\”下,重启tomcat还是报404错误

[/Quote]


被你搞糊涂了。。。在examples\WEB-INF和HelloWord\WEB-INF里的时候浏览器访问的URL你分别写的什么?贴上来看看?
serlvet 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 feng3773216 的回复:]
引用 8 楼 serlvet 的回复:
引用 6 楼 zhoujian2964 的回复:
<servlet-class>(在这块加上包名你懂得)HelloWorld</servlet-class>

不是这个原因,具体的请看我3楼的回复

而且同一个HelloWorld.class,我把它放在TOMCAT自带的“examples\WEB-INF\classes\”
然后在“examp……
[/Quote]
就是因为这样才头晕,我看着该做的都做了,但是就是访问不到

接着上面所说的,将HelloWorld.class放到"examples\WEB-INF\classes\"下正常访问后,我再把“examples\WEB-INF\Web.xml”文件拷贝到“HelloWorld\WEB-INF\”下,重启tomcat还是报404错误

休谱诺斯 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 serlvet 的回复:]
引用 6 楼 zhoujian2964 的回复:
<servlet-class>(在这块加上包名你懂得)HelloWorld</servlet-class>

不是这个原因,具体的请看我3楼的回复

而且同一个HelloWorld.class,我把它放在TOMCAT自带的“examples\WEB-INF\classes\”
然后在“examples\WEB-INF\Web.xml”中……
[/Quote]都可以正常访问,那哪有错啊,lz这话互相矛盾哦。。。
serlvet 2011-05-27
  • 打赏
  • 举报
回复
........

什么时候写servlet必须加上包名了?

很感谢各位的回帖,但也让我很无语...拜托不要再扯这个“包名”了

回帖的请看清楚再回复
我在3楼已说过
“我做的工程的servlet是有包名的,因为404错误,才搞个HelloWorld来试一下,结果也一样”
Spring89 2011-05-27
  • 打赏
  • 举报
回复
HelloWorld.java没有包名
那怎么行呢?你在程序中都访问不到HelloWorld
加上包名就OK了。
serlvet 2011-05-27
  • 打赏
  • 举报
回复
HelloWorld.java没有包名

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;

public class HelloWorld extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 5132936917759337060L;

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("Hello World!");
}
}

javashare 2011-05-27
  • 打赏
  • 举报
回复
HelloWorld这个Servlet在那个包底下呢
serlvet 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhoujian2964 的回复:]
<servlet-class>(在这块加上包名你懂得)HelloWorld</servlet-class>
[/Quote]
不是这个原因,具体的请看我3楼的回复

而且同一个HelloWorld.class,我把它放在TOMCAT自带的“examples\WEB-INF\classes\”
然后在“examples\WEB-INF\Web.xml”中加上
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
就可以正常访问,说明“HelloWorld.class”和这段配置的写法都是没问题的

我现在的问题是,好像该做的我都做对了,但是tomcat就是不买帐
lixin5678 2011-05-27
  • 打赏
  • 举报
回复
不行就用servlet3的注解方式算了。
赫赫,学学新东西
zhoujian2964 2011-05-27
  • 打赏
  • 举报
回复
<servlet-class>(在这块加上包名你懂得)HelloWorld</servlet-class>
serlvet 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qlong8807 的回复:]
<servlet-class>没有包名HelloWorld</servlet-class>
[/Quote]
1楼的能不能说详细些是哪里的问题
加载更多回复(4)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧