Công ty của tôi đang làm lại trang web của chúng tôi trong vài tháng tới, chuyển từ trang web ColdFusion sang một trang viết bằng Java. Tôi chỉ học Java và tôi tò mò về cách tôi có thể thiết lập các biến phạm vi ứng dụng trong một ứng dụng web Java. ColdFusion có tệp application.cfm chứa các biến có thể truy cập được bởi tất cả các trang/thành phần ColdFusion trong ứng dụng. Java rõ ràng không có một tương đương trực tiếp với tập tin đó, vì vậy tôi đã tự hỏi làm thế nào để tái tạo một cái gì đó tương tự trong Java. Tôi muốn có một vị trí trung tâm mà tất cả các trang jsp, servlet, các lớp, v.v. trong webapp đều có thể truy cập.Sử dụng biến phạm vi ứng dụng trong java
Vậy cách tốt nhất để làm điều gì đó như thế?
Có ai có bất kỳ ví dụ nào giống như họ đã làm không?
Biến phạm vi ứng dụng có nên được đặt trong lớp không? một tệp xml? một trang jsp? thứ gì khác?
Thậm chí có khả thi khi có biến phạm vi ứng dụng trong java webapp không?
Ví dụ: Đó sẽ là nơi giữ đường dẫn đến thư mục hình ảnh, vì vậy trong các trang hoặc lớp JSP riêng lẻ hoặc bất kỳ thứ gì cần acces vào thư mục hình ảnh đó, bạn có thể tham khảo biến phạm vi ứng dụng cho đường dẫn đó viết nó ra ở mỗi nơi. Sau đó, nếu vì lý do nào đó, chúng tôi cần di chuyển vị trí của thư mục hình ảnh đó, chúng tôi sẽ chỉ thay đổi biến đường dẫn ở một vị trí và không phải cập nhật 20 địa điểm tham chiếu đến thư mục hình ảnh đó.
Tôi gặp khó khăn khi tìm bất kỳ thông tin nào về loại điều này trong nghiên cứu trực tuyến của tôi, đó là lý do tại sao tôi hỏi về nó ở đây. Tôi biết nó là rất nhiều để yêu cầu một lời giải thích cho loại điều này, nhưng tôi figured tôi sẽ hỏi và xem những loại phản ứng tôi có thể nhận được.
Cảm ơn bạn đã giúp bạn có thể cung cấp về chủ đề này.
Cảm ơn. Khi bạn thiết lập một thuộc tính trong ngữ cảnh servlet, nó có hết hạn khi phiên làm việc hết thời gian không? Cho đến nay tôi đã tìm thấy rằng tôi có thể thiết lập các thẻ trong tệp web.xml của mình và truy cập chúng thông qua ngữ cảnh servlet, nhưng tôi nghi ngờ bằng cách sử dụng phương thức setAttribute sẽ thực sự thay đổi tệp web.xml, đặc biệt là trong thời gian chạy. Vậy thì điểm thiết lập thuộc tính trong ngữ cảnh servlet là gì? Có thực sự khác với cài đặt thuộc tính phiên không? Tôi chỉ tò mò thôi. –
kei23th
Bạn có thể nghĩ về 'ServletContext' như là một không gian toàn cục được chia sẻ bởi tất cả Servlets, JSP, vv' 'HttpSession', mặt khác là đặc trưng cho mỗi người dùng. ServletContext có thể được khởi tạo bởi web.xml nhưng các ứng dụng J2EE không bao giờ viết vào web.xml. Nó thường là cửa hàng chỉ đọc. Cách tốt nhất là định nghĩa các giá trị "phạm vi ứng dụng" bằng cách sử dụng một khung công tác như Springs ['ApplicationContext'] (http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/context/ApplicationContext.html) và không gây ô nhiễm web.xml. Tôi khuyên bạn nên xem lại một số tài liệu [Hướng dẫn] (http://www.springsource.org/tutorials) – Brad