ServletConfig和ServletContext对象

ServletConfig对象:

① 用于封装servlet的配置信息。

② 实际开发中,有些东西不适合在servlet程序中写死,这类数据就可以通过配置方式给servlet。

③ 将不适合写在程序中的参数(servlet采用的编码,servlet连接的数据库,servlet哪个配置文件 等信息),写在web.xml配置文件<servlet>中的<init-param>标签中。

④ 服务器自动将<init-param>中的数据封装到ServletConfig中。

获取配置中单个初始化信息如下

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException

{

    String value=this.getServletConfig().getInitParameter("data1");

    System.out.println(value);

}

ServletContext对象:

生命周期:

    服务器启动,为服务器中的每个web应用都分别自动创建一个对应的ServletContext对象。

    服务器关闭或应用被删除:自动销毁对应的ServletContext对象。

 

ServletContext的应用:聊天室

“ServletContext域” 这句话说明了:

    1这是一个容器

    2这个容器的作用范围。(即应用程序范围)

初始化:

    Web.xml中<servlet>中的<init-param>为某个servlet配置初始化参数。

    Web.xml中<context-param>标签里为整个web应用配置初始化参数。

servlet的转发:

    含义:客户机请求服务器,服务器帮客户机转发到客户机想要访问的目标上去。

    Servlet不适合输出数据,这时候需要用到转发技术,一般转发到jsp页面输出数据。

读取资源文件:

    在软件开发中,基本两种配置文件:.xml和.properties为后缀名的。

        Xml用于配置有关系的数据;

        Properties用于配置没有关系的数据。

        通过servlet文件读取资源文件:

获得servletcontext获得,

//InputStream in= this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");

//properties文件所在web服务器下的路径,src目录相当于服务器中的WEB-INF下的classes目录

//通过servletContext得到绝对路径后,再通过传统流读取资源文件

String path= this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");

FileInputStream in=new FileInputStream(path);

//以下为模板代码

Properties p=new Properties();//底层map保存

p.load(in);

String url=p.getProperty("url");

String username=p.getProperty("username");

String password=p.getProperty("password");

System.out.println(url);

System.out.println(username);

System.out.println(password);

//以上为模板代码

 

通过非servlet文件读取资源文件:

通过类装载器去读(文件不能太大),例如:

//以下代码无法获得更新后的数据

InputStream in = UserDao.class.getClassLoader().getResourceAsStream("db.properties");

Properties p=new Properties();

p.load(in);

System.out.println(p.getProperty("url"));

 

//通过类装载去获得文件的路径,再去通过传统方式读取资源文件数据,可以得到更新后的数据。

String path=UserDao.class.getClassLoader().getResource("db.properties").getPath();

InputStream in1=new FileInputStream(path);

Properties p1=new Properties();

p1.load(in1);

System.out.println(p.getProperty("url"));

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值