• ServletContext


    web容器在启动时,它会为web程序都创建一个servletContext对象,代表当前的web应用

    (面向对象的思想,一个对象代表一个应用,比如一个对象代表老师,就会有讲课的方法)

    一个web应用指的就是tomcat文件夹下webapps下的每一个文件夹,即对应每一个web程序

    由于一个web应用中所有的Servlet共享同一个ServletContext对象,所以多个Servlet通过servletContext对象实现数据共享

    servletContext对象通常也被称之为Context域对象

    servletContext域说明两个问题

    1. 这是一个容器

    2. servletContext域说明这个容器的作用范围,是整个应用程序。

    获取servletcontext对象的两种方式

    • ServletConfig对象里维护了一个ServletContext对象,可以直接通过ServletConfig.ServletContext获取
    • 也可以在Servlet类中使用this.ServletContext获取

    1. 多个Servlet之间实现数据共享

    实际web开发中,适用于聊天室

    两个Servlet之间传递数据、

    Servlet1:

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {    
            
            String dataString = "aaa";
            this.getServletContext().setAttribute("data",dataString);        
            
        }


    Servlet2:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {    
            
            
            String valueString = (String) this.getServletContext().getAttribute("data");        
            
        }


    这样的话需要先执行Servlet1然后再执行Servlet2

    2. 获取web应用的初始化参数

      <context-param>
          <param-name>data</param-name>
          <param-value>xxxx</param-value>
      </context-param>

    前面都是为某个特定的Servlet配置初始化参数,这里是为整个web应用配置初始化参数。

    这时候,只要web服务器一加载web应用,就会创建代表web应用的ServletContext对象,对象创造出来之后,会自动把配置的初始化参数封装到servletContext对象中去。然后在程序中只需要去取就行了。

     实际开发中,比如连接数据库

     3. 实现Servlet的转发

     当客户端向某一个Servlet请求时,Servlet要返回数据,但是Servlet不适合做输出(因为对文字的渲染很麻烦),它会把数据交给jsp文件,由jsp来做输出

    这个过程就是转发

    Servlet把数据传递给jsp,可以通过servletContext域,但是这种方式不安全,会涉及到线程安全问题

    一般是通过Request域

     4. 利用servletContext对象读取资源文件

    1. 得到文件路径

    2. 读取资源文件的三种方式

    3. .propertities文件(属性文件)

    servletContext生命周期

    服务器启动的时候,就会为服务器中的每一个web应用创建一个servletContext

    可以在路径C: omcatwebapps下看出这个服务器下有多少个web应用

    服务器停掉的时候,对象消失。 

  • 相关阅读:
    8.SpringMVC参数传递
    9.SpringMVC和json结合传递参数
    20160815命令行进入其他盘
    5.SpringMVC静态文件的访问
    6.SpringMVC注解启用
    7.SpringMVC注解优化
    3.SpringMVC修改配置文件路径和给界面传递数据
    rails
    SVN Merge合并 Patch打补丁
    Windows环境下怎么在文件夹下打开cmd命令行
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3831019.html
Copyright © 2020-2023  润新知