Một ứng dụng web có thể được công bố tại đường dẫn bối cảnh khác nhau, vì vậy các đường dẫn ngữ cảnh (số ít) chỉ có ý nghĩa trong bối cảnh của một yêu cầu cụ thể. Servlet 2.5 đã thêm getContextPath()
vào ServletContext
, được chỉ định để trả lại đường dẫn ngữ cảnh "chính" cho ứng dụng web này, nhưng không có cách nào độc lập với vùng chứa để truy cập thông tin này trong các phiên bản thông số trước đó.
Có thể có các thủ thuật hoạt động đối với một số vùng chứa nhất định, ví dụ trên phương thức Tomcat theo phương pháp ServletContext.getResource()
trả về URL có lược đồ tùy chỉnh, theo mẫu jndi://hostname/context/...
.Vì vậy bạn có thể sử dụng
ctx.getResource("/").getPath()
để có được những đường dẫn ngữ cảnh trên Tomcat (hoặc có thể getResource("/WEB-INF/web.xml")
và cắt bỏ đuôi, như getResource()
được quy định để trở null
nếu bạn hỏi nó cho một tập tin không tồn tại) . Bạn sẽ phải thử nghiệm với các vùng chứa khác nhau để tìm các thủ thuật tương tự hoạt động trên các vùng chứa đó.
Nguồn
2012-12-14 13:58:58
[ServletContext.getServletContextName()] (http://docs.oracle.com/javaee/1.4/api/javax/servlet/ServletContext.html#getServletContextName()) - ServletConfig.getServletContext(). GetServletContextName() –
trường hợp này là null trong trường hợp của tôi:/ – Lama