我在一个小项目上工作,我需要做一个'登录'rediriction,但没有数据库只需要测试用户名/密码字符串。
我做了一个index.jsp文件,其中我有一个表单,其中包含用于登录的输入文本字段以及用于密码的表单。该方法是post:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String login = request.getParameter("login");
String password = request.getParameter("password");
boolean result = Authentication.checklogin(login,password);
request.setAttribute("result",result);
request.setAttribute("login",login);
request.setAttribute("password",password);
if (result) {
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("/view/welcome.jsp");
dispatcher.include(request, response);
} else {
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("/view/error.jsp");
dispatcher.include(request, response);
}
doGet(request, response);
}
然后我有一个带有像这样定义的dopost方法的servlet:
public class Authentication {
public String login;
public String password;
public static boolean checklogin( String login ,String password ) {
if (login == "username" && password=="password") {
return true;
} else {
return false;
}
}
}
我有一个像这样定义的身份验证类(我删除了我的帖子的setter和getters,但它们存在于类中):
import package.model.Authentication;
提交表单,我从“请求参数”获得的登录/密码字符串是正常的,方法是静态的,我返回true或false但是当我这样做时,我总是在servlet中有一个result = null但是我应该得到一个结果=真或假...我不明白为什么
我尝试使用int,string但我没有返回。认证类在servlet中导入,如下所示:
{{1}}
如果有人能解释我为什么这种方法不起作用,那将是完美的,谢谢:D