• java记录在线人数小案例


    文件目录:

    web.xml:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.5" 
     3     xmlns="http://java.sun.com/xml/ns/javaee" 
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     7   <display-name></display-name>    
     8   <welcome-file-list>
     9     <welcome-file>index.jsp</welcome-file>
    10   </welcome-file-list>
    11   
    12   <servlet>
    13       <servlet-name>MyHttpSessionListener</servlet-name>
    14       <servlet-class>com.g.Login</servlet-class>      
    15       <init-param>
    16           <param-name>success</param-name>
    17           <param-value>success.jsp</param-value>
    18       </init-param>
    19       <load-on-startup>0</load-on-startup>
    20   </servlet>
    21   <servlet-mapping>
    22       <servlet-name>MyHttpSessionListener</servlet-name>
    23       <url-pattern>/login</url-pattern>
    24   </servlet-mapping>
    25 </web-app>

    Login.java代码:

     1 package com.g;
     2 
     3 import java.io.IOException;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.http.HttpServlet;
     9 import javax.servlet.http.HttpServletRequest;
    10 import javax.servlet.http.HttpServletResponse;
    11 
    12 import org.omg.CORBA.PUBLIC_MEMBER;
    13 
    14 public class Login extends HttpServlet{
    15 Map<String, String> users;
    16 //在构造方法中,初始化用户直
    17     public Login(){
    18         users=new HashMap<String, String>();
    19         users.put("zhangsan", "123456");
    20         users.put("lisi", "123456");
    21         users.put("wangwu", "123456");
    22         users.put("zhaoliu", "123456");
    23     }
    24     
    25     @Override
    26         protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    27                 throws ServletException, IOException {
    28         doGet(req, resp);
    29         }
    30     @Override
    31         protected void doPost(HttpServletRequest request, HttpServletResponse response)
    32                 throws ServletException, IOException {
    33                 request.setCharacterEncoding("UTF-8");
    34                 String userId=request.getParameter("userId");
    35                 String passwd=request.getParameter("passwd");
    36                 //匹配用户名与密码.如果一致则记录数加1
    37                 if(users.containsKey(userId)&&users.get(userId).equals(passwd)){
    38                     request.getSession().setAttribute("user", userId);
    39                     request.getSession().setAttribute("count", MyHttpSessionListener.getCount());
    40                 }
    41                 String success=getInitParameter("success");    //获取初始化参数的success的值
    42                 response.sendRedirect(success);        //跳转页面
    43         }
    44 }

    MyHttpSessionListener.java代码

     1 package com.g;
     2 
     3 import javax.servlet.http.HttpSessionEvent;
     4 import javax.servlet.http.HttpSessionListener;
     5 
     6 public class MyHttpSessionListener implements HttpSessionListener{
     7     private static int count; //统计数
     8     public static int getCount(){
     9         return count;
    10     }
    11     //在session开始时,统计数加1
    12     public void sessionCreated(HttpSessionEvent se) {
    13         MyHttpSessionListener.count++;
    14         
    15     }
    16     //在Session销毁时,统计数减1
    17     public void sessionDestroyed(HttpSessionEvent se){
    18         MyHttpSessionListener.count--;
    19     }
    20 }

    success.jsp代码

     1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>登陆成功界面</title>
    13     <meta http-equiv="pragma" content="no-cache">
    14     <meta http-equiv="cache-control" content="no-cache">
    15     <meta http-equiv="expires" content="0">    
    16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17     <meta http-equiv="description" content="This is my page">
    18     <!--
    19     <link rel="stylesheet" type="text/css" href="styles.css">
    20     -->
    21   </head>
    22   
    23   <body>
    24     <h3>目前在线人数为:${sessionScope.count}</h3>
    25     <h4>欢迎您:${sessionScope.user }</h4>    
    26   </body>
    27 </html>

    index.jsp代码

     1 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>登陆</title>
    13     <meta http-equiv="pragma" content="no-cache">
    14     <meta http-equiv="cache-control" content="no-cache">
    15     <meta http-equiv="expires" content="0">    
    16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17     <meta http-equiv="description" content="This is my page">
    18     <!--
    19     <link rel="stylesheet" type="text/css" href="styles.css">
    20     -->
    21   </head>
    22   
    23   <body>
    24     <form action="login" method="post">
    25         姓名:<input type="text" value="" name="userId" /><br />
    26         密码:<input type="password" value="" name="passwd" /><br />
    27         <input type="submit" value="提交" /> 
    28     </form>
    29   </body>
    30 </html>
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 入学考试
    Qt4.6.2已编译二进制版本在VS2005中的问题
    函数可重入问题reentrant functions(函数执行过程中可以被中断,允许多个副本)
    QT的Paint 系统
    取clientdataset detal中的 更新数据, 将detal 转 数据库脚本sql
    delphi 八字排盘源码(post数据以后,又分析数据)
    Working with Entity Relations in OData
    图片轮播插件Nivo Slider
    跨域访问 REST API
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4430329.html
Copyright © 2020-2023  润新知