ServletContext接口

概念

  • ServletContext代表整个web应用,可以和程序容器(服务器)进行通讯
  • 功能:获取MIME对象;是域对象,可以共享数据;获取文件的真实(服务器)路径

如何获取ServletContext对象

  • 通过request对象的getServletContext()方法进行获取
  • 通过HttpServlet对象来进行获取,this.getServletContext()
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //request获取
    ServletContext servletContext1 = req.getServletContext();
    //HttpServlet获取
    ServletContext servletContext2 = this.getServletContext();
    System.out.println(servletContext1 == servletContext2);//true
}

获取MINME类型

  • 什么是MIME类型:在互联网通信过程当中定义的一种文件数据类型
  • 格式:大类型/小类型。例如,text/html,image/jpeg
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    String filename = "a.jpg";
    String mimeType = servletContext.getMimeType(filename);
    System.out.println(mimeType);
}

域对象:共享数据

  • setAttribute(String name, Object value):设置数据
  • getAttribute(String name):获取数据
  • removeAttribute(String name):删除数据
  • ServletContext对象的范围:可以共享所有用户搜有请求的数据
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    servletContext.setAttribute("my", "cjd");
    servletContext.setAttribute("yes", "666");
}
  • 注意:由于servletcontext对象的生命周期比较长,而且处于安桥的角度考虑,我们一般不使用这个对象来共享数据

如何获取服务器的路径

  • 方法:servletContext.getRealPath(String s)
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    ServletContext servletContext = this.getServletContext();
    System.out.println(servletContext.getRealPath("/b.txt"));//web目录下资源的访问
    System.out.println(servletContext.getRealPath("/WEB-INF/c.txt"));//web目录下WEB-INF下资源的访问
    System.out.println(servletContext.getRealPath("/WEB-INF/classes/a.txt"));//src下资源的访问
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值