2011-01-19 52 views
15

Phương thức getServletContextName() trả về tên của "ứng dụng web". Điều đó có nghĩa là "ServletContext" không là gì ngoài "ứng dụng web". Được."Context" trong "ServletContext" có nghĩa là gì?

API định nghĩa:

một ServletContextListener nhận thông báo về những thay đổi trong bối cảnh servlet của ứng dụng web mà họ là một phần của.

"Ngữ cảnh servlet" của "ứng dụng web" có nghĩa là gì? Điều gì thực sự là "Context" trong "ServletContext"?

+1

liên quan: ([gì chính xác là một bối cảnh trong Java?] http://stackoverflow.com/questions/3918083/what-exactly-is-a-context-in-java) – BalusC

+0

@BalusC Thông tin thú vị! – Faisal

Trả lời

5

Bối cảnh có nghĩa là ứng dụng web tại đây.

A ServletContextListener được thông báo khi ứng dụng web được khởi động hoặc dừng. Bằng cách đó bạn có thể chạy các tác vụ tự động cần phải chạy khi ứng dụng web bắt đầu hoặc dừng.

+0

Sau đó, hãy xem những gì API nói: "ngữ cảnh servlet" của "ứng dụng web".Câu văn này có nghĩa là gì? Có vẻ lạ, phải không? – Faisal

+0

@Faisal Một ứng dụng web cũng có thể chứa nội dung không phải của servlet. Ngữ cảnh Servlet đề cập đến những gì được cấu hình thông qua web.xml –

9

"ngữ cảnh" có nghĩa là .. bối cảnh - nó có thông tin theo ngữ cảnh và chức năng cho một ứng dụng web cụ thể:

  • thông số ứng dụng rộng
  • sự kiện ứng dụng nghe
  • siêu dữ liệu về các ứng dụng

ServletContext là ngữ cảnh của ứng dụng web Java (vì nó sử dụng servlets)

+0

Cảm ơn! Nhưng, "ngữ cảnh servlet" của "ứng dụng web" nghĩa là gì? – Faisal

+0

@Faisal - xem cập nhật – Bozho

+0

Cảm ơn rất nhiều! Lời giải thích rất hay. Nhưng, "ApplicationContext" sẽ thích hợp hơn "ServletContext". Bởi vì, ngữ cảnh (thông tin theo ngữ cảnh) không chỉ dành cho servlet, mà còn cho cả JSP nữa. – Faisal

20

Tên thực sự là IMO, rất được chọn rất kém.

Chúng ta phải đọc ServletContext là "ngữ cảnh chung của ứng dụng web dựa trên API servlet". Trong khi đó chúng ta phải đọc ServletConfig (một lớp tiêu chuẩn khác) là "Cấu hình của một servlet".

Họ nên IMO đã đặt tên ServletContext là "WebAppContext" hoặc "ApplicationContext", và ServletConfig là "ServletContext".

BTW, trong JSP, phạm vi được liên kết với JspPage được đặt tên là "trang"; phạm vi liên kết với một HttpServletRequest được đặt tên là "yêu cầu"; phạm vi được đặt tên cho một HttpSession được đặt tên là "phiên", và phạm vi liên kết với một ServletContext được đặt tên là "ứng dụng".

+2

Tôi đồng ý với bạn, ServletContext nên được đặt tên là WebAppContext hoặc ApplicationContext. Bởi vì, "ngữ cảnh" (thông tin theo ngữ cảnh) không chỉ dành cho servlet. Nó cũng có nghĩa là cho JSP. Tuy nhiên, ở cuối JSP là một servlet. Vì vậy, họ có thể đã gọi nó là ServletContext. :) Nhưng, ApplicationContext âm thanh thích hợp hơn. – Faisal

1

ServletContext là biểu diễn thời gian chạy của ứng dụng web.

1

ServletContext ngụ ý bối cảnh hoặc môi trường thời gian chạy của servlet. Servlets chạy trong các thùng chứa Servlet như tomcat. Servlet container tạo và cung cấp môi trường runtime cho servlet để thực thi và nó quản lý vòng đời của nó. Nó cũng chứa các thông tin khác, như: -

  • thông số ứng dụng rộng
  • ứng dụng nghe sự kiện
  • siêu dữ liệu về các ứng dụng