第三十七节(java-开发流量分析统计系统)

User.java文件里:

package com.tanzhou.util;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

/**
 * 用户对象
 * 
 * @author Ming
 * @version 1.0
 * 2015-2-7
 *
 *实现了HttpSessionBindingListener接口,就会把user对象绑定到session中,或者从
 *session移除掉
 */
public class User implements HttpSessionBindingListener{

    private String name; // 用户名
    
    public User(String uname){
        super();
        this.name = uname;
    }
    
    //得到UserList的实例
    private UserList ul =UserList.getInstance();

    
    /**
     * 用户登陆---User -- session(将user绑定到session)-自动调用valueBound
     */
    public void valueBound(HttpSessionBindingEvent arg0) {
        ul.addUser(name); //添加用户
    }

    /**
     * 用户退出---User -- session(将user绑定到session)-自动调用valueUnbound
     */
    public void valueUnbound(HttpSessionBindingEvent arg0) {
        ul.removeUser(name);
    }
    
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

///////////////////////////////////////////////////////////////////////
UserList.java文件里:

package com.tanzhou.util;

import java.util.Vector;

/**
 * 装载用户的容器类
 * @author Ming
 * @version 1.0
 * 2015-2-7
 *
 *
 *单例模式:是指一个类只有一个实例。
 *单例模式的特点:
 *1、单例类只能有一个实例
 *2、单例类必须自己创建自己的唯一实例
 *3、单例必须给所有其他对象那个提供这一实例
 *
 */
public class UserList {
    // List下的实现类, 装载登陆用户的容器
    private Vector vector;
    
    // 自己创建自己的唯一实例
    private static final UserList  userList = new UserList();
    
    // 提供私有的无参构造函数
    private UserList() {
        vector = new Vector();
    }
    
    /**
     * 对外提供访问的入口
     * @return
     */
    public static UserList getInstance(){
        return userList;
    }
    
    /**
     * 向集合中添加用户
     * @param name 登陆进来的用户名
     */
    public void addUser(String name) {
        if(name!=null){
            vector.add(name);
        }
    }
    
    /**
     * 退出后,在容器里把该用户移除掉
     * @param name 退出的用户名
     */
    public void removeUser(String name){
        if(name!=null){
            vector.remove(name);
        }    
    }
    
    /**
     * 统计用户列表
     * @return 用户列表
     */
    public Vector getUserList() {
        return vector;
    }
    
    /**
     * 获得用户的数量
     * @return
     */
    public int getUserCount() {
        return vector.size();
    }
}

///////////////////////////////////////////////////////////////
UserList.jsp文件里:

<%@ page language="java" import="java.util.*,com.tanzhou.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";


// 获取用户名,并且处理编码集
    String name = new String(request.getParameter("username").getBytes("ISO-8859-1"),"gbk");
    
    if(name==null || "".equals(name)){
        response.sendRedirect("index.jsp");
    }else{
        User user = (User)session.getAttribute("user");
        
        if(user==null || !name.equals(user.getName())){
            user = new User(name);
            session.setAttribute("user", user);
        }
    }
    UserList ul = UserList.getInstance();  // 获得UserList对象
%>

"-//W3C//DTD HTML 4.01 Transitional//EN">

  
    <base href="<%=basePath%>">
    
    用户列表

  
  
  
     "center" width="70%" style="background-color:#D5FFFF;text-align:center;font-size:14px">
         
欢迎【<%=name %>】登陆!
"color:red">在线人数:<%=ul.getUserCount() %>
"100px"> <% Vector vector = ul.getUserList(); // 获取到容器 int i=0; // Enumeration 列举类型 Enumeration enums = vector.elements(); while(enums.hasMoreElements()){ out.println(enums.nextElement()); // 打印出来这个值 out.println("   "); if((++i%8)==0){ out.println("
"); } } %>
"exit.jsp">退出登陆
///////////////////////////////////////////////////////////////// exit.jsp文件里: <%@ page language="java" import="java.util.*,com.tanzhou.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; response.setContentType("text/html"); User user = (User)session.getAttribute("user"); session.invalidate(); // session销毁 response.sendRedirect("index.jsp"); %> /////////////////////////////////////////////////////////// index.jsp文件里: <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> "-//W3C//DTD HTML 4.01 Transitional//EN"> <base href="<%=basePath%>"> 登陆界面 【用户登陆页面
"UserList.jsp" method="POST"> 用户名: "text" name="username" />
密码:"password" name="password" />
"submit" value="登陆">

 

转载于:https://www.cnblogs.com/Deng1185246160/p/4279773.html

你可能感兴趣的:(第三十七节(java-开发流量分析统计系统))