这个程序完成的是在页面输入用户名和密码,提交,我想连到数据库看有没有此用户名用密码,可现在连不上。请高手指点
错误:java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource
at org.webb.login.LoginServlet.doGet(LoginServlet.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)我的配置:apache-tomcat-6.0.18\conf\contxet.xml
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"/>
</Context>我的源代码:
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import sun.jdbc.odbc.ee.DataSource;public class LoginServlet extends HttpServlet { public LoginServlet() {
super();
} public void destroy() {
super.destroy();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Context initContext; try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/mysql");
if(ds==null){
System.out.println("获得数据源成功");
}
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet set = stmt.executeQuery("SELECT * FROM lp1");
while (set.next()) {
System.out.println(set.getString("appid"));
} } catch (Exception e) {
e.printStackTrace();
} String name = request.getParameter("yourname");
System.out.println("yourname=" + name);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request, response);
}
public void init() throws ServletException {
}
}
错误:java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource
at org.webb.login.LoginServlet.doGet(LoginServlet.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)我的配置:apache-tomcat-6.0.18\conf\contxet.xml
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123456" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"/>
</Context>我的源代码:
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import sun.jdbc.odbc.ee.DataSource;public class LoginServlet extends HttpServlet { public LoginServlet() {
super();
} public void destroy() {
super.destroy();
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Context initContext; try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/mysql");
if(ds==null){
System.out.println("获得数据源成功");
}
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet set = stmt.executeQuery("SELECT * FROM lp1");
while (set.next()) {
System.out.println(set.getString("appid"));
} } catch (Exception e) {
e.printStackTrace();
} String name = request.getParameter("yourname");
System.out.println("yourname=" + name);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request, response);
}
public void init() throws ServletException {
}
}
http://topic.csdn.net/u/20071223/23/5c4ef813-8dcf-4fd7-b1e1-68e6a3381e94.html
你确定你的里面是这样的
少个/吧
System.out.println("获得数据源成功");
那肯定就是
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"/>
</Context>
配置错误或者是驱动包没有导入。
url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"改为
url="jdbc:mysql://127.0.0.1:3306/liuupeng?characterEncoding=utf8"
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"/>
</Context> web.xml的配置: apache-tomcat-6.0.18\conf\web.xml配置
<resource-ref>
<description>DB Connection </description>
<res-ref-name>jdbc/mysql </res-ref-name>
<res-type>javax.sql.DataSource </res-type>
<res-auth>Container </res-auth>
</resource-ref> 注意: 红色部分要写相同的连接名称.
<Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306 liuupeng?characterEncoding=utf8"/>
</Context> web.xml的配置: apache-tomcat-6.0.18\conf\web.xml配置
<resource-ref>
<description>DB Connection </description>
<res-ref-name>jdbc/mysql </res-ref-name>
<res-type>javax.sql.DataSource </res-type>
<res-auth>Container </res-auth>
</resource-ref> 注意: 红色部分要写相同的连接名称.