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条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置