JSP & Servlet & Maven: атрибут формы "action" перенаправляет на другую страницу jsp вместо метода sendRedirect - PullRequest
1 голос
/ 27 февраля 2020

Я создал форму входа в свой индекс. jsp файл:

<%@ page contentType="text/html; ISO-8859-1" language="java" %>
<html>
<head>
    <title>Material Master Data Manager</title>
    <meta charset="ISO-8859-1">
    <link rel="stylesheet" href="css/login_style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<div id="basicData">
    <div id="createMaterialHeader">
        <h2><i><b>Material Master Data Manager</b></i></h2>
        <div id="newPasswordBar">
            <p><a href="">New Password</a></p>
        </div>
    </div>
    <form class="tabcontent" action="MaterialCreator" method="post">
        <label for="client">Client</label><br>
        <select type="text" name="client" id="client">
            <option>Commerzbank AG S.A. Branch in Lodz</option>
            <option>Daikin Airconditioning Poland Sp. z o.o.</option>
            <option>Infosys Consulting</option>
        </select><br>
        <label for="userID">User ID</label><br>
        <input type="text" id="userID" name="userID"><br>
        <label for="userPassword">Password</label><br>
        <input type="password" id="userPassword" name="userPassword"><br>
        <label for="isAdmin">Admin</label><br>
        <input type="text" id="isAdmin" name="isAdmin"><br>
        <input type="submit" class="fa fa-check">
    </form>
</div>
</div>
<footer>
    <p><a>© Created by Lorem Ipsum. 2017</a></p>
</footer>
</body>
<script src='javaScript/loginJs.js'></script>
</html>

То есть сервлет MaterialCreator:

package com.mmdmanager;

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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

@WebServlet("/MaterialCreator")
public class MaterialCreator extends HttpServlet {
    Connection dbConnection;
    PreparedStatement getCredentialsFromDb;
    ResultSet userCredentialsReceived;
    String userCredentials = "SELECT USER_ID, FIRST_NAME, LAST_NAME, SEX, COMPANY_NAME, IS_ADMIN, ACC_PASSWORD FROM USERS " +
            "WHERE COMPANY_NAME =? AND USER_ID =? AND ACC_PASSWORD =? AND IS_ADMIN =?";

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter printWriter = response.getWriter();

        doGet(request,response);
        String company_name = request.getParameter("client");
        String user_id = request.getParameter("userID");
        String acc_password = request.getParameter("userPassword");
        String is_admin = request.getParameter("isAdmin");

        if (company_name.equals("Infosys Consulting") && user_id.equals("ADMIN1") && acc_password.equals("Q@3wertyuiop") && is_admin.equals("Y")) {
            response.sendRedirect("MaterialCreator.jsp");
        }
        else {
            response.sendRedirect("");
        }
    }
}

Как видно из кода выше, Основная идея состоит в том, чтобы перенаправить при условии, что пользователь предоставляет правильные учетные данные (оператор IF хранит их). К сожалению, независимо от того, какие учетные данные я предоставляю, каждый раз, когда я нажимаю кнопку ввода (класс "fa fa-check"), я перенаправляюсь в сервлет MaterialCreator, а не в файл MaterialCreator. jsp, однако код содержит метод -> response.sendRedirect ("MaterialCreator. jsp"); , но он невидим для проекта.
MaterialCreator. jsp файл имеет очень простой html код:

<%@ page contentType="text/html; ISO-8859-1" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>Hello User!</h1>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...