Java EE登录页面问题

我尝试编写一个登录表单,将用户名和密码传递给servlet并让用户登录。

然后,在servlet中,我

request.login(username, password); 

但它抛出了无法validation用户身份的exception。

 String authType = request.getAuthType(); if(authType != null) { request.login(username, password); } 
  1. 我想知道如何编写一个简单的登录页面。
  2. request.authenticate(response)的用途是什么;

我尝试了它,它弹出一个无法继续的屏幕。

  1. 我试着参考这个页面http://download.oracle.com/javaee/1.4/tutorial/doc/Security5.html ,我认为在登录之前需要首先配置身份validation并添加一些用户。

请帮忙。

谢谢。

使用HttpServletRequest#login()方法表明您使用的是Servlet 3.0,它是Java EE 6的一部分。但您正在阅读一本有7。5年历史的J2EE 1.4教程。 我建议把那个尘土飞扬的教程放在一边,然后阅读Java EE 6教程 。 容器管理安全从这里开始。

回到你的具体问题, login()将( 如文件所述 )在登录无效或容器根本没有任何Realm定义时抛出exception。 假设您确定用户名/密码有效,则可能是最后一个原因。 如何做到这完全取决于所讨论的servletcontainer。 只需使用关键字“Realm”查阅其文档即可。 例如,对于Tomcat 7.0,它是Realm Configuration HOW-TO 。 如果在SQL数据库中有用户名/密码,则可能需要使用JDBCRealm 。

一旦在servletcontainer级别配置了Realm ,那么您将能够以您想要的方式使用login()方法。 不要忘记根据Java EE 6教程向web.xml添加 ,以限制对某些URL模式的访问并指定登录页面的URL。