为了账号安全,请及时绑定邮箱和手机立即绑定

使用listener,实现在线用户列表时,显示第一次输入的用户,,(代码多,但是一粘贴,复制,既没)

使用listener,实现在线用户列表时,显示第一次输入的用户,,(代码多,但是一粘贴,复制,既没)

向日葵一族 2017-03-14 15:25:09
代码虽多,一目了然先是实体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 回答
  • 0 关注
  • 1420 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信