1
我想在使用eclipse的servlet中創建一個簡單的cookie程序。爲什麼cookie名稱和值分別是'http'和'proxy',而沒有在eclipse中創建一個?
這是怎麼回事: -
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Cookie[] cookies = request.getCookies();
if(cookies == null)
{
out.print("<b> Hello Stranger </b><br>");
}
else
{
for(Cookie cookie:cookies)
{
out.print("<b> Hello" + cookie.getValue() + "</b>");
}
}
out.print("<form action = '' method = 'post'>");
out.print("What is your name?");
out.print("<input type = 'text' name = 'username'><br>");
out.print("<br>");
out.print("<input type = 'submit'>");
out.print("</form>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("text/html");
String str = request.getParameter("username");
Cookie[] cookies = request.getCookies();
if (cookies == null)
{
Cookie c = new Cookie("username",str);
c.setMaxAge(-1);
response.addCookie(c);
}
for(Cookie cookie: cookies)
{
out.print("<b> Hello," + cookie.getName() + "</b>");
}
}
當使用eclipse 在Tomcat服務器上運行它,而不是讓輸出你好陌生人我甚點擊提交後,得到你好HTTP 它顯示的是相同的內容,而不是輸入的名稱。
但它現在似乎工作!不是Cookie應該是一回事。我的意思是在響應對象中添加cookie之後,將響應(包含cookie)發送到客戶端並存儲在那裏。現在,來自客戶端的每個進一步請求都應包含爲該特定網頁設置的所有Cookie。 即,當我點擊刷新頁面時,doGet方法被調用,但現在Cookie已經存在! –
Yup - 對客戶端的同一個servlet的後續請求將包含早期響應中設置的cookie。 –