java自定义 注解 annotation、标签库tag、监听listener、junit简单测试代码(三)

2014-11-24 02:08:42 · 作者: · 浏览: 3
port javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class ReplyListener implements ServletContextListener { private ReplyTime replyTime=null; @Override public void contextDestroyed(ServletContextEvent event) { String status="sys replyListener stop--------------"; event.getServletContext().log(status); replyTime=new ReplyTime(5000); System.out.println(status); if(replyTime!=null){ replyTime.stop(); } } @Override public void contextInitialized(ServletContextEvent event) { String status="sys replyListener star--------------"; event.getServletContext().log(status); replyTime=new ReplyTime(5000); System.out.println(status); replyTime.start(); } }
package org.rui.listener;

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

public class ListTest implements ServletContextListener{

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		System.out.println("simple Listener Test destroyed #################");
		
		
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("simple Listener Test init start#################");
		
	}



}

package org.rui.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


/**
 * [接收事件] HttpSessionEvent 
   [触发场景] 在session (HttpSession)对象建立或被消灭时,会分别呼叫这两个方法。
 * 
 *
 */
public class SessionListener implements HttpSessionListener {

	//private final static Logger logger = Logger.getLogger(SessionListener.class);

	@Override
	public void sessionCreated(HttpSessionEvent arg0) {
		// TODO Auto-generated method stub
		//logger.debug("session创建成功,id=" + arg0.getSession().getId());
	  System.out.println("做一些session 连接成功的相关操作! 如用户登陆.....");
	
	}

	@Override
	public void sessionDestroyed(HttpSessionEvent arg0) {
		String cookid=(String) arg0.getSession().getAttribute("COOKIEID");
		System.out.println("做一些用户登出的相关操作");
	}


}

package org.rui.listener;

import java.util.Date;
import java.util.Timer;

public class ReplyTime {

	
	private final Timer timer =new Timer();
	private final int min;
	
	public ReplyTime(int minutes){
		this.min=minutes;
		}
	
	
	public void start(){
		Date date=new Date();
		timer.schedule(new Replytask(), date,min);
	}
	
    public void stop(){
    	timer.cancel();
    }
    
}

package org.rui.listener;

import java.util.Date;
import java.util.TimerTask;

public class Replytask extends TimerTask {

	@Override
	public void run() {
		System.out.println("[SYSTEM]: SMS reply listener run 当前时间:======="+ new Date()+"=======");
		
	}



}

======================tag=============================

package org.rui.tag;

import java.io.IOException;
import java.util.Date;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class TagExample extends BodyTagSupport {

	 int counts;//counts为迭代的次数。
     public TagExample()
     {super();     }

    
     @Override
    public int doStartTag() throws JspException {
    	return eva l_BODY_INCLUDE;
    }
     
     @Override
    public int doEndTag() throws JspException {
    	
    	 try {
			pageContext.getOut().print("hello wrold...现在的时间是:"+