JSP - 退出执行其余代码
在 JSP 页面的第一行中,我检查会话值是否为空。如果为 null 则重定向回登录页面。
当我通过注销来测试它并检查该页面时,它给出了 org.apache.jasper.JasperException: java.lang.NullPointerException 错误。
那么如何退出 sendRedirect 行之后的代码呢?
代码:
<%
if((session.getAttribute("user_type")==null) || (!session.getAttribute("user_type").equals("user")))
{
response.sendRedirect("login.jsp");
//prevent executing rest of code.
}
%>
<html>
<head>
.......
要注销,我仅使用: session.invalidate();
In the first line of my JSP page, I check for a session value is null. If null redirect back to login page.
When i tested it by loggingout and checked that page, it give a org.apache.jasper.JasperException: java.lang.NullPointerException
error.
So how to exit the code just after the sendRedirect line ?
Code:
<%
if((session.getAttribute("user_type")==null) || (!session.getAttribute("user_type").equals("user")))
{
response.sendRedirect("login.jsp");
//prevent executing rest of code.
}
%>
<html>
<head>
.......
To logout, I use only: session.invalidate();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的 JSP 代码相当于:
如果你不想做很多其他事情,代码应该是
所以它应该看起来像这样:
除了
Your JSP code is equivalent to:
If you don't want to do plenty of other things, the code should be
So it should look like that:
Except that
是的。
只需添加以下行:
Yes.
Simply add the following line:
经过更多调试后,我发现了这个问题的原因。
我有一个 jsp:include 标签。在主代码中,我只分配了要包含的页面(如果用户有效(已登录))。因此,当用户注销时,此标签仍在尝试包含它(我使用变量来传递页面名称)。
我添加的内容:
现在,当用户无效时,在执行过程中将不会考虑此 jsp 标记。
After doing some more debugging, I found where this problem was causing.
I have a jsp:include tag. And in the main code, I only assigned the page to include if user is valid(logged in). So, when user is loggedout, this tag was still trying to include it(I used a variable to pass the pagename).
What I have added:
Now this jsp tag will not be considered during execution when user is not valid.