页面访问时间记录 即记录上一次访问时间

package web;

import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/cookieText")
public class cookieText extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	response.setContentType("text/html;charset=utf-8");
	Cookie[] cookies=request.getCookies();       //获取cookie对象
	boolean flag=false;
	if(cookies!=null&&cookies.length>0)
	{
		for (Cookie cookie : cookies) {
			String name=cookie.getName();
			if(name.equals("lastTime"))				//访问过
			{
				flag=true;
				Date date  =new Date();
				SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
				String sdate=sdf.format(date);
				sdate=URLEncoder.encode(sdate,"utf-8"); 	//将时间转化为url编码
				cookie.setValue(sdate);
				cookie.setMaxAge(60*60*24*7);		//设置存活时间为一星期
				response.addCookie(cookie); 		//发送cookie对象
				String value = cookie.getValue();
				value=URLDecoder.decode(value,"utf-8");
				response.getWriter().write("欢迎回来,您上次的访问时间为:"+value);
				break;
			}
		}
	}
	if(cookies==null||cookies.length==0||flag==false)
	{
		Date date=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String sdate=sdf.format(date);
		sdate=URLEncoder.encode(sdate,"utf-8");
		Cookie cookie=new Cookie("lastTime", sdate);
		cookie.setMaxAge(60 * 60 * 24 * 7);
		 response.addCookie(cookie);
		 response.getWriter().write("您好,欢迎您首次访问");
	}
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	this.doGet(request, response);
}

}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例 我以ACCESS库为例子,其实用SQL SERVER库也只要改一下链接库的语句就得啦, 库结构如下 库文件名: CONT.ASP 本来是CONT.MDB但在建好后把扩展名改为了ASP,以防库被下载。 表名:tab 字段名 数据类型 说明 ID 自动编号 访客的编号 IP 文本 用于记录访客的IP dat1 日期时间 用于记录访客最后访问时间 dat 日期时间 用于记录访客第一次访问时间 CS 数字,整型 用于记录访客访问次数 程序很简单,只有两个文件,dispcont.asp 用于显示统计结果,contpage.asp用于统计信息, 先看看CONTPAGE.ASP 是乍么统计的,代码如下: <% Set Conn=Server.CreateObject("ADODB.Connection") Connstr="DBQ="+server.mappath("cont.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" Conn.Open connstr '*****以上语句用于连接库,cont.asp是库文件名。 keren=request.cookies("keren") '读取cookies,cookies的名为:“keren”,哈哈。。阿余的E文学的臭,只懂用拼音啦。 if keren="" then '判断cookees是不是空,如果是空,那么肯定是新朋友啦,否则是老朋友。 sql="SELECT * FROM tab where id=-1" set rs=server.createobject("ADODB.Recordset") rs.Open sql,conn, 1, 3 rs.addnew '如果是新访客的话,在库中新增一条记录。 rs("cs")=1 '记下访问次数为1 rs("ip")=request.servervariables("remote_addr") '记下IP, rs("dat")=now '记下当前的日期时间, rs("dat1")=date '记下当前的日期,以后用来做第一次访问的日期, response.cookies("keren")=rs("id") '写入一个cookies,内容就和ID一样。 response.cookies("keren").expires=date+365 '设置cookies的有效日期从现在开始,365天, else '以上是新朋友的处理办法,对老朋友怎么办呢?看下面的: sql="SELECT * FROM tab where id="&keren '到库中去找出我们老朋友的记录 set rs=server.createobject("ADODB.Recordset") rs.Open sql,conn, 1, 3 rs("cs")=rs("cs")+1 '好啦,找到啦,把访问次数加上1 rs("ip")=request.servervariables("remote_addr") '看看他的IP是多少了,记下来。 rs("dat")=now '记下现在的时间,也就是最后一次访问时间, response.cookies("keren")=rs("id") '再把cookies写进去,我不知这句是否多余,没有试。 response.cookies("keren").expires=date+365 '设置cookies过期时间,免得一年到了我就不认得他了。 end if rs.update '该记的都记下了,更新库吧。 rs.close '关闭recordset对象。 set conn=nothing '释放conn,我还是认为connection要随开随关才对,放到SESSION中我认为最不可取。4 %> 好啦,记录就做好啦,有二十几行代码,很简单的一个小程序,但我想,高手肯定还有高招,有高招的朋友不忘了教教阿余, 程序写好了,怎么放到页面中呢?很简单,在首页上随便找个地方,加上这行代码:<img src="contpage.asp" width="0" height="0">就行了。 接下来就是把记录显示出来,这个能做得比阿余好的人多的是,不过还是来现个丑。 文件名:dispcont.asp , 请看代码: <% Set Conn=Server.CreateObject("ADODB.Connection") Connstr="DBQ="+server.mappath("cont.asp")+";Defau
好的,我可以为您解答这个问题。 在JSP页面中,可以通过Cookie对象来记录和获取上次访问时间。 下面是一个示例代码: ``` <% // 获取当前时间 Date currentDate = new Date(); // 获取上次访问时间的Cookie Cookie lastVisitCookie = null; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("lastVisit")) { lastVisitCookie = cookie; break; } } } // 设置新的Cookie String lastVisitTime = "首次访问"; if (lastVisitCookie != null) { lastVisitTime = lastVisitCookie.getValue(); } Cookie newVisitCookie = new Cookie("lastVisit", currentDate.toString()); newVisitCookie.setMaxAge(60*60*24*30); // 设置Cookie的有效期为30天 response.addCookie(newVisitCookie); %> 您上次访问本站的时间是:<%= lastVisitTime %> ``` 在上面的代码中,我们首先获取了当前时间,并通过`request.getCookies()`方法获取到了上次访问时间的Cookie。如果没有找到该Cookie,则说明是用户首次访问,将上次访问时间设置为“首次访问”。 接着,我们创建了一个新的Cookie对象,并通过`response.addCookie()`方法将其添加到响应中。需要注意的是,我们通过`setMaxAge()`方法设置了Cookie的有效期为30天,这样用户下次访问时也能够获取到上次访问时间。 最后,我们通过JSP的表达式语言输出了上次访问时间。 希望这个示例能够帮到您,如果您有任何疑问,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值