`
jallay
  • 浏览: 43813 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

ServletContextListener的使用

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

package ServletContextTest;

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<Integer,String> depts=new HashMap<Integer,String>();
		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>

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

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();
	}
	
}

 

Session和request也可以设置相应的监视器来处理数据
分享到:
评论

相关推荐

    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