2014-05-15 80 views
0

在這個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); 
     } 

    } 

} 

甚至日食是說死代碼爲什麼這麼說?

+1

那麼如果它是非空的,你大概可以看看它*做的*有哪些cookies ......你是什麼意思「一些隨機值」? –

+1

會話cookie可能是「隨機值」。 –

+0

@JonSkeet歡迎您的配置文件2CDEC5DB0EEFFB7DAEAEC71D242AD2D6 – user3590092

回答

1

而不是驗證cookie的存在。 您應該驗證一些確切的值,您可以使用setCookies方法進行prevously設置。

相關問題