java cookie 刷新_关于cookie的显示用户上次访问时间

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

import java.io.*;

import java.text.SimpleDateFormat;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.*;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.util.Date;

/**

* Servlet implementation class LastAccessServlet

*/

@WebServlet("/LastAccessServlet")

public class LastAccessServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public LastAccessServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.setContentType("text/html;charset=utf-8");

String lastAccessTime=null;

Cookie[]cookies=request.getCookies();

for(int i=0;cookies!=null && i

if("lastAccess".equals(cookies[i].getName())) {

lastAccessTime=cookies[i].getValue();

break;

}

}

if(lastAccessTime==null) {

response.getWriter().print("您是首次访问本站");

}else {

response.getWriter().print("您上次的访问时间是:"+lastAccessTime);

} //response.getWriter().print("您上次的访问时间是:"+lastAccessTime);

String currenttime=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")

.format(new Date());

Cookie cookie=new Cookie("lastAccess",currenttime);

cookie.setMaxAge(60*60);

response.addCookie(cookie);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}

}

Java 实现页面访问量统计可以使用 Servlet 技术,具体实现步骤如下: 1.创建一个 Servlet 类,实现 doGet() 方法来处理 GET 请求。 2.在 doGet() 方法中,创建一个计数器变量,用来记录页面访问量。 3.通过 Cookie 技术来避免用户刷新页面导致访问量重复计算的问题。如果用户没有访问过该页面,则创建一个新的 Cookie,并将计数器变量赋值为 1。如果用户已经访问过该页面,则读取该用户Cookie 中的计数器变量值,并将其加 1。 4.将计数器变量的值输出到页面上,用来显示当前页面的访问量。 下面是一个示例代码: ```java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class PageVisitCounter extends HttpServlet { private int counter = 0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 从请求中获取用户Cookie Cookie[] cookies = request.getCookies(); Cookie counterCookie = getCookie(cookies, "counter"); if (counterCookie == null) { // 如果用户没有访问过该页面,则创建一个新的 Cookie counterCookie = new Cookie("counter", "1"); counter = 1; } else { // 如果用户已经访问过该页面,则读取该用户Cookie 中的计数器变量值,并将其加 1 counter = Integer.parseInt(counterCookie.getValue()); counter++; counterCookie.setValue(String.valueOf(counter)); } // 将 Cookie 添加到响应中 response.addCookie(counterCookie); // 输出当前页面的访问量 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h2>Page visit counter</h2>"); out.println("<p>Current page visits: " + counter + "</p>"); out.println("</body></html>"); } private Cookie getCookie(Cookie[] cookies, String name) { if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals(name)) { return cookie; } } } return null; } } ``` 在 web.xml 文件中配置 Servlet 映射: ```xml <servlet> <servlet-name>PageVisitCounter</servlet-name> <servlet-class>PageVisitCounter</servlet-class> </servlet> <servlet-mapping> <servlet-name>PageVisitCounter</servlet-name> <url-pattern>/pageVisitCounter</url-pattern> </servlet-mapping> ``` 这样,当用户访问 /pageVisitCounter 页面时,就会触发 PageVisitCounter Servlet 的 doGet() 方法,从而实现页面访问量的统计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值