2015-11-05 149 views
0

我正在制作一个小程序,用户名将用于他浏览的所有页面。我写了下面的代码。使用Cookie进行会话维护会产生输出Hello72EB80AEBFB7831A35879408414F9ABA

JSP文件:

<form action="CookieServletOne" method="post"> 
User Name:<input type="text" name="username"> 
<input type="submit" value="Go"> 
</form> 

Servlet的一个(下POST方法):

 response.setContentType("text/html"); 
     PrintWriter pw=response.getWriter(); 

     String username=request.getParameter("username"); 
     pw.println("Welcome " +username); 

     Cookie ck=new Cookie("un",username); 
     response.addCookie(ck); 

     pw.print("<form action='CookieServletTwo'>"); 
     pw.print("<input type='submit' value='go'>"); 
     pw.print("</form>"); 

     pw.close(); 

Servlet2:

response.setContentType("text/html"); 
    PrintWriter pw=response.getWriter(); 

    Cookie[] ck=request.getCookies(); 
    pw.write("Hello" +ck[0].getValue()); 

我想利用这是写在文本框中的值通过使用cookies到Servlet2。但是,

在结束正在打印的值是这样的:

Hello5BD0268F522455DA719130360F74A969

我在做什么错在这里???

服务器:Apache Tomcat。 Jdk:1.7 Os:lubuntu。

谢谢。

+1

是什么让您认为请求只有一个cookie,或者第一个cookie是您设置的名为“un”的cookie?找到你的cookie。不要盲目认为只有一个。 –

回答

1

您应该将下面的代码添加到您的servlet2以获得您想要的结果。您得到的输出是JSESSIONID。

Cookie[] ck=request.getCookies(); 
for(int i=0; i<ck.length; i++) { 
    if("un".equals(ck[i].getName())) { 
     pw.write("Hello" +ck[i].getValue()); 
    } 
}