Servlet技术中的对象-ServletConfig与ServletContext

ServletConfig

this.getServletConfig();

在配置Servlet时,可以使用一个或多个标签为Servlet配置一些初始化参数,而这些参数,在Web容器创建Servlet实例化对象时,会自动封装到ServletCofig对象中,并且在调用servlet的init方法时传递给servlet。
即,通过这个对象可以得到配置信息

ServletContext

    this.getServletConfig().getServletContext();
    this.getSetvletContext();

Web容器在启动时会为每个Web应用创建一个ServletContext对象,这个对象就代表当前Web应用。

应用:
1. 全局域对象
所有Servlet共享同一个ServletContext,因此可以把它看作当前Web应用的全局对象,来保存一些全局共享的数据。
this.getServletContext().setAttribute("xx", Object);
2. 实现Servlet的转发
this.getServletContext().getRequestDispatcher("/1.jsp").forward(request, response);
3. 读取资源文件
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
如果使用传统方法读取资源文件,一定要注意路径问题,一般这样做:
String absolutePath = this.getServletContext().getRealPath("/WEB-INF/db.properties");

使用类加载器去读取资源文件
UserDao.class.getClassLoader().getResourceAsStream("db.properties");
应注意:以类路径为依照(eclipse中是src目录)
并且类装载器只会对文件进行一次读取,并将文件装载进内存(多次读取、太大文件,不建议用这种读取方式)

转发与重定向的区别:
转发时并不会进行第二次请求,而是直接带着request对象就去转发到的资源
重定向会重新进行请求,即浏览器会发出两次请求。
转发是地址栏不会变化,重定向时会变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值