本文主要是介绍显示用户上次的访问时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在用户访问我web应用的时候,显示上次访问的时间,这里只显示一次
public class LastAccessTimeFilter extends HttpFilter {public void doFilter(HttpServletRequest request,HttpServletResponse response,FilterChain chain)throws IOException, ServletException {//request.getSession()就会创建一个session,如果没有就会创建一个。isNew()方法为是否为新的session,如果是新的就提示上次访问的时间是,否则就不用老提示。if(request.getSession().isNew()) {// 拦截所有的请求response.setContentType("text/html;charset=utf-8");// 读取cookie name为lastAccessTimeCookie[] cookies = request.getCookies();String lastAccessTime = null;//首次访问Cookie为空,当调用cookies.length就会报空指针异常for(int i=0; cookies!=null&&i<cookies.length; i++) {if("lastAccessTime".equals(cookies[i].getName())) {lastAccessTime = cookies[i].getValue();//当Cookie很多时,我只要找到了就跳出循环,这样效率会高break;}}if(lastAccessTime==null)response.getWriter().print("您是首次访问本站" + "<hr>");elseresponse.getWriter().print("您上次的访问时间是:" + lastAccessTime + "<hr>");// 获得一个时间Date date = new Date();// 创建 cookieCookie cookie = new Cookie("lastAccessTime", date.toLocaleString());// 必须设置缓存时间,否则当用户关闭浏览器后,会话结束了就没有Cookie了cookie.setMaxAge(60*60*5);// 设置有效路径,这样在访问我web应用的路径的时候就会带着cookie来,若果不设置cookie只在当前路径有效cookie.setPath(request.getContextPath());// 发送cookieresponse.addCookie(cookie);}// 放行chain.doFilter(request, response);}
}
这篇关于显示用户上次的访问时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!