qq_29901455 2020-10-17 21:48 采纳率: 60%
浏览 57

Servlet应用开发——用户在线计数,只显示用户名是怎么回事?

package com.smalle.listener;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet{
    private static final long seriaVersionUID=1L;
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        this.doPost(request, response);
    }

    @SuppressWarnings("unchecked")
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        request.setCharacterEncoding("utf-8");
        String username=request.getParameter("username");

        //往session中添加属性,会触发HttpSessionAttributeListener中的attributeAdded方法
        if(username!=null&&!username.equals("")) {
            request.getSession().setAttribute("username",username); 
            }

        //从应用上下文中获取在线用户名列表
        List<String> online=(List<String>)getServletContext().getAttribute("online");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        out.println("");
        out.println("<title>用户列表</title>");
        out.println(" ");
        out.println("当前用户是: "+username);
        out.print("<hr><h3>在线用户列表</h3>");

        int size=online==null ? 0:online.size();
        for(int i=0;i<size;i++) {
            if(i>0) {
                out.println("<br>");
            }
            out.println(i+1+"."+online.get(i));
        }

        //注意:要对链接URL进行自动重写处理
        out.println("<hr/><a href=\""+response.encodeURL("logoutListener")+"\"> 注销</a>" );
        out.println("<hr/><a href='\'index.jsp\''>  主页</a>" );
        out.println(" ");
        out.println("");
        out.flush();
        out.close();
    }
}

  • 写回答

1条回答

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。