域物件——ServletContext及應用
阿新 • • 發佈:2019-02-14
多個Servlet依靠ServletContext共享資料。
獲取ServletContext的方式有:
1.ServletConfig中的getServletContext();
2.GenericServlet中的getServletContext();
。。。
案例:獲取訪問網站的次數
public class AServlet extends HttpServlet { /** * 統計網站的訪問量: * 1.獲取ServletContext物件 * 2.獲取其屬性count * 3.如果count不存在,儲存count值為1 * 4.如果已經存在,將count+1儲存 */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext app=this.getServletContext(); Integer count=(Integer)app.getAttribute("count"); if(count==null){ app.setAttribute("count", 1); } else { app.setAttribute("count", count+1); } //向網頁輸出訪問量 PrintWriter out=response.getWriter(); out.print("<h1>"+count+"</h1>"); } }
還可以用於獲取資源:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //獲取真實路徑 String path=this.getServletContext().getRealPath("/index.jsp"); System.out.println(path); //獲取資源流 InputStream path2=this.getServletContext().getResourceAsStream("/index.jsp"); System.out.println(path2); //獲取指定目錄下的所有資源路徑 Set <String> path3=this.getServletContext().getResourcePaths("/WEB-INF"); System.out.println(path3); }