Java Web 会话编程(Session)

会话结束:

    浏览器关闭;

    主动关闭;

    会话超时;

  会话的底层实现方法:

    cookies;

    URL重写;

Example:

DemoSessionServlet.java

代码:

import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

public class DemoSessionServlet extends HttpServlet {  private static final long serialVersionUID = 3144436730239445373L;

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

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   HttpSession session = request.getSession();   Integer counter = (Integer) session.getAttribute("counter");   if (counter == null) {    counter = new Integer(1);   } else {    counter = new Integer(counter.intValue() + 1);   } session.setAttribute("counter", counter); session.setMaxInactiveInterval(3600);

  response.setContentType("text/html;charset=UTF-8");   PrintWriter out = response.getWriter();   out.println("<html>");   out.println("<head><title>session demo servlet</title></head>");   out.println("<body>");   out.println("<h1>使用session的演示</h1>");   out.println("你已经访问了" + counter + "次.<br><br>");   if (session.isNew()) {    out.println("这是一个新建的Session.<br><br>");   } else {    out.println("这不是一个新建的Session.<br><br>");   }   out.println("jsessionid: " + session.getId() + "<br><br>");   out.println("LastAccessedTime: " + session.getLastAccessedTime() + "<br>");   out.println("格式转换以后的LastAccessedTime: " + new Date(session.getLastAccessedTime()) + "<br><br>");   out.println("CreationTime: " + session.getCreationTime() + "<br>");   out.println("格式转换以后的CreationTime: " + new Date(session.getCreationTime()) + "<br><br>");   out.println("MaxInactiveInterval: " + session.getMaxInactiveInterval() + "秒<br>");   out.println("<br>使用Session对象的getAttributeNames<br>");   Enumeration enumer = session.getAttributeNames();   String name = null;   while (enumer.hasMoreElements()) {    name = (String) enumer.nextElement();    out.println("Session name:" + name + "<br>");    out.println("Session value:" + session.getAttribute(name) + "<br>");   }  // session.removeAttribute("counter");

    //移除或者注销session   // session.invalidate();   out.println("</body>");   out.println("</html>");   out.flush();   out.close();  } }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java初学

j2ee—框架(2):Servlet+JSP实现基本的登录功能(v2.0)

422130
来自专栏IT可乐

Servlet 与 Ajax 交互一直报status=parsererror

原因:servlet 返回的数据不是 Json 格式 1、JS代码为: 1 var jsonStr = {'clusterNum':2,'iterationN...

24660
来自专栏GIS讲堂

Java中用Apache POI生成excel和word文档

最近在做项目的过程中遇到了excel的数据导出和word的图文表报告的导出功能,最后决定用Apache POI来完成该项功能。本文就项目实现过程中的一些思路与代...

34040
来自专栏个人分享

Redis部分数据结构方法小结

Redis在工程开发中还是比较常用的Nosql内存数据库,简单巩固一下它的各种数据类型与用法~

14930
来自专栏用户画像

JAVA 枚举 String-int

7720
来自专栏冷冷

利用POI组件导出Excel的简单示例

//模拟数据实体类 package excel; import java.util.Date; public class Student { privat...

222100
来自专栏面朝大海春暖花开

快递鸟电子面单打印功能基于java

快递鸟电子面单API地址:http://www.kdniao.com/api-eorder

32620
来自专栏Ryan Miao

在springmvc中配置jedis:

主要学习https://github.com/thinkgem/jeesite。一下代码均参考于此并稍作修改。 1.jedis 首先,需要添加jedis: <!...

41860
来自专栏闻道于事

JavaWeb项目之电话本,两个版本,以及总结反思

使用技术: Oracle 数据库 前端后台: Servlet + jsp + JDBC + html + css + js 前端界面自定, 但一定实现需要的功能...

56050
来自专栏pangguoming

在Servlet的init方法中创建线程

 servlet代码如下: package com.weichat.servlet; import java.io.IOException; import ...

39430

扫码关注云+社区

领取腾讯云代金券