Blog cá nhân của Đức NT (GC00464)

Thứ Năm, 11 tháng 9, 2014

Servlet Context

21:05 Posted by Đức NT No comments

Servlet Context là gì?

Servlet context dùng để duy trì trạng thái cho ứng dụng web. Mỗi máy ảo Java chỉ có một context. Servlet context lưu lại 1 nội dung dùng chung cho nhiều servlet.

Servlet Context có 3 phương thức chính:

  1. getAttribute()
  2. setAttribute()
  3. removeAttribute()

Servlet Context giúp cung cấp thông tin liên lạc giữa các servlet, nó có sẵn cho bất kỳ servlet và JSP là một phần của ứng dụng web. Ngoài ra Servlet Context còn được sử dụng để có được thông tin cấu hình web.xml.
Video chi tiết: youtu.be/wOd885Lgjvc

Demo Servlet Context

Viết ra một ứng dụng đếm số lần truy cập trang.

- Tạo ra 1 servlet có nội dung như sau:
   protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
       throws ServletException, IOException {  
     response.setContentType("text/html;charset=UTF-8");  
     ServletContext context = request.getServletContext();  
     Integer count = (Integer) context.getAttribute("count");  
     if (count == null) {  
       count = 0;  
     }  
     count++;  
     context.setAttribute("count", count);  
     try (PrintWriter out = response.getWriter()) {  
       /* TODO output your page here. You may use following sample code. */  
       out.println("<!DOCTYPE html>");  
       out.println("<html>");  
       out.println("<head>");  
       out.println("<title>Servlet Count1</title>");        
       out.println("</head>");  
       out.println("<body>");  
       out.println("<h1>Page views: " + count);  
       out.println("</body>");  
       out.println("</html>");  
     }  
   }  

- Chạy thử:

- Chạy thử nhiều lần:

- Tạo ra 1 servlet khác với nội dung tương tự servlet trên và chạy thử ta vẫn thấy biến cout (Page Views) tăng dần sau mỗi dần tải lại trang, nghĩa là 2 servlet này đều lấy chung nội dung từ Servlet context.

Servlet Context vs Session?

Cơ bản thì Servlet Context khá giống so với Session, chỉ khác rằng Servlet Context được lưu trữ ở server còn Session được lưu trữ bởi browser (client). Nếu đã hiểu được cơ bản về Session thì Servlet Context cũng rất dễ dàng để làm quen.

0 nhận xét:

Đăng nhận xét

Bỏ capcha cho thầy tiện comment :P