servletContext

1.     WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了Servlet时,可以通过 
方式一:ServletConfig.getServletContext()方法
方式二: this.getServletContext()方法
    得到ServletContext对象。
2.    由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,所以 多个Servlet通过ServletContext对象实现数据共享。ServletContext对象通常也被称之为 context域对象
3.获取整个web应用的初始化参数
    <context-param>    
        <param-name>data</param-name>
        <param-value>xxxxxx</param-value>
    </context-param> 
    如:this.getServletContext().getInitParameter("data");

4.Servlet的转发
    RequstDispatcher rd=this.getServletContext().getRequestDispatcher("xxx.jsp");//注意因
ServletContext()被web应用内所有请求共享,多线程操作时,会产生安全问题,所以 实际开发中不会采用 ServletContext()将数据带给jsp
    re.forword(request,responst);
    转发:举例:你找我借钱,我没有,我帮你找别人。
    重定向:
举例:你找我借钱,我没有,我提供一个人信息,叫你自己去找他。
 5.ServletContext生命周期
    产生:服务器启动时,会对每个web应用创建一个ServletContext,即webapps内个每个web应用。
    销毁:服务器停止,或删除某web应用。

6.配置文件,一般两种类型
    xml类型:用于数据是有关系的 
    properties类型:用于数据是没有关系的
    
   A    ServletContext 读取资源文件的实例:
                   方法一:   //  FileInputStream in=new FileInputStream("/WEB-INF/classes/db.properties");若要按传统方式读取资源文件,注意文件的路径,必须要服务的目录下有此文件即,C:\tomcat7\bin\
WEB-INF\classes\db.properties

    
方法二: InputStream in=this.getServletContext().getResourceAsStream(" /WEB-INF/classes/db.properties");// 注意路径
                方法三:String path=this.getServletContext().getRealPath(" /WEB-INF/classes/db.properties" );//先得到绝对路径

Properties pros=new Properties();
pros. load(in);
String url=pros. getProperty("url");
String username=pros.getProperty("username");
String password=pros.getProperty("password");
        B    如果读取资源文件的程序不是servlet的话(一般的类),就只能通过类加载器去读 
                实例A:类加载方式,虽可读取资源文件数据,但无法获取更新后的数据
                private static Properties dbconfig=new Properties();
                static{
                try{
                        
InputStream in=UserDao. class. getClassLoader().getResourceAsStream(" db.properties");// 注意路径,和文件不能太大,另外因为是通过类加载器,文件只读一次,若文件中途有被修改,将不起效果
        dbconfig.load(in);
                       }catch(Exception e){
                        throw new  ExceptionInInitializerError(e);
                        } 
                    }
                实例B:通过 类加载得到文件位置,再用 传统方式,获取资源文件实时数据
                 String path=UserDao.class.getClassLoader(). getResource("db.properties"). getPath();
FileInputStream in=new  FileInputStream(path);
Properties prop=new Properties();
prop.load(in);
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值