站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Tomcat 5.0+MySQL 4.1 ,在JSP页面中用JDBC(mysql-connector-java-3.0.17)连接数据库失败

Tomcat 5.0+MySQL 4.1 ,在JSP页面中用JDBC(mysql-connector-java-3.0.17)连接数据库失败

摘要: Tomcat 5.0+MySQL 4.1 ,在JSP页面中用JDBC(mysql-connector-java-3.0.17)连接数据库失败
对于同一个jsp文件DbJsp.jsp,我把它放在一个webapps/bookstore下面可以正常连接数据库,为什么把它放到另一个目录webapps/bookstore下面就会出现一系列的错误。

try { Connection con; Statement stmt; ResultSet rs; //加载驱动程序,下面的代码为加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); //注册MySQL驱动程序 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //用适当的驱动程序连接到数据库 String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=GB2312"; String dbUser="dbuser"; String dbPwd="1234"; //建立数据库连接 con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd); //创建一个JDBC声明 stmt = con.createStatement(); //增加新记录 stmt.executeUpdate("INSERT INTO books (id,name,title,price) VALUES ('999','Tom','Tomcat Bible',44.5)"); //查询记录 rs = stmt.executeQuery("SELECT id,name,title,price from books"); //输出查询结果 out.println("<table border=1 width=400>"); while (rs.next()) { String col1 = rs.getString(1); String col2 = rs.getString(2); String col3 = rs.getString(3); float col4 = rs.getFloat(4); //convert character encoding col1=new String(col1.getBytes("ISO-8859-1"),"GB2312"); col2=new String(col2.getBytes("ISO-8859-1"),"GB2312"); col3=new String(col3.getBytes("ISO-8859-1"),"GB2312"); //打印所显示的数据 out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>"); } out.println("</table>"); //删除新增加的记录 stmt.executeUpdate("DELETE FROM books WHERE id='999'"); //关闭数据库连结 rs.close(); stmt.close(); con.close(); } //捕获错误信息 catch (Exception e) {out.println(e.getMessage());}

错误如下: Communication link failure: java.io.IOException, underlying cause: Unexpected end of input stream ** BEGIN NESTED EXCEPTION ** java.io.IOException MESSAGE: Unexpected end of input stream STACKTRACE: java.io.IOException: Unexpected end of input stream at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1096) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:626) at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562) at com.mysql.jdbc.Connection.(Connection.java:491) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at org.apache.jsp.DbJsp_jsp._jspService(DbJsp_jsp.java:75) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) ** END NESTED EXCEPTION ** 请问可能是哪里出了问题?

↑返回目录
前一篇: servlet的实例变量是线程不安全的,而其JSP也默认是以多线程方式执行(原创)
后一篇: JSP页面文件目录树源码(递归算法)