使用Cookie进行会话维护会产生输出Hello72EB80AEBFB7831A35879408414F9ABA
问题描述:
我正在制作一个小程序,用户名将用于他浏览的所有页面。我写了下面的代码。使用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。
谢谢。
答
您应该将下面的代码添加到您的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());
}
}
是什么让您认为请求只有一个cookie,或者第一个cookie是您设置的名为“un”的cookie?找到你的cookie。不要盲目认为只有一个。 –