猿问

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

http://img.mukewang.com/58c798bd0001a07610230536.jpg

代码虽多,一目了然

先是实体User


package 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>
-----------------------------------------------------
servler

package 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>


向日葵一族
浏览 1437回答 0
0回答
随时随地看视频慕课网APP

相关分类

Java
我要回答