ServletContext(二)-- ServletContext对象的作用

文章详细介绍了ServletContext在JavaServlet中的作用,作为域对象,它用于在Web应用中存储、获取和删除数据。此外,还讲解了如何通过ServletContext获取MIME类型以及文件在服务器上的真实路径,包括web目录、WEB-INF目录和src目录下的资源。
摘要由CSDN通过智能技术生成

目录

1.  作为域对象

1.1 ServletContext对象--存储数据

1.2  ServletContext对象--获取数据

1.3  ServletContext对象--删除数据

2.  获取MIME类型

3.  获取文件的真实(服务器)路径

3.1   获取web目录下的资源

3.2  获取WEB-INF目录下的资源

3.3  获取src目录下的资源


1.  作为域对象

        域对象指的是对象有作用域(即作用范围)。域对象可以实现数据的共享。不同作用范围的域对象,共享数据的能力也不一样。

        在 Servlet 规范中,一共有 4 个域对象。ServletContext 就是其中的一个。它也是 web 应用中最大的作用域,也叫 application 域。它可以实现整个应用之间的数据共享!

返回值方法名说明
voidsetAttribute(String name,Object value)向域对象中存储数据
ObjectgetAttribute(String name)通过名称获取域对象中的数据
voidremoveAttribute(String name)通过名称移除域对象中的数据

1.1 ServletContext对象--存储数据

@WebServlet("/aa")
public class Servlet01 extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //ServletContext作为域对象存储数据

        //1.获取ServletContext对象
        ServletContext servletContext = this.getServletContext();

        //2.向ServletContext对象存数据
        servletContext.setAttribute("Chinese","文明古国");
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

1.2  ServletContext对象--获取数据

@WebServlet("/bb")
public class Servlet02 extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获取ServletContext对象
        ServletContext servletContext = this.getServletContext();

        //2.从ServletContext对象中获取数据
        Object Chinese= servletContext.getAttribute("Chinese");
        System.out.println("Chinese= " + Chinese);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

1.3  ServletContext对象--删除数据

@WebServlet("/cc")
public class Servlet03 extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获取ServletContext对象
        ServletContext servletContext = this.getServletContext();

        //2.从ServletContext对象中删除数据
        servletContext.removeAttribute("Chinese");
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

2.  获取MIME类型

        MIME类型:在互联网通信过程中定义的一种文件数据类型,每一个类型的文件都有对应MIME类型格式: 大类型/小类型   例如: text/html image/jpeg。

返回值方法名说明
StringgetMimeType(String filename)根据文件名获取该文件对应的MIME类型
@WebServlet("/dd")
public class Servlet04 extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //ServletContext获取MIME类型

        //1.获取ServletContext对象
        ServletContext servletContext = this.getServletContext();

        //2.根据文件名获取MIME类型
        String mimeType = servletContext.getMimeType("a.html");
        System.out.println("mimeType = " + mimeType);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

3.  获取文件的真实(服务器)路径

        真实路径也叫服务器路径。举个例子,你在本地工作空间里存储着一份你的项目,同时你在你的服务器上也存储着同样的项目。那么你访问的时候是访问本地空间里的项目呢,还是访问服务器上的项目。显然是服务器上的路径。所以 真实路径也叫服务器路径。

返回值方法名说明
StringgetRealPath(String path)获取文件的真实路径

在项目中,文件结构如下, a.txt在src路径下, b.txt在web目录下, c.txt在WEB-INF目录下:

3.1   获取web目录下的资源

//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2. web目录下的资源
String realPathB = servletContext.getRealPath("/b.txt");
System.out.println("realPathB = " + realPathB);

3.2  获取WEB-INF目录下的资源

//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2.WEB-INF目录下的资源
String realPathC = servletContext.getRealPath("/WEB-INF/c.txt");
System.out.println("realPathC = " + realPathC);

3.3  获取src目录下的资源

//1.获取ServletContext类型
ServletContext servletContext = this.getServletContext();
//2. src目录下的资源
String realPathA = servletContext.getRealPath("/WEB-INF/classes/a.txt");
System.out.println("realPathA = " + realPathA);

 如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值