Ngữ cảnh servlet cũng khả dụng khi bạn triển khai ServletContextListener. Điều này giúp dễ dàng tải các tham số như chuỗi kết nối khi khởi động. Bạn có thể định nghĩa lớp người nghe trong tệp tin web.xml tải bạn ServletContextListener khi khởi động ứng dụng web của bạn.
Bên trong tệp web.xml, thêm các thẻ <listener>
và <context-param>
. <listener>
chỉ định lớp được gọi khi khởi động. Thẻ <context-param>
xác định tham số ngữ cảnh có sẵn trong ứng dụng web của bạn.
Thứ nhất, bao gồm các <listener>
và <context-param>
thẻ trong file web.xml:
<web-app>
<!-- ... -->
<listener>
<listener-class>com.your.package.ServletContextClass</listener-class>
</listener>
<!-- Init parameters for db connection -->
<context-param>
<param-name>your_param</param-name>
<param-value>your_param_value</param-value>
</context-param>
<!-- ... -->
</web-app>
Bây giờ, tạo lớp servlet context như sau.
public class ServletContextClass implements ServletContextListener
{
public void contextInitialized(ServletContextEvent arg0)
{
//use the ServletContextEvent argument to access the
//parameter from the context-param
String my_param = arg0.getServletContext().getInitParameter("your_param");
}//end contextInitialized method
@Override
public void contextDestroyed(ServletContextEvent arg0)
{ }//end constextDestroyed method
}
Bây giờ bạn có thể chọn biến tĩnh nào để gán thông số bạn đã đọc. Điều này cho phép bạn đọc tham số một lần khi khởi động và sử dụng lại nhiều lần thông qua biến tĩnh mà bạn gán nó.
Nguồn
2015-04-09 11:25:56
lớp javax.ws.rs nào tôi sử dụng làm bộ xử lý servlet? – leeeroy
Không thực sự nhận được bạn bởi điều này. Bạn đã có một lớp xử lý các yêu cầu HTTP GET. Xin hãy giải thích thêm về Servlet Handler. Chúc mừng. –
Một thùng chứa servlet cần một servlet để xử lý các yêu cầu. com.sun.ws.rest.spi.container.servlet.ServletContainer xử lý các yêu cầu và gửi chúng đến các lớp chú thích của tôi. Bạn ngụ ý tôi không nên sử dụng com.sun. * Lớp học, vì vậy những gì sau đó tôi nên sử dụng? – leeeroy