`

java 在线用户统计

    博客分类:
  • java
阅读更多

 web.xml

 

<listener> 
  <listener-class>cyoa.page.OnlinePersons</listener-class> 
 </listener> 

 

 


import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class OnlinePersons implements HttpSessionListener,
  ServletContextListener, ServletContextAttributeListener {
 private int count;

 private ServletContext context = null;

 public OnlinePersons() {
  count = 0;
  // setContext();
 }

 // 创建一个session时激发
 public void sessionCreated(HttpSessionEvent se) {
  count++;
  setContext(se);

 }

 // 当一个session失效时激发
 public void sessionDestroyed(HttpSessionEvent se) {
  count--;
  setContext(se);
 }

 // 设置context的属性,它将激发attributeReplaced或attributeAdded方法
 public void setContext(HttpSessionEvent se) {
  se.getSession().getServletContext().setAttribute("onLine",
    new Integer(count));
 }

 // 增加一个新的属性时激发
 public void attributeAdded(ServletContextAttributeEvent event) {

  log("attributeAdded('" + event.getName() + "',   '" + event.getValue()
    + "')");

 }

 // 删除一个新的属性时激发
 public void attributeRemoved(ServletContextAttributeEvent event) {

  log("attributeRemoved('" + event.getName() + "',   '"
    + event.getValue() + "')");

 }

 // 属性被替代时激发
 public void attributeReplaced(ServletContextAttributeEvent event) {

  log("attributeReplaced('" + event.getName() + "',   '"
    + event.getValue() + "')");
 }

 // context删除时激发
 public void contextDestroyed(ServletContextEvent event) {

  log("contextDestroyed()");
  this.context = null;

 }

 // context初始化时激发
 public void contextInitialized(ServletContextEvent event) {

  this.context = event.getServletContext();
  log("contextInitialized()");

 }

 private void log(String message) {

  System.out.println("ContextListener:   " + message);
 }

 public void attributeAdded(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }

 public void attributeRemoved(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }

 public void attributeReplaced(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }
}

//退出时

   function close(){
 
 document.location.href="loginoutAction.do";  
  var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;
  if(ie){
   var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))));
   if( IEversion< 5.5){
    var str = '';
    document.body.insertAdjacentHTML("beforeEnd", str);
    document.all.noTipClose.Click();
   } else {
   top.opener =null; top.close();
   }
  }else{
   top.close();
  }
 
}

 

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginoutAction extends Action{
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  HttpSession sess=request.getSession(true);
   if(sess.getAttribute("username")!=null && !sess.getAttribute("username").equals("")){
    sess.removeAttribute("username");
    sess.invalidate();
   }
   response.setContentType("text/html;charset=UTF-8");
   PrintWriter out=null;
         try{
    out= response.getWriter();
    out.print("<script language='javascript'> top.location.href='login.jsp';</script>");
   } catch(Exception e){e.printStackTrace();}
   return null;
 }
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics