首页 > 解决方案 > 使用链接列表登录和注册 - 无法访问从其他 servlet 创建的对象

问题描述

我创建了两个 servlet 页面,第一个 servlet 页面是 RegistrationServlet,第二个 servlet 页面是 LoginServlet,并为链表创建了一个对象,以便从其他 servlet 调用它,但我无法调用该对象。

     protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);

    String name,email,pass;

    name=request.getParameter("un");
    email = request.getParameter("em");
    pass = request.getParameter("pass");

    LinkedList<String> a1=new LinkedList();  
    a1.add(name);
     a1.add(pass);

    if (!name.isEmpty() && !email.isEmpty() && !pass.isEmpty()) {
      RequestDispatcher rd=getServletContext().getRequestDispatcher("/Login.html");
        rd.forward(request, response);

        request.getSession().setAttribute("someone", a1);
     request.getRequestDispatcher("LoginServlet").forward(request, response);
    } else {
        RequestDispatcher rd1 = getServletContext().getRequestDispatcher("/Register.html");
        rd1.include(request, response);
    }   
    }

    Other Servlet---------------------------------------
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException  {
    processRequest(request, response);
    String email = request.getParameter("eml");
        String pass = request.getParameter("pass");


        object fg;
    fg = request.getSession().getAttribute("someone");


     if(email.equals(fg.a1.get(0)) && pass.equals(fg.a1.get(1)))
    {
     System.out.println("sucess");

     }
      else{
        System.out.println("not");

      }   
     }

标签: javajspservlets

解决方案


您通过以下命令将列表放入会话:request.getSession().setAttribute("someone", a1); 'a1' 是变量的名称,不会放入会话中。request.getSession().getAttribute("someone") 给出的值必须是 List 类型。此对象没有字段“a1”。因此,要获得该列表中的项目,您必须编写 fg.get(0),而不是 fg.a1.get(0)。


推荐阅读