java - JSP JDBC SERVLET 显示 classnotfound 异常....一切都正确

标签 java html jsp servlets

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>REGISTRATION</title>
</head>
<body>
<form action="reg" method="post">
Name: <input type="text" name="user_name"><br>
EMAIL: <input type="text" name="user_email"><br>
PASSWORD: <input type="text" name="user_pass"><br>
<input type="submit"><br>
</form>
</body>
</html>



reg.java


import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class reg
 */
@WebServlet("/reg")
public class reg extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String user_name = request.getParameter("user_name").toString();
        String user_email = request.getParameter("user_email").toString();
        String user_pass = request.getParameter("user_pass").toString();

            Connection con=null;
            try {
                Class.forName("com.mysql.jdbc.driver");
                con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root123");
                Statement st=con.createStatement();
                int c=st.executeUpdate("insert into test values('"+user_name+"','"+user_email+"','"+user_pass+"')");
                if(c>0){
                    out.println("REGISTERD");
                }
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

}

显示异常 一切都在项目..连接器、数据库、表中,如果用户使用相同的代码运行简单的java代码,但在servlet中它显示ClassNotFoundException 帮我。 谢谢!

以下是异常(exception)情况

java.lang.ClassNotFoundException: com.mysql.jdbc.driver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at reg.doPost(reg.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)

最佳答案

如果它可以从 Eclipse 运行,则意味着您的项目的类路径中有 MySql jdbc dirver jar,但它不可用于您的 Web 应用程序。

项目类路径(构建路径)与部署时 Web 应用程序的类路径不同。并非项目类路径上的所有 jar 都会自动导出。

通常,WEB-INF/lib 中的 jar 可用于 Web 应用程序,但外部的 jar 则不可使用。

您应该将 MySql jdbc 驱动程序 jar 放在 WEB-INF/lib 中,或者将其添加到 Servlet 容器的 lib 文件夹中(根据异常堆栈跟踪判断,在您的情况下为 Tomcat)。

关于java - JSP JDBC SERVLET 显示 classnotfound 异常....一切都正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224824/

相关文章:

java - Selenium webdriver 通过匹配来自其他列的文本来获取同一行中相邻列的文本

java - 制作框架模态

javascript - 动态表单到数据库

javascript - jQuery/Javascript 与 Galleria 冲突

java - 使用 Struts2 标签转义字符串

javascript - 如何使用 SQL 作为数据库和 JSP 在 Google map 上添加多个标记?

java - JNA Objective-C (Rococoa) 日历回调

java - 递归方法打印字符串并递减1并为每个递归删除1个字母

html - html音频上没有鼠标响应(Windows App Ionic)

java - 将文本数据传递到 jsp 页面,其中包含多部分数据