欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

ServletContextListener

发布时间:2025/3/15 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ServletContextListener 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 <context-param>标签,

比如

 <context-param>
        <param-name>breed</param-name>
        <param-value>test</param-value>

    </context-param>

应用在容器中启动之后,整个应用任何一个servlet都可以通过getContextConfig获取breed的值。

但是如果我们需要在项目启动的时候获取一个对象呢,而不仅仅是一个字符串呢?

我们可以通过写一个类实现ServletContextListener接口实现这一点。


package javax.servlet;import java.util.EventListener;public abstract interface ServletContextListener extends EventListener {public abstract void contextInitialized(ServletContextEvent paramServletContextEvent);public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent); } 在web.xml中配置


 <listener>
        <listener-class>
            servlet.ServletContextListenerTest
        </listener-class>
  </listener>

ServletContextListenerTest实现一个ServletContextListener的接口


package servlet;import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;public class ServletContextListenerTest implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent event) {}@Overridepublic void contextInitialized(ServletContextEvent event) {System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");ServletContext sc = event.getServletContext();String dogBreed = sc.getInitParameter("breed");System.out.println("aaaaaaaaaaaaaa"+dogBreed);Dog dog = new Dog(dogBreed);event.getServletContext().setAttribute("dog", dog);}} 上面的代码主要是实现了在应用启动的时候,将一个dog对象塞进ServletContext的attribute属性中,


这样应用的所有servlet就可以通过getAttribute共享这个dog对象了。

Dog类

package servlet;public class Dog {public String breed;public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}public Dog(String breed) {this.breed=breed;}public void getDogBreed() {System.out.println("the breed of the dog is"+breed);} }



写一个情景类

package servlet;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns={"/servletContextListenerTestClient"}) public class ServletContextListenerTestClient extends HttpServlet{private static final long serialVersionUID = -5169172101637034615L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {Dog dog = (Dog)this.getServletContext().getAttribute("dog");dog.getDogBreed();}}



转载于:https://my.oschina.net/liangzhenghui/blog/184468

总结

以上是生活随笔为你收集整理的ServletContextListener的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。