下面代码什么地方错误,
第一次输入:
admin
1234
结果:都是空白
第二次输入:
asd
adf
结果:admin 1234
第三次输入:
www
123
结果:asd adf
以后每次以此类推
我现在是在同一页面出现这种问题,如果cookie在servlet中处理貌似没有这回事。求解
- Java code
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%! String username=""; String password=""; boolean point=false; %><% if (point) { String name = request.getParameter("name"); String word = request.getParameter("word"); Cookie c = new Cookie("name", name); c.setMaxAge(24 * 3600); response.addCookie(c); Cookie k = new Cookie("word", word); k.setMaxAge(24 * 3600); response.addCookie(k); Cookie[] cookies = request.getCookies(); if (cookies!= null) { for (int i = 0; i < cookies.length; i++) {System.out.println(cookies[i].getValue()); if (cookies[i].getName().equals("name")) { username = cookies[i].getValue().trim();System.out.println(username); } if (cookies[i].getName().equals("word")) { password = cookies[i].getValue().trim();System.out.println(password); } } } } point = true;%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <form method="get" action="cookielogin.jsp"> 用户名: <input type="text" name="name" value="<%=username%>" /> <br> 密 码: <input type="password" name="word" value="<%=password%>" /> <br> <input type="submit" value="登陆" /> </form> </body></html>
------解决方案--------------------------------------------------------
你把name和word写入了response的Cookie;
然后立即从request的Cookie中读取Cookie,那么显然只能是读取到上一次的结果;
因为response的那份要等浏览器接收完毕后,下次发起请求时才能反映到request中。
------解决方案--------------------------------------------------------
浏览器发起一个请求,走到你这个页面,你往response中写东西,让浏览器去写入cookie中(还没写)。同时你还从浏览器中去读request中的东西,当前请求中当然是上一次你写入cookie中的东西啊。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
都很牛!
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
6楼 +1
------解决方案--------------------------------------------------------
6楼 +1