zoukankan      html  css  js  c++  java
  • 第三十七节(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<String> vector;
        
        // 自己创建自己的唯一实例
        private static final UserList  userList = new UserList();
        
        // 提供私有的无参构造函数
        private UserList() {
            vector = new Vector<String>();
        }
        
        /**
         * 对外提供访问的入口
         * @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<String> 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对象
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>用户列表</title>
    
      </head>
      
      <body>
         <table align="center" width="70%" style="background-color:#D5FFFF;text-align:center;font-size:14px">
             <tr>
                 <td><b>欢迎【<%=name %>】登陆!</b></td>
             </tr>
             <tr>
                 <td style="color:red">在线人数:<%=ul.getUserCount() %></td>
             </tr>
             <tr>
                 <td height="100px">
                     <%
                     Vector<String> vector = ul.getUserList(); // 获取到容器
                     int i=0;
                     // Enumeration 列举类型
                     Enumeration<String> enums = vector.elements();
                     while(enums.hasMoreElements()){
                         out.println(enums.nextElement()); // 打印出来这个值
                         out.println("&nbsp;&nbsp;&nbsp;");
                         if((++i%8)==0){
                             out.println("<br />");
                         }
                     }
                     %>
                 </td>
             </tr>
             <tr>
                 <td><a href="exit.jsp">退出登陆</a></td>
             </tr>
         </table>
      </body>
    </html>
    
    
    
    /////////////////////////////////////////////////////////////////
    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+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>登陆界面</title>
        
      </head>
      
      <body>
         【用户登陆页面<br />
         <form action="UserList.jsp" method="POST">
             用户名: <input type="text" name="username" /><br />
             密码:<input type="password" name="password" /><br />
             <input type="submit" value="登陆">
         </form>
      </body>
    </html>
  • 相关阅读:
    Thymeleaf介绍和基本语法使用
    2020版idea及没有default Settings设置的idea,修改默认maven设置、本地仓库的方法
    创建springboot项目的两种方式
    2020版IDEA新建打开*.vue文件
    IDEA新手常用快捷键
    搭建一个maven的web项目
    eclipse、idea引入外部jar包教程
    序列化笔记
    转换流笔记
    缓冲流笔记
  • 原文地址:https://www.cnblogs.com/Deng1185246160/p/4279773.html
Copyright © 2011-2022 走看看