0

我有一个非常简单的登录 servlet,代码如下:

            userName = request.getParameter("username");
    password = request.getParameter("password");

    if ("xxx".equals(userName) && "xxx".equals(password)) {
        RequestDispatcher requestDisSecure = request
                .getRequestDispatcher("VendorList_Secure.jsp");
        requestDisSecure.forward(request, response);
    }
    if ("xxx".equals(userName) && "xxx".equals(password)) {
        RequestDispatcher requestDisSecure = request
                .getRequestDispatcher("VendorList_Secure.jsp");
        requestDisSecure.forward(request, response);
    }
    if ("xxx".equals(userName) && "xxx".equals(password)) {
        RequestDispatcher requestDisSecure = request
                .getRequestDispatcher("VendorList_Secure.jsp");
        requestDisSecure.forward(request, response);
    }
    if ("xxx".equals(userName) && "xxx".equals(password)) {
        RequestDispatcher requestDisSecure = request
                .getRequestDispatcher("VendorList_Secure.jsp");
        requestDisSecure.forward(request, response);
    } else {
        /**
         * Unauthenticated user
         */
        RequestDispatcher requestDisUnSecure = request
                .getRequestDispatcher("VendorLoginError.jsp");
        requestDisUnSecure.forward(request, response);
    }

我们从具有用户名和密码参数的 VendorLogin.jsp 来到这个 servlet 逻辑,如果登录正确,它会转发到 VendorList_Secure.jsp,但如果不是,它将转发到 VendorLoginError.jsp,但在输入新的用户名和密码后并点击上面的 servlet,我将用户名和密码参数都设为 null,而不是 servlet 中的新更新值!

我尝试了重定向,但我得到了相同的效果

我知道我可以通过保护 web.xml 中的资源来更好地实现登录,但我想知道为什么这个简单的例子不起作用

那么我在这里做错了什么?

非常感谢

4

2 回答 2

1

您的表单元素应与 getParameter 中给出的名称匹配。

userName = request.getParameter("username");
password = request.getParameter("password");

就像下面

<input type="text" name="username"  />
<input type="password" name="password"  />
于 2012-05-01T17:30:27.303 回答
0

您的登录 jsp 应该包含用户名和密码作为名称的元素。

<input type="text" name="username" id="txtUserName" />
于 2012-05-01T17:22:26.580 回答