两个servlet,在同意目录下,为何访问其中一个报404错 提示该servlet not available

<?xml version="1.0" encoding="UTF-8"?>


driverClass
com.myslq.jdbc.Driver


url
jdbc:mysql://localhost:3306/bookstore


user
root


password
root


OutPutInfo
com.dj.JavaBean.OutPutInfo


List
com.dj.JavaBean.ListServlet


OutPutInfo
/outputinfo


List
/list


上面为web.xml文件
访问时写的路径都同为:http://localhost:8080/ch07/?
?处写outputinfo没有问题,但写list时饱404错。
[b]问题补充:[/b]
在控制台编译两个SERVLET文件时都没有报过错,是正确的。而且编译后.class文件也存在。两个.class同在WEB-INF/classes/com/dj/JavaBean目录下。
但访问/list 出错(404)。outputinfo则没有问题。
[b]问题补充:[/b]
两个servlet文件也是存在的,同在src 目录下。
[b]问题补充:[/b]
上面是/outputinfo 没有问题。以免误导,特更正。
[b]问题补充:[/b]
我把ListServlet文件里的内容变成一个简单测试,输出helloworld,没有任何问题。但我原来的ListServlet文件里的内容在编译时也并没有报错。这是什么愿意呢?
[b]问题补充:[/b]
如何上传包?
[b]问题补充:[/b]
恩, 传上来了。希望各位帮忙看下。
[b]问题补充:[/b]
没有,我上面不是说过么,有一次改变ListServlet里面的内容做测试。那个是那时候给改的,忘了改回来了
[b]问题补充:[/b]
因为改变ListServlet里面的内容做测试,我重新建了个ListServlet1存储原来ListServlet的内容,想一起测试下,所一给ListServlet1也配置了下。打包的时候没注意,忘记改了。不好意思。
[b]问题补充:[/b]
回应lovewhzlq:这个应该是没有问题的。恩,虽然有点怪,但效果是正确的。而且,我现在是不通过search.html去调用ListServlet,而是在地址栏直接敲路径去访问,出404错。


driverClass
com.[color=red]myslq[/color].jdbc.Driver

粗心啊,mysql啊,朋友!!

看看com.dj.JavaBean.ListServlet在服务器里面到底编译成class了没有

确定有这个servlet吗

404错是因为没找到问题,你确定一下路径,及servlet有没写错(比如大小写什么的...).

/outputinfo
/list

输入访问路径是否正确.

1.先确定com.dj.JavaBean.ListServlet类是否有编译错误?
2.部署完成后,看部署路径是否存在ListServlet.class
3.请求时注意访问路径的大小写问题
4.新部署的Servlet重启下Web服务器再试.
check it, good luck! :D

打个包上来看看

我一直认为这应该是路径的问题...,楼主还是打个包出来看看吧..

[code="java"]
List
com.dj.JavaBean.ListServlet1
[/code]

怎么变成[color=red]ListServlet1[/color]了,是这个错吧....
你里面文件是[color=blue]ListServlet[/color]

我看你代码里写的部分

逻辑怪怪的,你应该是想在提交之前进行fsubmit方法的调用吧

应该要加在

[quote]servlet not available
我把ListServlet文件里的内容变成一个简单测试,输出helloworld,没有任何问题。但我原来的ListServlet文件里的内容在编译时也并没有报错。这是什么愿意呢?[/quote]

sorry ,忘了前面的信息了..如果这样的话..应该是你写的那个servlet问题了..
而不是路径问题产生404,而这个servlet不可用造成的吧..

[code="java"] private static Connection conn=null;

public void init()throws ServletException{
    ServletContext sc=getServletContext();
    String driverClass=sc.getInitParameter("driverClass");
    url=sc.getInitParameter("url");
    user=sc.getInitParameter("user");
    password=sc.getInitParameter("password");
    try{
        Class.forName(driverClass);
        conn=DriverManager.getConnection(url,user,password);
        System.out.println("加载数据库驱动成功!");
    }catch(Exception e){
        e.printStackTrace();        }
}[/code]

将connection 放到 init去
Exception

请问你这是在Jbulider工具下建的工程么? Eclipse下导不进去,如果是报404错误,我想你首先应该检查的是在地址栏输入的工程名和访问名的区别吧,如果这个区别清楚了,应该是没问题的

[quote]
driverClass
com.myslq.jdbc.Driver

粗心啊,mysql啊,朋友!!

lovewhzlq (CTO) 2009-07-16[/quote]

真细心,压根就没注意他这个会写错,怪不得OutPutInfo没问题,而ListServlet有问题,之前只认为ListServlet有问题,原来是加载数据库出错...
:idea: :idea:

呵呵,这样的错误是最难发现的。

仔细啊!使用Eclipse WTP插件吧,防止这样的错误,不过如果初学,还是要慢慢来!