org.apache.jasper.JasperException:在第25行处理JSP页面/Admin.jsp时发生异常
22: }
23: }
24: }
25: if(!ourcookie.getValue().equals("authval"))response.sendRedirect("Login.jsp?ref=nocookie");
26: %>
以下是代码:
<%
Cookie[] cookies=request.getCookies();
Cookie ourcookie=null;
if(cookies!=null)
{
for(int i=0;i<cookies.length;i++)
{
if(cookies[i].getName().equals("auth"))
{
ourcookie=cookies[i];
}
}
}
if(!ourcookie.getValue().equals("authval"))response.sendRedirect("Login.jsp?ref=nocookie");
%>
答案 0 :(得分:1)
在调用ourcookie
方法之前,不检查getValue()
是否为空,这可能会为未经过身份验证的用户抛出NullpointerException。通过调试器检查日志和/或执行此代码将确认它。
重要提示:依靠cookie的存在和价值来了解某人是否经过身份验证是非常危险的:任何脚本小子都能够通过其请求发送此类cookie,而无需通过您的身份验证过程。不要依赖来自客户端的数据来了解用户是否经过身份验证。在HTTP会话中存储经过身份验证的标志,该会话保留在服务器端。
附注:您的Java代码应该缩进为更具可读性,并且它不应该在JSP中。不应再使用Scriptlet。请参阅How to avoid Java code in JSP files?。