Tomcat Servlet Cookie示例不起作用

时间:2013-09-03 02:08:48

标签: java tomcat servlets cookies runtime-error

我正在尝试运行Tomcat中的cookie示例,但它给了我一些问题。 Tomcat为程序显示的源代码是

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class CookieExample extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        // print out cookies

        Cookie[] cookies = request.getCookies();
        for (int i = 0; i < cookies.length; i++) {
            Cookie c = cookies[i];
            String name = c.getName();
            String value = c.getValue();
            out.println(name + " = " + value);
        }

        // set a cookie

        String name = request.getParameter("cookieName");
        if (name != null && name.length() > 0) {
            String value = request.getParameter("cookieValue");
            Cookie c = new Cookie(name, value);
            response.addCookie(c);
        }
    }
}

我在第java.lang.NullPointerException行<{1}}

我正在传递cookieName和cookieValue。我尝试先设置cookie然后打印它,但它在同一行给出相同的错误。问题是,当我几个月前尝试这个程序时,它在Internet Explorer上工作正常,但在Chrome上却没有。它提供了一个http作为名称和代理作为我想的值。

1 个答案:

答案 0 :(得分:2)

Cookie[] cookies = request.getCookies()

返回null,这是servlet引擎提交零cookie的方式。你需要通过检查来保护你的for循环。

它之前可能“有时”工作,因为当时IE会话中恰好有cookie而不是正在发送的chrome,从而允许循环执行。