我有一个非常简单的登录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逻辑,它具有用户名& password参数,如果登录正确,则转发到VendorList_Secure.jsp,但如果没有,它将转发到VendorLoginError.jsp,但输入新的用户名&密码并点击上面的servlet,我得到了用户名和密码密码参数为null而不是servlet中的新更新值!
我尝试重定向,但我得到了同样的效果
我知道如何通过保护web.xml中的资源来实现登录更好,但我想知道为什么这个简单的例子不起作用
那我在这里做错了什么?
非常感谢
答案 0 :(得分:1)
您的表单元素应与getParameter中提供的名称匹配。
userName = request.getParameter("username");
password = request.getParameter("password");
如下所示
<input type="text" name="username" />
<input type="password" name="password" />
答案 1 :(得分:0)
您的登录jsp应该包含带有用户名和密码的元素。
<input type="text" name="username" id="txtUserName" />