JavaEE在线人数管理系统

这篇文章主要为大家分享了JavaEE在线人数管理系统,显示在线人数、在线人详细信息、管理员踢人等功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

这篇博客是filter、listener和servlet技术的相关总结,实现了简单的显示在线人数、在线人详细信息、管理员踢人功能

下面是详细代码

web.xml

    charactercn.hncu.filter.CharacterFilter charsetutf-8 logincn.hncu.filter.LoginFilter character/* login/servlet/*/jsps/*REQUESTFORWARD cn.hncu.listener.MySessionListener LoginServletcn.hncu.servlet.LoginServlet ShowServletcn.hncu.servlet.ShowServlet This is the description of my J2EE componentThis is the display name of my J2EE componentKickOutServletcn.hncu.servlet.KickOutServlet This is the description of my J2EE componentThis is the display name of my J2EE componentLoginOutServletcn.hncu.servlet.LoginOutServlet LoginServlet/LoginServlet ShowServlet/servlet/ShowServlet KickOutServlet/servlet/KickOutServlet LoginOutServlet/servlet/LoginOutServlet index.jsp

index.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  在线人信息管理 

在线人信息管理

会员登录

姓名:

欢迎回来,${ sessionScope.user.name} 管理员 会员

安全退出

/jsps/show.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  在线人信息  
姓名上线时间最后访问时间ip操作
${online.user.name } 游客 ${online.createTime }${online.lastAccessedTime }${online.ip } 踢出

User.java(值对象)

 package cn.hncu.domain; public class User { private String name; private boolean admin; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isAdmin() { return admin; } public void setAdmin(boolean admin) { this.admin = admin; } @Override public String toString() { return "User [name=" + name + ", admin=" + admin + "]"; } } 

MySessionListener.java(监听器)

 package cn.hncu.listener; import java.util.Collections; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MySessionListener implements HttpSessionListener{ @Override public void sessionCreated(HttpSessionEvent se) { Map onlines= (Map) se.getSession().getServletContext().getAttribute("onlines"); if(onlines==null){ onlines=Collections.synchronizedMap(new HashMap());//对map进行加上同步锁 se.getSession().getServletContext().setAttribute("onlines",onlines); } onlines.put(se.getSession().getId(), se.getSession()); } @Override public void sessionDestroyed(HttpSessionEvent se) { Map onlines= (Map) se.getSession().getServletContext().getAttribute("onlines"); if(onlines.containsKey(se.getSession().getId())){ onlines.remove(se.getSession().getId()); } } } 

CharacterFilter.java(字符过滤器)

 package cn.hncu.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class CharacterFilter implements Filter { private String charset; @Override public void init(FilterConfig filterConfig) throws ServletException { charset=filterConfig.getInitParameter("charset"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(charset); response.setCharacterEncoding(charset); HttpServletRequest req=(HttpServletRequest) request; if(req.getSession().getAttribute("ip")==null){ req.getSession().setAttribute("ip", req.getRemoteAddr()); } chain.doFilter(request, response); } @Override public void destroy() { } } 

LoginFilter.java(防止游客乱访问过滤器)

 package cn.hncu.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest) request; if(req.getSession().getAttribute("user")==null){ ((HttpServletResponse)response).sendRedirect(req.getContextPath()+"/index.jsp"); return; } chain.doFilter(request, response); } @Override public void destroy() { } } 

LoginServlet.java

 package cn.hncu.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hncu.domain.User; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name=request.getParameter("name"); User user=(User) request.getSession().getAttribute("user"); if (user==null&&name!=null&&name.trim().length()>0) {//封装User user = new User(); user.setName(name); if(name.equals("admin")){ user.setAdmin(true); } } request.getSession().setAttribute("user", user); response.sendRedirect(request.getContextPath()+"/index.jsp"); } } 

ShowServlet.java

 package cn.hncu.servlet; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class ShowServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map onlines=(Map) request.getServletContext().getAttribute("onlines"); List> list=new ArrayList>();//吧Online封装成list if (onlines!=null) { Iterator it = onlines.values().iterator(); while (it.hasNext()) { HttpSession s = it.next(); Map map = new HashMap(); map.put("id", s.getId()); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); map.put("createTime", sdf.format(new Date(s.getCreationTime()))); map.put("lastAccessedTime",sdf.format(new Date(s.getLastAccessedTime())) ); map.put("ip", s.getAttribute("ip"));//ip信息在characterFilter中补 map.put("user", s.getAttribute("user")); list.add(map); } } request.setAttribute("onlines", list); request.getRequestDispatcher("/jsps/show.jsp").forward(request, response); } } 

KickOutServlet.java

 package cn.hncu.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class KickOutServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id=request.getParameter("id"); Map onlines=(Map) request.getServletContext().getAttribute("onlines"); if (onlines!=null) { if (onlines.containsKey(id)) { onlines.get(id).invalidate(); } } request.getRequestDispatcher("/servlet/ShowServlet").forward(request, response); } } 

LoginOutServlet.java

 package cn.hncu.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginOutServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getSession().invalidate(); response.sendRedirect(request.getContextPath()+"/index.jsp"); } } 


以上就是JavaEE在线人数管理系统的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java