servlet学习笔记---Cookie记录上次访问时间和访问次数
来源:互联网 发布:安卓e4a编程工具手机版 编辑:程序博客网 时间:2024/04/28 10:41
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {OutputStream out=response.getOutputStream();response.setCharacterEncoding("UTF-8");Cookie[] cook=request.getCookies(); if(cook==null) { out.write("第一次访问,welcome".getBytes("UTF-8")); } else { for(int i=0;i<cook.length;++i) { if(cook[i].getName().equals("lasttime")) { long time=Long.parseLong(cook[i].getValue()); out.write(("上次访问时间:"+new Date(time).toLocaleString()).getBytes("UTF-8")); } } } Cookie cookie=new Cookie("lasttime",(System.currentTimeMillis())+""); cookie.setMaxAge(3600); cookie.setPath("/myweb/servlet/ServletDemo7"); response.addCookie(cookie); }
若要清楚这个Cookie记录,需要重新生成一个相同名称的Cookie,然后设置setMaxAge为0,注意Path也要设置统一,才可以删除。
若是记录半小时到现在的访问次数:
import java.io.IOException;import java.io.PrintWriter;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 CookieServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Cookie cookie[]=request.getCookies(); Cookie cook=null;Boolean b=false;for(int i=0;cookie!=null&&i<cookie.length;++i){if(cookie[i].getName().equals("Visit")){ cook=cookie[i]; cook.setValue(""+(Integer.parseInt(cook.getValue())+1)); cook.setPath(request.getContextPath()); cook.setMaxAge(60*30); response.addCookie(cook);}}if(cook==null){b=true;cook=new Cookie("Visit","1");cook.setMaxAge(-1);cook.setPath(request.getContextPath());response.addCookie(cook);}response.setContentType("text/html;charset=UTF-8");PrintWriter pw=response.getWriter();pw.write("您已经访问过页面"+cook.getValue()+"次");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}但若是只记录,本次会话访问此页面次数,只需把setMaxAge设置为-1.注意:就算更新cook的值,你也要重新setPath,这样的话,此网站只给你一个Cookie。
但还有种方式,不必再次setPath,可以重新生成Cookie,即两个Cookie的Path不同,但后生成的第一次找到,便停止寻找。
若是setPath(request.getContextPath())表示Path为当前项目名称,若是未重新设置path,则为项目名称+“/servlet”。
package com.wanhao;import java.io.IOException;import java.io.PrintWriter;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 CookieServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Cookie cookie[]=request.getCookies(); Cookie cook=null;if(cookie!=null){Boolean b=false; for(int i=0;i<cookie.length&&(!b);++i) {if(cookie[i].getName().equals("Visit")){ cookie[i].setValue(""+(Integer.parseInt(cookie[i].getValue())+1)); cook=cookie[i]; response.addCookie(cookie[i]); b=true;} }}if(cook==null){cook=new Cookie("Visit","1");cook.setMaxAge(-1);cook.setPath(request.getContextPath());response.addCookie(cook);}response.setContentType("text/html;charset=UTF-8");PrintWriter pw=response.getWriter();pw.write("您已经访问过页面"+cook.getValue()+"次");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
0 0
- servlet学习笔记---Cookie记录上次访问时间和访问次数
- cookie记录上次访问时间
- cookie 关于记录上次访问时间的servlet
- cookie实现上次访问时间和清除上次访问时间
- 记录用户上次访问时间(cookie和session)
- Cookie,session记录上次访问时间
- 记录上次访问时间
- Servlet中用Cookie记录访问次数实例:
- Cookie纪录上次访问时间
- cookie显示上次访问时间
- cookie实现上次访问时间
- cookie的简单应用--记录上次访问时间
- 黑马day05 Cookie技术入门&记录上次访问的时间
- Cookie应用之用户上次访问时间、用户浏览记录
- java之Cookie案例--记录上次访问时间
- Cookie小案例:记录上次访问网站的时间
- Cookie记录访问次数
- Servlet和Cookie统计访问次数
- Android 强大的Picasso,自定义图片效果
- python的module检索
- 车站分级(拓扑排序)
- window平台下VS2013结合Qt的google breakpad异常捕捉
- Linux vmstat命令实战详解
- servlet学习笔记---Cookie记录上次访问时间和访问次数
- iOS系统下检查第三方APP是否安装及跳转启动
- C# 单例模式
- 【c++ primer 笔记】第八章 IO库
- Android 面试资料
- AndroidMVPdemo
- Didn't find class "android.support.v7.widget.TintManager
- 单片机在线仿真器与在线编程器的区分
- dxy的脑洞。。(不定期更新,希望大佬们指出不足之处)