public class LoginServlet extends HttpServlet {

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

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");

request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
System.out.println("调用后台实现正常登录的功能:"+name+","+pwd);

//下面实现显示用户上次登录的功能
String showTime = func(request,response);
out.println(name+","+showTime);

out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

//模块:实现显示用户上次登录的功能
private String func(HttpServletRequest request, HttpServletResponse response) {
String showTime="您最近是第一次登录!";
//所获客户端的所有cookie
Cookie cs[] = request.getCookies();
if(cs!=null){
for(Cookie c:cs){
if(c.getName().equals("loginTime")){
String str = c.getValue();
long tm = Long.parseLong(str);
Date d = new Date(tm);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
showTime = "您上次登录时间为: "+sdf.format(d);
break;
}
}
}

//不管之前是否已经存在该cookie,都要重新添加一次,因为:若没有则要添加新的,若已有则要更新旧的(把新的登录时间记录进去)
//添加一个新的 或 修改旧的 用于记录当前登录时间的cookie---loginTime
Date d = new Date();
long tm = d.getTime();
Cookie coo = new Cookie("loginTime",""+tm);
coo.setMaxAge(60*60*24*30);//秒为单位 有效期为:1个月
coo.setPath("/"); //设为项目根目录,这样我们项目中所有servlet或jsp都可以访问。但其它项目是不能访问我们的cookie的
response.addCookie(coo); //添加即是写到客户端

return showTime;
}

------------------------------------------------------------------------------------------------------------------------------------------------

<h3>用cookie技术实现显示用户上次登录时间</h3>
<form action="LoginServlet" method="post">
姓名:<input type="text" name="name"/> <br/>
密码:<input type="password" name="pwd"/> <br/>
<input type="submit" value="登录"/>
</form>

最新文章

  1. finally回收资源
  2. Java中@Override的作用
  3. myeclipse 没有任何问题,可偏偏还报这错。
  4. linux密码的更改
  5. 使用MySQL Workbench导出MySQL数据库关系图
  6. MMORPG大型游戏设计与开发(客户端架构 part5 of vegine)
  7. Oracle10g RAC的简单操作
  8. MVC4下配置log4net 五部曲
  9. js获取框架(IFrame)的内容
  10. Redis Sets
  11. LA 5061 LCA tarjan 算法
  12. HTML5显示地图例子
  13. 由浅入深了解Thrift之服务模型和序列化机制
  14. disable-linux-firewall-under-centos-rhel-fedora
  15. 颠覆你的时空观-----理解傅立叶transform
  16. YouComplete:vim自动补全插件
  17. ie6与固定定位fixed,+ 条件注释格式注意
  18. Java流的理解
  19. 汇编条件判断整理(JCC,CMP/TEST的实现)
  20. Linux文件系统的层级结构

热门文章

  1. Android进阶篇-内存管理
  2. Covariance and Contravariance in C#, Part One
  3. Linux kernel ‘lbs_debugfs_write’函数数字错误漏洞
  4. c语言诊断_断言库函数#include&lt;assert.h&gt;
  5. ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
  6. Linux下的iwpriv(iwlist、iwconfig)的简单应用
  7. The Donkey of Gui Zhou
  8. 决策树及其python实现
  9. linux shell 中&quot;2&gt;&amp;1&quot;含义
  10. ACM编程技巧--常用字符操作函数