`
Gavin.Chen
  • 浏览: 324890 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

ServletContextListener的使用

阅读更多

(本文转载自http://jallay.iteye.com/blog/256554)

1:ServletContext对象是一个为整个web应用提供共享的内存,任何请求都可以访问里面的内容
2:如何实现在服务启动的时候就动态的加入到里面的内容:我们需要做的有: 
  1) 实现servletContextListerner接口 并将要共享的通过setAttribute(name,data)方法提交到内存中去
  2)应用项目在通过getAttribute(name)将数据或到

ServletContextLTest.java

=====================================================================

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import util.ConnectTool;

public class ServletContextLTest implements ServletContextListener
{

    public void contextDestroyed(ServletContextEvent sce)
    {
        System.out.println("this is last destroyeed");


    }

    public void contextInitialized(ServletContextEvent sce)
    {
        ServletContext sct = sce.getServletContext();
        Map depts = new HashMap();
        Connection connection = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;

        try
        {
            connection = ConnectTool.getConnection();
            String sql = "select deptNo,dname from dept";
            pstm = connection.prepareStatement(sql);
            rs = pstm.executeQuery();

            /*put the data into the deptNames */
            while (rs.next())
            {
                depts.put(rs.getInt(1), rs.getString(2));
            }

            sct.setAttribute("dept", depts);
            System.out.println("======listener test is beginning============================");

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            ConnectTool.releasersc(rs, pstm, connection);

        }

    }
}  

 

 

在配置文件中加入

<listener>   
    <listener-class>ServletContextTest.ServletContextLTest</listener-class>   
</listener>

 

 

这样监视器就设置好了
以下通用应用调用上面的数据

CreateEmployee.java

==============================================================

import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CreateEmployee extends HttpServlet
{

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException
    {

        ServletContext sct = getServletConfig().getServletContext();
        Map<Integer, String> dept = (Map<Integer, String>) sct.getAttribute("dept");
        Set<Integer> key = dept.keySet();

        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<body>");
        out.println("<form action='/register' action='post'>");
        out.println("<table alignb='center'>");

        out.println("<tr>");
        out.println("<td>");
        out.println("username:");
        out.println("</td>");
        out.println("<td>");
        out.println("<input type='text' name='username'");
        out.println("</tr>");

        out.println("<tr>");
        out.println("<td>");
        out.println("city:");
        out.println("</td>");
        out.println("<td>");
        out.println("<select name='dept'");
        for (Integer i : key)
        {
            out.println("<option value='" + i + "'>" + dept.get(i) + "</option>");
        }
        out.println("</select>");
        out.println("</td>");
        out.println("<tr>");

        out.println("</table>");
        out.println("</form>");
        out.println("</body>");
        out.println("</html>");
        out.flush();
    }
} 

 

分享到:
评论

相关推荐

    ServletContextListener使用详解

    ServletContextListener 使用详解 ServletContextListener 是 Servlet API 中的一个接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当 Servlet 容器启动或终止 Web 应用时,...

    ServletContextListener socket实现数据接收

    这是一个maven项目,直接导入eclipse即可运行,此处监听的是9092端口,将项目运行起后,可以对其端口使用情况进行查看,在window下,可以使用命令 netstat -aon|findstr "9092",在linux下可以使用命令netstat -...

    ServletContextListener,Timer,TimerTask学习笔记

    需要注意的是,`Timer`的线程模型可能导致多个任务之间存在依赖关系时出现混乱,因此在多线程环境下使用时需谨慎。 结合`ServletContextListener`和`Timer`,可以在Web应用程序启动时创建一个定时器,用于定时执行...

    ServletContextListener的应用

    ### ServletContextListener的使用 当一个Web应用程序被部署并启动时,服务器会调用`contextInitialized`方法。我们可以利用这个特性来执行一些初始化任务,如设置全局变量、加载配置文件、创建数据库连接池等。在...

    SpringMVC中ervletContextListener的使用

    在Spring MVC框架中,`ServletContextListener`扮演着重要的角色,它是Java Servlet API的一部分,用于监听ServletContext事件。在本文中,我们将深入探讨`ServletContextListener`如何与Spring MVC协作,以及如何...

    ServletContextListener完成在线人数统计和显示人员列表

    在这个场景中,我们将探讨如何使用`ServletContextListener`来实现在线人数的统计和显示人员列表的功能。 首先,让我们了解一下`ServletContextListener`的基本用法。要创建一个`ServletContextListener`,你需要...

    Java基于ServletContextListener实现UDP监听

    在这篇文章中,我们将介绍如何使用ServletContextListener来实现UDP监听。 在UDP监听中,需要使用DatagramSocket来创建一个UDP套接字,以便监听UDP数据报。同时,需要使用ServletContextListener来监听Servlet上...

    java定时任务,每天定时执行任务

    Java 定时任务,每天定时执行任务 Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer ...此外,我们还可以学习如何使用 Calendar 和 ServletContextListener 来实现每天定时执行任务的功能。

    Listener:ServletContextListener,sesson,请求侦听器

    开发者可以参考这些代码,学习如何在自己的项目中使用监听器来增强功能和优化性能。 总结来说,`ServletContextListener`、session监听和请求侦听器是Java Web开发中不可或缺的组件,它们使得开发者能够更好地控制...

    java 监听使用

    ### Java监听器使用详解 #### 一、引言 在Java Web开发中,尤其是在使用...综上所述,通过合理地使用`ServletContextListener`,开发者可以有效地管理和控制Web应用的生命周期事件,从而提升应用的整体性能和稳定性。

    java web使用监听器实现定时周期性执行任务demo

    在这个场景中,我们将使用一个特定的监听器,即ServletContextListener,来实现定时任务。 1. **ServletContextListener**:这是Java Web中的一种监听器,用于监听ServletContext对象的生命周期事件。我们可以通过...

    JavaWeb新版教程. jsp--ServletContextListener监听器演示.avi

    JavaWeb新版教程. jsp--ServletContextListener监听器演示.avi

    编写程序,提供用户登录界面。登录成功后,提示用户上次登录时间,登录IP地址信息

    编写程序,提供用户登录界面。 登录成功后,提示用户上次登录时间,登录IP地址信息。 保存用户的登录信息可以使用XML,也可以使用纯文本文件。... 要求使用ServletContextListener,要求理解Listener.

    jsp实验5:监听器拦截器的使用

    在本实验中,我们可能会使用到`HttpSessionListener`、`ServletRequestListener`或`ServletContextListener`等监听器接口。例如,`HttpSessionListener`可以用来监控用户会话的创建和销毁,确保只有经过登录验证的...

    listener的实例代码

    它们实现了特定的接口,如`ServletContextListener`、`HttpSessionListener`或`ServletRequestListener`等,以便在特定事件发生时执行相应的操作,如初始化、销毁、创建或销毁域对象等。 二、`Listener`的分类 1. `...

    java定时器的实现

    本文将详细介绍如何使用`Timer`类结合`ServletContextListener`接口来实现在Web应用中启动并管理一个定时任务。 #### 二、Java定时器的基本概念 1. **`java.util.Timer`类**:`Timer`类是Java中用于执行定时任务的...

    过滤器和监听器的使用步骤

    以下是这两个概念的详细解释以及如何在实际项目中使用它们。 ### 过滤器(Filter) 过滤器是Servlet规范的一部分,允许开发者在请求到达目标Servlet或JSP之前对请求进行预处理,并在响应离开目标之后进行后处理。...

    SSH笔记-web应用下使用Spring

    在这个笔记中,我们将深入探讨如何在Web应用环境下使用Spring框架,特别是通过两种不同的方法:配置监听器类和调用HttpServlet类,以及配置ContextLoaderListener。 首先,Spring框架在Web应用中的主要作用是提供...

Global site tag (gtag.js) - Google Analytics