Servlet ServletContext

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/70214712 简介WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/70214712

简介

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。

getRequestDispatcher()

参考这篇博客
http://twilight.net.cn/2017/04/09/Servlet-%E4%BD%BF%E7%94%A8RequestDispathcher%E8%B0%83%E6%B4%BE%E8%AF%B7%E6%B1%82/

getResourcePaths(“url”)

url 必须以/开头

        for(String temp : getServletContext().getResourcePaths("/")){
            output.println(temp);
        }

效果如下

/JSP-useBean/
/FormTest.html
/AutoLogin.jsp
/Hello.jsp
/Cookie/
/Main.html
/CheckNum/
/META-INF/
/index.jsp
/test.html
/WEB-INF/
/includes/
/JSP-Include/
/AutoLogin.html
/error.jsp

获取webRoot下的所有图片

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter output = resp.getWriter();
        ServletContext context = getServletContext();

        // '/' 表示 WebRoot
        for(String temp : context.getResourcePaths("/img")){
            temp = temp.substring(temp.indexOf("/")+1);
            output.println("<img src='"+temp+"' width=200 height=200></img>");
        }
    }

getResourceAsStream(“url”)

获取文件流,返回类型是InputStream,URL必须以”/”开头

向页面中发送图片

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        ServletContext context = req.getServletContext();
        // 获取输入流
        InputStream input = context.getResourceAsStream("/img/P70114-101325.jpg");
        // 获取输出流
        OutputStream output = resp.getOutputStream();
        byte [] data = new byte [1024];
        int len = 0 ;
        while(-1 != (len = input.read(data))){
            output.write(data,0,len);
        }

        output.close();
        input.close();
    }

这是从服务器端向客户端发送文件,如果需要接受客户端发来的文件,具体操作方式请参考
Servlet 上传文件

相关文章
|
7月前
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
|
2月前
|
Java 应用服务中间件 Spring
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
38 0
|
存储 应用服务中间件 API
JavaWeb 速通Servlet(ServletConfig和ServletContext)
JavaWeb——ServletConfig 和 ServletContext 内容分享。
69 1
|
前端开发 Java Spring
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
391 0
|
存储 安全 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
|
前端开发 JavaScript 小程序
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
58 0
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
78 1
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Servlet学习(六):ServletContext对象的作用
Servlet学习(六):ServletContext对象的作用
117 0
Servlet学习(六):ServletContext对象的作用
Servlet——ServletContext对象功能
Servlet——ServletContext对象功能
101 0