zoukankan      html  css  js  c++  java
  • 重温Servlet学习笔记--servletContext对象

      一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application.

      ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据,这就是共享数据了.

    • 获取ServletContext对象

    在servlet中获取:

    @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            //通过servletconfig获取servletContext
            ServletContext servletContext1 = this.getServletConfig().getServletContext();
            //直接通过当前对象获取servletContext对象,这与上面是同一个对象
            ServletContext servletContext2 = this.getServletContext();
            
        }
    • 作为javaWeb四大域对象之一:具有存取数据的功能
    1.   servletContext.setAttribute("name","zhangSan"):    保存一个域属性
    2. String name=(String)servletContext.getAttribute("name"): 获取域属性,返回值默认为Object类型,需要强转
    • 获取应用程序初始化参数(即获取在web.xml中配置的初始化数据)

        servlet也可以获取初始化参数,但它是局部的参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备!

    例如Aservlet只能获取Aservlet配置下的初始化参数:

    <servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>com.wang.servlet.AServlet</servlet-class>
        <init-param>
            <param-name>name</param-name>
            <param-value>张三</param-value>
        </init-param>
     </servlet>

    而servletContext可以配置公共的初始化参数:

    <context-param>
         <param-name>name</param-name>
         <param-value>李四</param-value>
     </context-param>

    在doPost方法中获取代码为:

    @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            ServletContext servletContext2 = this.getServletContext();
            String name = servletContext1.getInitParameter("name");
        }
    • 获取资源路径

     

    1.  获取a.txt的真实路径:String realPath = servletContext.getRealPath(“/a.txt”),realPath的值为a.txt文件的绝对路径:F: omcat6webappshelloa.txt;
    2.   获取b.txt的真实路径:String realPath = servletContext.getRealPath(“/WEB-INF/b.txt”);
    •  获取资源流

      不只可以获取资源的路径,还可以通过ServletContext获取资源流,即把资源以输入流的方式获取:

    1.  获取a.txt资源流:InputStream in = servletContext.getResourceAsStream(“/a.txt”);
    2.  获取b.txt资源流:InputStream in = servletContext.getResourceAsStream(“/WEB-INF/b.txt”);
  • 相关阅读:
    ping命令的几个简单使用
    CentOS下编译安装hping3
    CentOS下安装gns3
    sendip简单使用
    Ubuntu/CentOS使用BIND配置DNS服务器
    远程重启linux主机的几种方法
    使用U盘安装win7系统,遇到“无法定位现有系统分区”问题
    导出csv文件
    Mvc 分页栏扩展方法
    初学HTML5系列三:事件
  • 原文地址:https://www.cnblogs.com/fingerboy/p/5175412.html
Copyright © 2011-2022 走看看