文件目录:
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>