小弟在本版的第一个问题(jsp连接mysql),先有礼了!
我刚刚开始学习jsp,做了个连接mysql的jsp,现在已经安装了tomcat和jdk、mysql,且jdbc也安装正确,因为我用java写了个小程序测试通过,能正常查询,就是用jsp访问数据库总是不成功,所以我苦恼至极,现在将我的做法贴在下面,希望有同情心的拉我一把,日后必将报答
一、我有个javabean 叫 DBconn.java 放在tomcat主目录下面的examples\WEB-INF\classes\mysqltest下面
源码如下:
package Mysqltest;
import java.sql.*;
public class DBconn
{
String DBDriver="org.gjt.mm.mysql.Driver";
String ConnStr="jdbc:mysql://10.110.0.39/jsp_connect";
String MyUser="root";
String MyPassword="";
Connection conn = null;
ResultSet rs = null;
public DBconn()
{
try
{
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}
其中10.110.0.39是我本机的IP、jsp_connect为数据库名字
二、我的jsp文件放在tomcat主目录下面的examples\jsp ,叫Mysqltest.jsp
源码为:
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>JSP连接MySQL!</title>
</head>
<body>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="DBconn1" scope="page" class="DBconn" type="DBconn" />
<%
ResultSet RS = DBconn1.executeQuery("SELECT * FROM my_test_table");
while (RS.next())
{
out.print("<h1>" + RS.getString("test_column")+"</h1>");
}
RS.close();
%>
</body>
</html>
三、现在我载浏览器里面敲
http://localhost:8080/examples/jsp/Mysqltest.jsp
出现如下错误:
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 compile class for JSP
An error occurred at line: 7 in the jsp file: /jsp/Mysqltest.jsp
Generated servlet error:
[javac] Compiling 1 source file
C:\Tomcat\work\Standalone\localhost\examples\jsp\Mysqltest_jsp.java:50: cannot resolve symbol
symbol : class DBconn
location: class org.apache.jsp.Mysqltest_jsp
DBconn DBconn1 = null;
^
An error occurred at line: 7 in the jsp file: /jsp/Mysqltest.jsp
Generated servlet error:
C:\Tomcat\work\Standalone\localhost\examples\jsp\Mysqltest_jsp.java:52: cannot resolve symbol
symbol : class DBconn
location: class org.apache.jsp.Mysqltest_jsp
DBconn1 = (DBconn) pageContext.getAttribute("DBconn1", PageContext.PAGE_SCOPE);
^
An error occurred at line: 7 in the jsp file: /jsp/Mysqltest.jsp
Generated servlet error:
C:\Tomcat\work\Standalone\localhost\examples\jsp\Mysqltest_jsp.java:55: cannot resolve symbol
symbol : class DBconn
location: class org.apache.jsp.Mysqltest_jsp
DBconn1 = (DBconn) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "DBconn");
^
3 errors
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)
--------------------------------------------------------------------------------
Apache Tomcat/4.1.27
不知是什么问题,我现在对tomcat的目录设置和管理很模糊,对一堆jsp、classes目录一片迷茫,不知道应该将class文件放在那个目录下面,是不是这个问题导致的呢?另外我想请教一下,如果我想在C盘根目录下面建my_jsp的目录来放置自己的jsp(这样想方便一点嘛),要怎么配置tomcat,将来发布的时候class文件放在哪里?
谢谢能有好心人看到这个帖子,今天是中秋节,我祝愿看过这个帖子和能给点建议的人生活如意,财运滚滚!