Исправить JDBC в динамическом веб-проекте - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь проверить данные в базе данных через сервлет, но html-страница не читает страницу сервлета.

Ошибка:

Исходный сервер не найдентекущее представление для целевого ресурса или не желает раскрывать, что он существует.

Моя страница входа в систему:

<form action="validate" method="Post">
    User name:
    <br>
    <input type="text" name="username">
    <br>
    User password:
    <br>
    <input type="password" name="psw">
    <input type="submit" value="Submit">
</form>

Мой код сервлета:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.SetContenttype("text/html");
    String uname = request.getParameter("username");
    String password = request.getParameter("psw");

    Class.forName("com.mysql.jdbc.Driver");
    Connection Con = DriverManager.getConnection("jdbc:mysql://localhost:3306/students", "root", "1234");
    PreparedStatement pstmt = Con.prepareStatement("SELECT * FROM data WHERE username = ? AND password = ?");
    pstmt.setString(1, uname);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery();
    if (rs.next()) {
        System.out.println("record found");
        RequestDispatcher rd = request.getRequestDispatcher("Stu.jsp");
        rd.forward(request, response);
    } else {
        System.out.println("record not found");
        RequestDispatcher rd = request.getRequestDispatcher("Login.html");
        rd.forward(request, response);
    }
    rs.close();
    pstmt.close();
    Con.close();

    doGet(request, response);
}

Ответы [ 2 ]

0 голосов
/ 13 ноября 2019

эта проблема возникает, когда действие не может найти указанный сервлет, и это может быть для многих резонансов.

  • Пожалуйста, проверьте аннотацию @WebServlet, она может быть

    @ WebServlet (name = "validate")

что-то в этом роде, вы должны дать ему

@WebServlet(urlPatterns = "/validate")

или свою банкуиспользуйте

@WebServlet("/validate")

Другая проблема, которую вы можете добавить в форму в разделе действий

<form action="${requestScope.getContextPath}/validate" method="Post">

Жаль, что я не помог вам.

0 голосов
/ 10 ноября 2019

На странице входа в систему вы должны указать

    <form action="/LoginServlet" method="post">  

Также проверьте, если вы указали отображение сервлета в web.xml или аннотируйте свой класс сервлета с помощью @WebServlet ("/ LoginServlet")

      <servlet>
        <servlet-name>servletname</servlet-name>
        <servlet-class>/LoginServlet</servlet-class>
      </servlet>

      <servlet-mapping>
        <servlet-name>servletname</servlet-name>
        <url-pattern>*.html</url-pattern>
      </servlet-mapping>

Надеюсь, это поможет!

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