为何cookie不刷新?

itzyjr 2012-09-22 01:33:06
import java.io.IOException; 
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Track extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = null;
Cookie[] cookies = request.getCookies( );
if (cookies != null){
for (int i = 0; i < cookies.length; i++){
if (cookies[i].getName( ).equals("LK")){
String v=cookies[i].getValue();
int value=Integer.parseInt(v)+1;
cookies[i].setValue(Integer.toString(value));
cookie=cookies[i];
}
}//end for
}//end if
//不存在,创建cookie
if (cookie == null){
int maxAge=10;
//Create the Cookie object
cookie = new Cookie("LK","1");
cookie.setPath(request.getContextPath( ));
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}//end if
// 显示信息
response.setContentType("textml;charset=gb2312");
java.io.PrintWriter out = response.getWriter( );

out.println("<html>");
out.println("<head>");
out.println("<title>Cookie跟踪会话 </title>");
out.println("</head>");
out.println("<body>");
out.println(
"<h2> 您好!</h2>");
out.println("欢迎您第 "+cookie.getValue( )+"次访问本页面<br>");
out.println("</body>");
out.println("</html>");
}
}

(java servlet)无论我怎样重启tomcat以及刷新操作,
为何总是输出:您好!
欢迎您第 2次访问本页面.
...全文
234 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
itzyjr 2012-10-03
  • 打赏
  • 举报
回复
对于已存在的cookie,说明之前已经写到客户端了,现在直接去修改它不就行了吗?难到还要再add一遍。
不过我发现必须setPath setMaxAge add一起使用,只是add还不行。
为什么去修改已经存在的cookie还不行,修改后要再重新add set(否则之前的设置无效了)一遍啊?
bareheadzzq 2012-10-02
  • 打赏
  • 举报
回复
我的意思是: 当已经存在Cookie的时候。
response.addCookie(cookie);
这行代码执行不到,所以没有写到客户端
itzyjr 2012-09-24
  • 打赏
  • 举报
回复
还想问一句:为何放在if后面就是写入客户端,而在if里面时就只是在服务器端呢???
itzyjr 2012-09-24
  • 打赏
  • 举报
回复
确实是的,谢了!!
bareheadzzq 2012-09-23
  • 打赏
  • 举报
回复
//不存在,创建cookie
int maxAge=10;
if (cookie == null){
//Create the Cookie object
cookie = new Cookie("LK","1");
}//end if
// 显示信息
cookie.setPath(request.getContextPath( ));
cookie.setMaxAge(maxAge);
response.addCookie(cookie);

bareheadzzq 2012-09-23
  • 打赏
  • 举报
回复
大哥。
cookie.setPath(request.getContextPath( ));
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
这个移到if的后面。。。
原因你改了Cookie的值,只是在服务端该的。还没有重新写入客户端端

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧