首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • servlet程序哪里错了啊?谢谢~ [已结贴,结贴人:cschf]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cschf
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-06-24 00:09:04 楼主
    servlet程序哪里错了啊?谢谢~
    C# code
    import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class CounterServlet extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=GBK"; //private String indata; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /*接受客户端信息*/ response.setContentType (CONTENT_TYPE); PrintWriter out = response.getWriter(); //indata = request.getParameter("DATA"); /*与数据库连接查询*/ String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava"; Connection con; Statement stmt; String query = "select * from shop"; try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } try { out.println("<h2 align='center'>" + "搜索结果" + "</h2>"); out.println("<html>"); out.println("<head><title>商品搜索结果</title></head>"); out.println("<body>"); con = DriverManager.getConnection(url, "sa", ""); stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String s = rs.getString("id"); String t = rs.getString("name"); String f = rs.getString("price"); out.println(s + " " + t + " " + f); } stmt.close(); con.close(); //out.println("<P>"+ indata + "</P>"); out.println("</body></html>"); out.close(); } catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } } }


    html文件
    HTML code
    <html> <head> <title>网上购物</title> </head> <body bgcolor="white"> <table border="10" cellpadding="10" align="CENTER"> <tr><td width="275"> <h2>商品信息查询</h2> <br>输入你要查询的信息<br> <form method="post" action="CounterServlet"> <input type= "text" name="DATA" size=30> <p> <input type="SUBMIT" value= "查询"> <input type="RESET" value= "重新输入"> </form> </td></tr> </table> </body> </html>

    运行结果
    C/C++ code
    HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Error allocating a servlet instance org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:619) root cause java.lang.NoClassDefFoundError: test/CounterServlet (wrong name: CounterServlet) java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:620) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:619) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs. -------------------------------------------------------------------------------- Apache Tomcat/5.5.26

    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net_test
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 00:09:091楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【cschf】截止到2008-06-24 00:08:57的历史汇总数据(不包括此帖):
    发帖数:2                  发帖分:40               
    结贴数:1                  结贴分:20               
    未结数:1                  未结分:20               
    结贴率:50.00 %            结分率:50.00 %           
    楼主加油
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vtudiv
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 00:15:502楼 得分:5
    CounterServlet有没有package test;这句?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • TRMeister
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 08:29:173楼 得分:5
    java.lang.NoClassDefFoundError: test/CounterServlet (wrong name: CounterServlet)

    你的web.xml中的关于test/CounterServlet 的servlet配置有问题。查查。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zidasine
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 08:51:024楼 得分:5
    web.xml中这个servlet是怎么配置的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zidasine
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 08:51:295楼 得分:5
    web.xml中这个servlet是怎么配置的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chjx1982
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 08:59:346楼 得分:5
    引用 5 楼 zidasine 的回复:
    web.xml中这个servlet是怎么配置的

    WBB.XML可能配置错了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • minlucky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:23:237楼 得分:5
    [code=Java][/code]
                    <servlet>
    <servlet-name> CounterServlet </servlet-name> //servlet名称可以自定义
    <servlet-class>
    CounterServlet所在的位置
    </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> CounterServlet </servlet-name> //名称同上、二者名称相同
    <url-pattern> *.do </url-pattern>
    </servlet-mapping>
    [code=Java][/code]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yzsunlight
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:26:428楼 得分:5
    String url = url="jdbc:microsoft:sqlserver://localhost:1433[color=#FF6600];Da2tabaseName=chfjava"; [/color]
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yzsunlight
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:27:149楼 得分:5
    Da2tabaseName
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yanke1014
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:28:3510楼 得分:0
    web.xml
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yzsunlight
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:30:2011楼 得分:5
    首先你的连接字符串导错了
    String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava";
    其次楼主 你看你导入包没有 SQLSERVER驱动包
    msbase.jar,msutil.jar,mssqlserver.jar
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • andy1217
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:33:0612楼 得分:0
    呵呵,细节错误
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yami251139
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:34:4613楼 得分:0
    [Quote=引用 7 楼 minlucky 的回复:]
    XML code
    <servlet> <servlet-name> CounterServlet </servlet-name> //servlet名称可以自定义 <servlet-class> CounterServlet所在的位置 </servlet-class> </servlet> <servlet-mapping> <servlet-name> CounterServlet </servlet-name> //名称同上、二者名称相同 <url-pattern> *.do </url-pattern> </servlet-mapping>

    [/Quote]
    仔细看下你的web.xml
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yami251139
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:36:4814楼 得分:0
    应该是你的servlet-name写错了。。。
    觉得。。。
    仔细核对下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wx830
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:36:5715楼 得分:5
    虽然我不知道问题出在哪,但我还是发现了一个小的细节:
    ResultSet rs = stmt.executeQuery(query);
                while (rs.next()) {
                    String s = rs.getString("id");
                    String t = rs.getString("name");
                    String f = rs.getString("price");
                    out.println(s + " "  +  t + " " + f);
                }
                stmt.close();
                con.close();
    这段代码中应该还要关闭一个对象  rs.close();  正确的应为:
    ResultSet rs = stmt.executeQuery(query);
                while (rs.next()) {
                    String s = rs.getString("id");
                    String t = rs.getString("name");
                    String f = rs.getString("price");
                    out.println(s + " "  +  t + " " + f);
                }
                rs.close();
                stmt.close();
                con.close();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • i_saw_you
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:37:0116楼 得分:0
    Da2tabaseName 我来迟了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • interpb
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-06-24 09:43:1317楼 得分:0
    很明显的问题

    sevlet加上包

    package test;

    然后web.xml 里面改成下面的

    <servlet-class>test.CounterServlet </servlet-class>

    正式的开发里面最好用包结构

    因为有包的类无法引用到无包的类

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cschf
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 11:14:2618楼 得分:0
    String url = url="jdbc:microsoft:sqlserver://localhost:1433;Da2tabaseName=chfjava";
    我写的这句没有错啊,和你们说的一样啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cschf
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 11:20:0019楼 得分:0
    多了一个2
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved