版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/70214712
简介
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。
getRequestDispatcher()
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 上传文件