Почему происходит перенаправление на другой JSP, когда он должен происходить только в том случае, если в результирующем наборе БД есть что-то? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть список имен и фамилий в таблице БД. В CustomerCheckIn.jsp пользователь будет вводить сначала имя, а затем фамилию. Если имя и фамилия совпадают с именем и фамилией в наборе результатов, возвращаемом из БД, то должно произойти перенаправление в CustomerInterface.jsp. Сообщение терминала появится, если имя и фамилия не совпадают. В настоящее время происходит перенаправление и сообщение терминала.

Полагаю, проблема в моих операторах if и else.

package MainPackage;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
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 CustomerExistRedirect
 */
@WebServlet("/CustomerExistRedirect")
public class CustomerExistRedirect extends HttpServlet  implements DBAccessVariables {
    private static final long serialVersionUID = 1L;

    Customer currentCustomer = new Customer();

    /**
     * @see HttpServlet#HttpServlet()
     */
    public CustomerExistRedirect() {
        super();
    }

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

    /**
     * @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");     
        request.setAttribute("firstName", firstName);
        request.setAttribute("lastName", lastName);
        String strViewPage="CustomerInterface.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(strViewPage);
            dispatcher.forward(request, response);
        customerExist(firstName, lastName, response);
    }

    private void customerExist(String firstName, String lastName,  HttpServletResponse response) {
        try {
             Class.forName("com.mysql.cj.jdbc.Driver");

             Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

             PreparedStatement ps = conn
                        .prepareStatement("select * from Customers WHERE FirstName = ? and LastName = ?");

             ps.setString(1, firstName);
             ps.setString(2, lastName);
             System.out.println(firstName);
             System.out.println(lastName);
             final ResultSet resultSet = ps.executeQuery();

             //   Problem Below !!!!!!!!!!!!!!!!!!!!

             if (resultSet.next()) { 
                 response.sendRedirect("CustomerInterface.jsp");
             } else  { 
                 System.out.println("Your name doesn't exist in the database. Set up name in Employee interface first.");
             }

             //   Problem Above !!!!!!!!!!!!!!!!!!!!

             ps.close();
             conn.close();
          } catch(SQLException se) {
             se.printStackTrace();
          } catch(Exception e) {
             e.printStackTrace();
          }
    }
}

Я хочу, чтобы перенаправление в CustomerInterface.jsp происходило только в том случае, если введенные имя и фамилия совпадают с набором имени и фамилии в наборе результатов из БД.

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