栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

过滤器 以及 记录在线人数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

过滤器 以及 记录在线人数

package com.qiku.yrc.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter(filterName = "loginFilter",urlPatterns = "*.html")
// 过滤所有网页  
public class LoginFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request=( HttpServletRequest) servletRequest;
        HttpSession session = request.getSession();
        Object username =session.getAttribute("username");
        // 获取请求路径
        String servletPath = request.getServletPath();
        System.out.println("servlet"+servletPath);
        // 如果没登录则跳转 登录页面
        if (username==null&& !servletPath.contains("login")){
            request.getRequestDispatcher("login.jsp").forward(servletRequest,servletResponse);
        }
        //方形
        else{
            filterChain.doFilter(servletRequest,servletResponse);
        }
    }


    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}

package com.qiku.yrc.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class OnlineLoginUser implements HttpSessionListener, ServletContextListener{

        //声明一个ServletContext 类型的变量 作为全局对象记录当前在线人数的数量  通过属性记录
        private ServletContext servletContext=null;
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            //初始化ServletContext
            servletContext= sce.getServletContext();
        }

        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            servletContext=null;//销毁servletContext
        }

        @Override
        public void sessionCreated(HttpSessionEvent se) {
    
            Object count = servletContext.getAttribute("count");
       
            if (count==null&&servletContext.getAttribute("username")==null){
                servletContext.setAttribute("count",0);
            }else {
              
                Integer number=(Integer) count;
                number++;

                servletContext.setAttribute("count",number);
               
        }

        @Override
        public void sessionDestroyed(HttpSessionEvent se) {

           // Integer count = (Integer)servletContext.getAttribute("count");
            //servletContext.setAttribute("count",(count-1));
  
        }
    }


退出登录人数减1

退出登陆之后变为0     不知道实时刷新咋写

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号