本文主要是介绍Servlet ServletContext,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
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();// '/' 表示 WebRootfor(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 上传文件
这篇关于Servlet ServletContext的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!