使用该
HttpServletRequest#login()方法表明您正在使用Java
EE 6的Servlet 3.0。但是,您正在阅读7.5年的J2EE 1.4教程。我建议搁置该篇尘土飞扬的教程,而改为阅读Java EE
6教程。容器管理的安全性从这里开始。
回到您的具体问题,当登录无效或容器根本没有定义任何 Realm
时,
login()遗嘱(如文档所述)将引发异常。假设您确定用户名/密码有效,则可能是最后一个原因。确切的方法取决于所涉及的servlet容器。只需使用关键字“
Realm”查阅其文档。例如,对于Tomcat 7.0,这是Realm Configuration HOW-
TO。如果您在SQL数据库中具有用户名/密码,则可能需要使用JDBCRealm。 __
一旦在servlet容器级别配置了 Realm ,就可以按需要使用该
login()方法。不要忘记按照Java EE
6教程在中添加
<security-constraint>,
web.xml以限制对某些URL模式的访问并指定登录页面的URL。



