在这个servlet中,代码永远不会到达else部分为什么会这样?即使我没有添加任何cookie,它仍然会打印一些随机值?为什么会这样?
public class profile extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Cookie[] ck=req.getCookies();
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
if(ck!=null)
{
System.out.println("hello");
RequestDispatcher rd=req.getRequestDispatcher("/index.jsp");
rd.include(req, resp);
out.println("welcome to your profile "+ck[0].getValue());
}
else
{
out.println("sorry annonymous,you have to login first");
RequestDispatcher rd=req.getRequestDispatcher("/login.jsp");
rd.include(req, resp);
}
}
}
甚至eclipse都说死代码为什么会这样?
答案 0 :(得分:1)
而不是验证cookie的存在。 您应该验证一些确切的值,您可以使用setCookies方法进行主要设置。