连接MySQL出错,急!!

bluesleaf 2008-11-06 02:35:41
我的源代码是这样的:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>连接My SQL</title>
</head>

<body>
<%@
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","890910" );
if (!conn.isClosed()) out.print("已成功连接数据库<br>");
}
catch (SQLException ex){
out.println(ex.getMessage());
}
finally{
try{
if (conn!=null) conn.close();
}
catch (Exception ex){
}
}
%>

</body>
</html>
运行时出错了,错误信息如下(Tomcat 5.5的,JDK 1.5的,mysql 6.0的,


HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /connectMySQL.jsp(11,0) Invalid directive
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:527)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1568)
org.apache.jasper.compiler.Parser.parse(Parser.java:132)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:212)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:156)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.



HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to load class for JSP
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:599)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


root cause

java.lang.ClassNotFoundException: org.apache.jsp.connectMySQL_jsp
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:597)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.




Unable to load class for JSP 这句是不是说驱动程序加载不了?我的驱动是mysql-connector-java-5.1.7-bin.jar,在
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib 和
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\myjsp\WEB-INF\lib 都有,在系统变量CLASSPATH里面有它的绝对路径
E:\lib\mysql-connector-java-5.1.7-bin.jar ,可是为什么还是出现了上面的错误,应该不会加载不了啊,好奇怪。搞了好久还是没弄好,哪位高手帮帮忙啊?感激不尽。。
...全文
63 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesleaf 2008-11-06
  • 打赏
  • 举报
回复
呵呵,我现在只是初学JSP的,Java也只是懂了点基础的,照着书上给的代码打,居然都能打错,败给自己了。

以后还望多指教啊。。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bluesleaf 的回复:]
什么意思?
[/Quote]
我的意思是:
你这样把显示页面的JSP代码和业务逻辑(连接数据库)代码混在一起写容易出现错误,
就像你出现的这种错误,要是把数据库连接的代码写在一个.java类中就不会犯这个错误了。

呵呵,既然解决了,下次碰到这种问题时不仿按上面的做法试试!
耶律火柴 2008-11-06
  • 打赏
  • 举报
回复
<%@
Connection conn=null;

---》》》


<% Connection conn=null;
bluesleaf 2008-11-06
  • 打赏
  • 举报
回复
什么意思?
bluesleaf 2008-11-06
  • 打赏
  • 举报
回复
啊。。天啊,,居然是这种错。。无语了。。


  • 打赏
  • 举报
回复
建议:
楼主把数据库操作文件都放到后台
单写一个类用于数据库连接和数据操作
  • 打赏
  • 举报
回复
上面的代码段改为

<%
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","890910" );
if (!conn.isClosed()) out.print("已成功连接数据库 <br>");
}
catch (SQLException ex){
out.println(ex.getMessage());
}
finally{
try{
if (conn!=null) conn.close();
}
catch (Exception ex){
}
}
%>

bruni 2008-11-06
  • 打赏
  • 举报
回复
第11行 <%@ 改成 <%, 把@去掉.
lizhi1026 2008-11-06
  • 打赏
  • 举报
回复
Unable to load class for JSP
<body>
<%@
Connection conn=null;

你这个<%@ 标签有问题吧?

81,094

社区成员

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

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