• java servlet的域对象


    在进行网络编程中的项目时 经常用到的域对象主要包括以下三种:

    1、 ServletContext  作用范围比较大

    代码如下:

    //一个请求代码:
    ServletContext sc = request.getServletContext();
    sc.setAttribute("name", "一个请求的共享资源在另一个请求中可以直接访问.可以多个请求之间共享资源");
    
    //另一个请求代码:
    ServletContext sc =  request.getServletContext();
    String ss =  (String) sc.getAttribute("name");
    System.out.println(ss);
    

     2、request  作用范围只限于一次请求  多个请求之间共享资源需要做请求转发操作

    代码如下:

    request.setAttribute("name", "鸡腿好吃");
    //直接共享数据是不行的  我们需要做请求转发 才能共享会话数据
    		
    //创建转发器对象
    RequestDispatcher rd = request.getRequestDispatcher("qu");
    rd.forward(request, response);
    
    //另外一个请求
    //获取共享数据
    String name = (String) request.getAttribute("name");
    

     3、httpsession 作用范围 一次会话   (一次会话可以有多个请求)    当浏览器关闭会话结束

    //一个请求
    HttpSession hs = request.getSession();
    String sid = hs.getId();
    response.getWriter().write("<a href='g'>这是一个sessionid</a>");
    System.out.println(sid);
    
    //另一个请求
    HttpSession hs = request.getSession();
    String sId = hs.getId();
    System.out.println(sId);
    //最后结果返回的都是同一个sessionId 它们之间共享sessionId
    

     4、HttpSession的生命周期

    1、request.getSession();就被创建
    2、活着 只要没有超过session的最大超时时间  也没有调用invalidate 方法该session对象都是活着的
    3、死亡:当超过session的最大超时时间及调用了invalidate 方法 该session对象就死亡

    总结:作用域范围图:

  • 相关阅读:
    Java之Chat历程
    Java之静态方法中的内部类
    Java异常捕获之finally
    C语言复杂声明的本质与局限
    使用beyond compare或kompare作为git的对比、合并工具
    [二分] [洛谷] P1258 小车问题
    [STL] [洛谷] P1165 日志分析
    [洛谷] P2802 回家
    卡特兰数的应用
    [洛谷] P1722 矩阵Ⅱ
  • 原文地址:https://www.cnblogs.com/nianzhilian/p/9227536.html
Copyright © 2020-2023  润新知