日期:2014-05-17  浏览次数:20740 次

新手关于读取Cookie的问题
我是学Servlet的新手,这个程序是我为了学习敲出来的。
首先,页面上显示一个连接到百度的超链接。
然后往客户端写入cookie,一个cookie是3600秒的有效期,一个是不指定有效期的cookie
然后我读取刚才写入的cookie并显示。

我有两个问题:
问题1:我运行,它会报状态码为500的错误,好像写的是空指针异常,如果我删除从获取PrintWriter开始一直到最后for循环结束的代码,那就可以正常运行,这是为什么?


问题2:为什么正常运行时,我点击那个“go”的超链接,并不是连接到百度,而是连接到我的webapp项目下的www.baidu.com的文件?(因为我没有那个文件,所以报404)
Java code
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");
        response.getWriter().write("<a href = 'www.baidu.com'>go</a>");
        Cookie cookie = new Cookie("名字1", "值1");
        cookie.setMaxAge(3600);
        response.addCookie(cookie);
        cookie = new Cookie("名字2", "值2");
        response.addCookie(cookie);
        PrintWriter out = response.getWriter();
        Cookie[] allCookie = request.getCookies();
        for (Cookie c : allCookie) {
            out.println(c.getName() + " and " + c.getValue() + "<br/>");
        }
    }

}



------解决方案--------------------
<a href = 'http://www.baidu.com' target="_blank">go</a>试试行不
------解决方案--------------------
探讨
<a href = 'http://www.baidu.com' target="_blank">go</a>试试行不