欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

06 ServletConfig、ServletContext_作用域对象

程序员文章站 2022-06-24 11:10:38
ServletConfig:表示servlet的配置信息,一个servlet对象对应一个servletconfig对象 方法: 1.获取初始化参数 config.getInitParameter() ServletContext:表示servlet的全局配置信息,一个WebApplication只有 ......
servletconfig:表示servlet的配置信息,一个servlet对象对应一个servletconfig对象
 
方法:
1.获取初始化参数
config.getinitparameter()
 
 
servletcontext:表示servlet的全局配置信息,一个webapplication只有一个servletcontext对象,该对象被所有servlet共用
 
方法:
1.获取全局的初始化参数
context.getinitparameter()
2.获取上下文路径(部署在tomcat中的项目目录名)
context.getcontextpath()
3.获取文件的绝对路径(从webroot下开始定位文件)
context.getrealpath()
4.获取资源,将资源作为流返回
context.getresourceasstream();
5.显示目录下的资源
set<string> paths = sc1.getresourcepaths();
6.存储一个key-value数据
context.setattribute(key,value)
根据key获取value
context.getattribute(key)
 
servletconfig:
//web中
  <init-param>
        <param-name>listings</param-name>  
      <param-value>true</param-value>
  </init-param>
public void dopost(httpservletrequest request, httpservletresponse response)
            throws servletexception, ioexception {
        //1.获取servletconfig对象
                // 表示servlet的配置信息
                servletconfig config = this.getservletconfig();
                //2.使用config读取初始化参数
                string value = config.getinitparameter("listings");
                system.out.println(value);
                //获取servletname
                system.out.println(config.getservletname());
        
    }

}
/*@override
    public void init(servletconfig config) throws servletexception {
        string value = config.getinitparameter("listings");
        system.out.println(value);
    }*/

servletcontext

//web中
<context-param>
         <param-name>aaa</param-name>
         <param-value>bbb</param-value>
     </context-param>
public void dopost(httpservletrequest request, httpservletresponse response)
            throws servletexception, ioexception {

        //1.获取servletcontext:servlet的全局对象,整个项目就一个servletcontext对象
        servletcontext sc1 = this.getservletcontext();
        servletcontext sc2 = request.getservletcontext();
        servletcontext sc3 = this.getservletconfig().getservletcontext();
        
        //2.使用该对象
        //读取全局配置信息
        string val = sc1.getinitparameter("aaa");
        system.out.println(val);
        
        //* 获取上下文路径
        string contextpath = sc1.getcontextpath();
        system.out.println(contextpath);
        
        //* 获取文件的绝对路径:从webroot下开始定位文件
        string realpath = sc1.getrealpath("/image/1.jpg");
        system.out.println(realpath);
        
        //获取资源,将资源作为流返回
        inputstream in = sc1.getresourceasstream("/web-inf/car.properties");
        
        //显示目录下的资源
        set<string> paths = sc1.getresourcepaths("/aaa");
        for (string string : paths) {
            system.out.println(string);
        }
        
        
    }

 

作用域对象
生命周期 作用范围
httpservletrequest 一次请求 一次请求经过的所有servlet
httpsession 一次会话 一次会话中,所有的servlet
servletcontext 项目从加载到卸载 一个项目中,所有servlet
 
 
作用域对象,有三个方法:
1.setattribute(string key,object value);
2.getattribute(string key);
3.removeattribute(string key);
public void dopost(httpservletrequest request, httpservletresponse response)
            throws servletexception, ioexception {
        //1.request对象 
        request.setattribute("name", "zhangsan");
        //request.getrequestdispatcher("scope2").forward(request, response);
        
        //2.session对象 先向浏览器输入,在用下面输出
        httpsession session = request.getsession();
        session.setattribute("age", 18);
        
        //3.application对象  先向浏览器输入,所有浏览器都可以输出
        servletcontext sc = request.getservletcontext();
        sc.setattribute("gender", "男");
        
    }
public void dopost(httpservletrequest request, httpservletresponse response)
            throws servletexception, ioexception {
        //1.获取request对象中数据
        /*string name = (string) request.getattribute("name");
        system.out.println(name);
        
        //2.获取session对象中的数据
        int age = (int) request.getsession().getattribute("age");
        system.out.println(age);*/
        
        //3.获取application对象中的数据
        string gender = (string) request.getservletcontext().getattribute("gender");
        system.out.println(gender);
        
    }