【发布时间】:2015-02-16 17:15:51
【问题描述】:
import java.sql.*;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
@WebServlet("/JDBCServlet")
public class JDBCServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public JDBCServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uname,pwd;
uname=request.getParameter("t1");
pwd=request.getParameter("t2");
PrintWriter out=response.getWriter();
response.setContentType("text/html");
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection
("jdbc:mysql//localhost:3306/school","t1","t2");
System.out.println("driver is connected");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from student");
out.println("<html><head><title>DATABASE_RESULT</title></head><body>");
out.println("<tr><td>ROLL_NO=</td><td>FIRST_NAME</td><td>LAST_NAME</td><td>"+"CLASS_NAME</td></tr>");
while(rs.next()){
out.println("<tr><td>"+rs.getInt(1)+"</td></tr>");
out.println("<tr><td>"+rs.getString(2)+"</td></tr>");
out.println("<tr><td>"+rs.getString(3)+"</td></tr>");
out.println("<tr><td>"+rs.getInt(4)+"</td></tr>");
}
out.println("</body></html>");
}catch (Exception e){
System.out.println("exception occured");
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
}
}
和html标签是
在此处插入标题
<form method="get" action="JDBCServlet">
USER_NAME<input type="text" name="t1" value="" ><br>
USER_PASSWORD<input type="password" name="t2" value = ""><br>
<input type="submit" name="login" value="login">
</form>
输出(异常)->
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at JDBCServlet.doGet(JDBCServlet.java:32)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我已经编写了单独的 db 程序和 servlet 程序,它们都可以正常工作,但是当我用单个程序编写时却没有。请回答。
【问题讨论】:
-
定义无效。不工作是什么意思?
-
我没有得到任何输出。但是在控制台中,就像在 catch 中一样,我发生了异常。当我在 Class.forName() 之前写它时,它工作但在它之后没有。谢谢
-
Class.forName() 方法发生异常。
-
我认为错误 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 是由于缺少 mysqlconnector jar 文件
-
那么请告诉我如何在servlet程序中导入mysql jar ......谢谢......@anptk
标签: java html eclipse servlets jdbc