gpt4 book ai didi

java - request.getParameter 中的空值

转载 作者:行者123 更新时间:2023-12-02 02:09:56 24 4
gpt4 key购买 nike

Login Controller:

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";
}

}

这里,每个请求都通过 com.webappmvc.mvc.controller.Controller 中定义的 WebappController 类,com.webappmvc.mvc.controller.Controller#doGet 方法选择 Controller 、模型、运行时 View ,然后将其转发到 com.webappmvc.mvc.controller.ResponseController#doGet然后,在响应 Controller 中,类似这样的代码转发请求,响应客户端项目 Controller#doProcess 方法。

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

有了这些,当我尝试访问/登录时,LoginController 被调用,但是getParameter() 每次都返回 null。我也尝试访问此网址

Requested URL: http://localhost:8080/FreameworkTest/controller/login?userName=test&password=test&login=Login

我正在像这样的控制台中获取输出。

Console Output:

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

最佳答案

您正在使用发送:

userName=test

并使用

获取属性
request.getParameter("username");

你打错字了。改为使用

request.getParameter("userName");

您在第二部分中没有执行的错误。

注意:

我建议您为这些定义常量值,而不是使用String文字

private final statis String USER_NAME = "userName";

并在每次需要时使用它

request.getParameter(USER_NAME);

关于java - request.getParameter 中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50168336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com