Нулевое значение Из request.getParameter - PullRequest
0 голосов
/ 04 мая 2018

Контроллер входа:

package test;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.webappmvc.mvc.controller.Controller;

public class Login implements Controller{

    public void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();

        System.out.println("UserName Parameter Value: " + request.getParameter("username"));

        if(request.getParameter("login") != null && request.getParameter("userName") != null && request.getParameter("password") != null){
            if(!request.getParameter("userName").equals("") && !request.getParameter("password").equals("") && request.getParameter("login").equals("Login")){
                ArrayList<String> data = (ArrayList<String>) request.getAttribute("model");
                for(int i=0; i<data.size(); i+=2){
                    System.out.println("Username from DB: " + data.get(i) + "\nPassword: " + data.get(i+1));
//                  if(request.getParameter("username").toString().equals(data.get(i))){
//                      if(request.getParameter("password").toString().equals(data.get(i+1).toString())){
//                          session.setAttribute("loggedUser", data.get(i).toString());
//                          response.sendRedirect("home");
//                          return;
//                      }
//                      request.setAttribute("errorMsg", "Invalid Login");
//                  }
                }
            }
        }
        System.out.println("Result view is: " + request.getAttribute("view"));
        request.getRequestDispatcher(request.getAttribute("view").toString()).forward(request, response);
    }

    public String addMapping() {

        return "/login";
    }

}

Здесь каждый запрос проходит через класс WebappController, определенный в com.webappmvc.mvc.controller.Controller , com.webappmvc.mvc.controller.Controller # doGet метод выбора контроллера, модель, просмотрите во время выполнения, затем перешлите его на com.webappmvc.mvc.controller.ResponseController # doGet Затем в ответном контроллере какой-то код, подобный этому, передает запрос клиентскому проекту ответа Controller # doProcess метод.

Controller controller = (Controller) request.getAttribute("controller");
controller.doProcess(request, response);

С этим, когда я пытался получить доступ / войти, LoginController вызывали, но getParameter () возвращает ноль каждый раз. Я также пытался получить доступ к этому URL

Запрошенный URL: http://localhost:8080/FreameworkTest/controller/login?userName=test&password=test&login=Login

Я получаю вывод в консоли, как эти.

Консольный вывод:

All request passing through WebApp Controller //From WebAppController
 ----- From Response Controller //From WebAppResponseController

UserName Parameter Value: null  //From LoginController
Username from DB: jitu
Password: 12345
Result view is: /WEB-INF/views/Login.jsp

1 Ответ

0 голосов
/ 04 мая 2018

Вы используете отправить:

userName=test

И получить атрибут с

request.getParameter("username");

Вы сделали опечатку. Используйте вместо

request.getParameter("userName");

Ошибка, которую вы не сделали во второй части.

Примечание:

Я предлагаю вам определить постоянное значение для них вместо использования String литерал

private final statis String USER_NAME = "userName";

И используйте его каждый раз, когда вам нужно

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