美文网首页java web
ServletContext对象

ServletContext对象

作者: 马佳乐 | 来源:发表于2022-04-21 19:29 被阅读0次

    初识ServletContext对象

    每一个web应用都有且仅有一个ServletContext对象,又称Application对象,从名称中可知,该对象是与应用程序相关的。在WEB容器启动的时候,会为每一个WEB应用程序创建一个对应的ServletContext对象。

    该对象有两大作用,第一:作为域对象用来共享数据,此时数据在整个应用程序中共享;第二:该对象中保存了当前应用程序相关信息。例如可以通过getServerInfo()方法获取当前服务器信息,getRealPath(Stringpath)获取资源的真实路径等。

    ServletContext对象的获取

    获取ServletContext对象的途径有很多。

    1.通过request对象获取

            ServletContext servletContext = req.getServletContext();
    

    2.通过session对象获取

            ServletContext servletContext2 = req.getSession().getServletContext();
    

    3.通过servletConfig 对象获取,在Servlet标准中提供了ServletConfig方法

            ServletConfig servletConfig = getServletConfig();
            ServletContext servletContext3 = servletConfig.getServletContext();
    

    4.在Servlet中直接获取

            ServletContext servletContext4 = getServletContext();
    

    常用方法

    1.获取当前服务器的版本信息

            String serverInfo = req.getServletContext().getServerInfo();
    

    2.获取项目的真实路径

            String realPath = req.getServletContext().getRealPath("/");
    

    ServletContext域对象

    ServletContext 也可当做域对象来使用,通过向ServletContext 中存取数据,可以使得整个应用程序共享某些数据。当然不建议存放过多数据,因为ServletContext中的数据一旦存储进去没有手动移除将会一直保存。

            //获取servletContext对象
            ServletContext servletContext = req.getServletContext();
            //设置域对象
            servletContext.setAttribute("name", "zhangsan");
            //获取域对象
            String name = (String) servletContext.getAttribute("name");
            //删除域对象
            servletContext.removeAttribute("name");
    

    Servlet的三大域对象

    1.request域对象
    在一次请求中有效。请求转发有效,重定向失效。
    2.session域对象
    在一次会话中有效。请求转发和重定向都有效,session销毁后失效。
    3.servletContext域对象
    在整个应用程序中有效。服务器关闭后失效。

    相关文章

      网友评论

        本文标题:ServletContext对象

        本文链接:https://www.haomeiwen.com/subject/ikuvertx.html