一个对HttpSession用户进行管理的类

本文介绍了一个用于管理用户会话的Java类SessionCounter,该类通过监听HTTP会话事件来跟踪在线用户并记录用户的注销行为。
1. public class SessionCounter implements HttpSessionListener{
2.
3. private static List<HttpSession> sessionsList = Collections.synchronizedList(new LinkedList<HttpSession>());
4.
5.
6. @Override
7. public void sessionCreated(HttpSessionEvent event) {
8. }
9.
10. /**
11. * session销毁时从sessionList移除
12. */
13. @Override
14. public void sessionDestroyed(HttpSessionEvent event) {
15. LoginUser userObject = null;
16. if (SCutil.isNotEmpty(event.getSession().getAttribute("userObject"))) {
17. userObject = (LoginUser) event.getSession().getAttribute("userObject");
18. }
19.
20. sessionsList.remove(event.getSession());
21.
22. Long userId = null;
23. if(userObject != null){
24. userId = userObject.getUserId();
25. }
26. if(userId != null && userId != -1 ){
27. SCutil.Println(DateUtil.getDateTime()+":用户被T除,ID为:"+userId);
28. //加入到T除队列
29. WaitForKillContainer.addUserId(userId);
30. }
31.
32. }
33.
34. /**
35. * 清除在线注册用户信息
36. * @param se
37. */
38. public static void destroySession(HttpSession se) {
39. LoginUser userObject = (LoginUser) se.getAttribute("userObject");
40. if (userObject != null) {
41. WaitForKillContainer.addUserId(Long.parseLong(userObject.getUserId()));
42. se.removeAttribute("userObject");
43. }
44. }
45.
46. /**
47. * 用户登陆时加入sessionList
48. * @param session
49. * @return
50. */
51. public static Users createSession(HttpSession session) {
52. LoginUser userObject = (LoginUser) session.getAttribute("userObject");
53. Users eu = null;
54. eu = UserService.UpdateUserLoginFre(userObject);
55. userObject.setUserName(eu.getUserName());
56. userObject.setUserId(eu.getUserId() + "");
57. sessionsList.add(session);
58. return eu;
59. }
60. }
好的,我可以为您编写一个使用HttpSession对象管理的Java代码。请注意,您需要在Web应用程序中运行此代码。 ```java import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/session-example") public class SessionExampleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); // 获取当前HttpSession对象,如果不存在,则创建一个新的 HttpSession session = request.getSession(true); // 读取和设置session属性 Integer visitCount = (Integer) session.getAttribute("visitCount"); if (visitCount == null) { visitCount = 1; } else { visitCount++; } session.setAttribute("visitCount", visitCount); // 输出Session信息 out.println("<html><body>"); out.println("<h2>Session Information</h2>"); out.println("<p>Session ID: " + session.getId() + "</p>"); out.println("<p>Number of Visits: " + visitCount + "</p>"); out.println("</body></html>"); } } ``` 此代码创建了一个名为“SessionExampleServlet”的Servlet,它使用HttpSession对象来跟踪用户访问次数。当用户第一次访问时,它将创建一个新的HttpSession对象并将访问计数设置为1。对于随后的每个请求,它将增加访问计数并将其保存在HttpSession对象中。每次请求时,它都会输出当前会话的ID和访问计数。 请注意,此代码假定您的Web应用程序已经配置为使用Servlet 3.0或更高版本,并且已经在Web.xml中注册了Servlet。如果您需要更多帮助,请告诉我您使用的Web框架和服务器,我可以为您提供更具体的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值