Я столкнулся с внутренней ошибкой сервера 500 - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь использовать html-страницу с сервлетом, используя jdbc, страница отображается нормально, но когда я нажимаю на кнопку добавления, появляется следующая ошибка:

HTTP Status 500 - Внутренний серверОшибка

Тип отчета об исключении

Описание: The server encountered an unexpected condition that prevented it from fulfilling the request.

Я использую tomcat 9.0.4 и mysql server.

Вот мойкод:

 package com.teejay.userservlet;

 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.ServletConfig;
 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 CreateUserServlet
   */
 @WebServlet("/addServlet")
 public class CreateUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private Connection con;

/**
 * @see Servlet#init(ServletConfig)
 */
public void init(ServletConfig config) throws ServletException {
    try {
        con =            DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "Olamilekan1$%");

    } catch (SQLException e) {
        e.printStackTrace();
    }

}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, 
IOException {

    String firstname=request.getParameter("firstName");
    String lastname=request.getParameter("lastName");
    String email=request.getParameter("email");
    String password=request.getParameter("password");

    try {
        Statement stmt = con.createStatement();
        int result = stmt.executeUpdate("insert into user values('"+firstname+"','"+lastname+"','"+email+"','"+password+"'); ");
        PrintWriter out = response.getWriter();

        if (result>0) 
        {
        out.println(result + "value(s) inserted");
        }

        else {

            out.println("Error inserting values... ");
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

 /**
 * @see Servlet#destroy()
 */
   public void destroy() {
    try {
        con.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }


     }






here the html ...

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add User</title>
</head>
<body>
<h1>User Registration:</h1>
<form method="post" action="addServlet">
    <table>
        <tr>
            <td>First Name:</td>
            <td><input name="firstName" /></td>
        </tr>
        <tr>
            <td>Last Name :</td>
            <td><input name="lastName" /></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input name="email" /></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input name="password" type="password" /></td>
        </tr>
        <tr>
            <td />
            <td><input type="submit" value="Add" /></td>
    </table>
 </form>
 </body>
 </html>

и

Я ожидал, что значения будут взяты со страницы html в базу данных.

1 Ответ

0 голосов
/ 15 февраля 2019

Вам необходимо добавить строку ниже, чтобы получить соединение в методе init.

Class.forName("com.mysql.jdbc.Driver");  

Это должно решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...