Java HttpServletRequest#login()做什么
我读过。我有两个问题,主要是关于Java HttpServletRequest#login()做什么,java,servlets,jakarta-ee,Java,Servlets,Jakarta Ee,我读过。我有两个问题,主要是关于 问题1:如果userDAO.find()返回的user不为空,这是否意味着 用户名和密码正确,用户应登录? 问题2:HttpServletRequest#登录对验证用户有什么作用 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generat
问题1:如果
userDAO.find()
返回的user
不为空,这是否意味着
用户名和密码正确,用户应登录?问题2:HttpServletRequest#登录对验证用户有什么作用
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userDAO.find(username, password);
if (user != null) { // If true , does it prove the username and password is correct?
try {
/* Why call request.login() here? I think the client has been
* validated if user!=null. What's the use of this line?
*/
request.login(username, password);
System.out.println.("successfully log in");
} catch (Exception e) {
e.printStackTrace();
}
}
HttpServletRequest#login
的javadoc提供了极好的解释。您必须在servlet上下文中配置身份验证领域(可以由应用程序服务器提供)@maress我已经在META-INF/context.xml中配置了它。我对userDAO.find()
和request.login(用户名、密码)
的功能非常困惑。是否使用userDAO.find()
搜索数据库中与表单user匹配的行(用户字段和密码都匹配)?@maress“提供了很好的解释”-完全不是这样。“在为ServletContext配置的web容器登录机制使用的密码验证域中验证提供的用户名和密码。”未回答以下问题:什么是“密码验证域”,“web容器登录机制”,什么是ServletContext,以及如何配置逻辑机制。请不要说“查找”,因为这正是问题所在——该方法的javadoc本身甚至在基本层面上都没有解释这些事情。HttpServletRequest登录的javadoc提供了极好的解释。您必须在servlet上下文中配置身份验证领域(可以由应用程序服务器提供)@maress我已经在META-INF/context.xml中配置了它。我对userDAO.find()
和request.login(用户名、密码)
的功能非常困惑。是否使用userDAO.find()
搜索数据库中与表单user匹配的行(用户字段和密码都匹配)?@maress“提供了很好的解释”-完全不是这样。“在为ServletContext配置的web容器登录机制使用的密码验证域中验证提供的用户名和密码。”未回答以下问题:什么是“密码验证域”,“web容器登录机制”,什么是ServletContext,以及如何配置逻辑机制。请不要说“查找”,因为这正是问题所在——该方法的javadoc本身甚至在基本层面上也没有解释这些事情。