代码虽多,一目了然先是实体Userpackage entity;public class User { private String username; private String password; public User(String username, String password) { super(); this.username = username; this.password = password; } public User() { super(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }-----------------------------------------------------------------------------------------OnLineUserListener监听器内容package listener;import java.util.HashSet;import java.util.Set;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import entity.User;public class OnLineUserListener implements ServletContextListener, HttpSessionAttributeListener, HttpSessionListener { private ServletContext application; public void sessionCreated(HttpSessionEvent arg0) { } public void sessionDestroyed(HttpSessionEvent arg0) { HttpSession session=arg0.getSession(); User logoutUser=(User) session.getAttribute("user"); Set<User> logOutUser=(Set)application.getAttribute("onLineUsers"); } public void attributeAdded(HttpSessionBindingEvent arg0) { HttpSession session=arg0.getSession(); User newuser=(User)session.getAttribute("user"); Set<User> onLineUsers=(Set)application.getAttribute("onLineUsers"); onLineUsers.add(newuser); } public void attributeRemoved(HttpSessionBindingEvent arg0) { User logOutUser=(User)arg0.getValue(); Set<User> onLineUsers=(Set)application.getAttribute("onLineUsers"); onLineUsers.remove(logOutUser); } public void attributeReplaced(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } public void contextInitialized(ServletContextEvent arg0) { Set<User> onLineUsers=new HashSet<User>();// 创建一个用于存放onLineUsers对象的set集合对象 application=arg0.getServletContext(); application.setAttribute("onLineUsers", onLineUsers); }}-----------------------------------------------login.jsp内容<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="LoginServlet" method="post"> 账户:<input type="text" name="username"/><br/> 密码:<input type="password" name="userpwd"/><br/> <input type="submit" value="登陆"/> </form> </body></html>-----------------------------------------------------servlerpackage 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 javax.servlet.http.HttpSession;import entity.User;public class LoginServlet extends HttpServlet { /** * Constructor of the object. */ public LoginServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String username=request.getParameter("username");//userpwd String userpwd=request.getParameter("userpwd"); request.getSession().setAttribute("user",new User(username,userpwd)); System.out.println("username"+username); request.getRequestDispatcher("show.jsp").forward(request, response); out.flush(); out.close(); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here }}----------------------------------------------web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <listener> <listener-class>listener.OnLineUserListener</listener-class> </listener> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <login-config> <auth-method>BASIC</auth-method> </login-config></web-app>-------------------------------------------show.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <c:forEach items="${onLineUsers}" var="onLineUsers"> <tr> <td>${onLineUsers.username } </td> <td>${onLineUsers.password } </td> </tr> <br/> </c:forEach> </body></html>
添加回答
举报
0/150
提交
取消