我需要在身份验证之前进行设置吗?
是的,当用户第一次访问login.jsp并成功进行身份验证时,您可以像这样创建此属性。 session.setAttribute(" authenticated",true);
登录页面位于主页中,因此从servlet进行身份验证之后,如果用户进入该主页并单击login.jsp,那么他将被重定向到home.jsp吗?
是的。如果authenticated属性设置为true,则用户将被重定向到home.jsp。还有一点,一旦用户登录,就需要隐藏login.jsp的链接
感谢您的回复。我要写这个session.setAttribute(" authenticated",true);在login.jsp中还是我需要写一些额外的内容?
您需要编写session.setAttribute(" authenticated",true);在验证用户身份之后。我猜你在servlet中进行身份验证,所以在那做。
是的,我正在通过Servlet进行身份验证,因此成功身份验证后,我将编写:session.setAttribute(" authenticated",true); response.sendRedirect(" home.jsp");在那个servlet中?否则我将编写session.setAttribute(" authenticated",true);在login.jsp页面中?但是在这个login.jsp页面中,我如何创建session.setAttribute(" authenticated",true);?该用户是否尚未登录?
在Servlet代码中,当用户成功登录时,写入session.setAttribute(" authenticated",true);。并重定向到home.jsp。...如果用户单击login.jsp,则他/她将重定向到home.jsp,因为authenticated属性现在为true。
谢谢,我正在做,让我们看看..
朋友,它不起作用,我写了session.setAttribute(" authenticated",true);在servlet doPost方法中,登录后,如果我单击login.jsp链接,那么我将再次进入login.jsp页面,并在提供用户名和密码控制后转到servlet,然后是home.jsp。有什么帮助吗?
确保if(session.getAttribute(" authenticated")。equals(" true"))如果if语句在login.jsp中为true,否则代码将无法工作。
是的,我正在写..希望它能工作
@KashifKhan:如果他使用session.setAttribute(" authenticated",true)和if(session.getAttribute(" authenticated")。equals(" true")),则此方法无效。字符串和布尔值永远不会相等。
@JBNizet是的,您是对的。我已经更新了答案。 if语句应类似于if(session.getAttribute(" authenticated"))
不,那也不行。 getAttribute返回一个Object。您需要将其强制转换为布尔值,然后测试该布尔值是否为true。
再次更新了答案,并在我的本地主机上进行了测试。
@KashifKhan .....我在login.jsp中写了以下内容,请检查一下:然后在servlet的doPost中编写:HttpSession session = request.getSession(false); session.setAttribute(" authenticated",true);我可以吗?
@KashifKhan它正在工作,但是如果我在同一浏览器的两个选项卡中打开两个login.jsp,那么如果我登录一个login.jsp,home.jsp就会出现,但是之后如果我在第二个选项卡上单击login.jsp那么它就不会进入home.jsp,而控制权将进入login.jsp,但是在第一个选项卡中,如果我单击login.jsp,我已经登录在那里,那么它将进入home.jsp,但是第二个选项卡框却没有工作。有帮助的朋友吗?
是的,代码看起来不错。确保检查session1!= null
如果您登录fisrt选项卡,则刷新第二个选项卡。它将正常工作。但是更好的解决方案是在Web应用程序中使用过滤器来检查用户是否登录的天气。阅读此处以了解过滤器示例viralpatel.net/blogs/2009/01 / ....
是的,我正在过滤器中查看