首页 > 解决方案 > 关于 JSP & servlet & MongoDB Mlab 的问题

问题描述

我是 MongoDB Mlab 的新手,这意味着不熟悉如何使用它以及如何将它与 DAO 文件连接。我在 SERVLET 上遇到了一个技术问题。首先,我尝试从 MongoDB mlab 中提取数据,以获取登录页面用户的电子邮件和密码。而且我还使用“request.getParameter("")”方法捕获用户在登录 JSP 页面上输入的电子邮件和密码。这两点很好用,因为我已经对它们进行了测试。关于我的问题的更多信息是,当我尝试从 MongoDB mlab 中提取电子邮件和密码时,我将这两个参数存储到用户对象中,并将用户对象存储到 ArrayList 中。然后将此 Arraylist 返回到登录 Servlet。使用 for-each 循环遍历这个列表。我把代码放在下面。

当我尝试在登录页面上输入电子邮件和密码时,这是我遇到的结果 如何解决

fdao.java

package Dao;

import static com.sun.corba.se.spi.presentation.rmi.StubAdapter.request;
import java.net.UnknownHostException;
import java.sql.*;
import java.util.*;
import javax.servlet.RequestDispatcher;
import model.Book;
import model.Staff;
import model.User;
import org.bson.Document;

public class FDao {

    public List<User> checkLogin() throws UnknownHostException {
        
        Iterator it = DB.getDB().getCollection("users").find().iterator();
        List<User> aUser = new ArrayList();
        while(it.hasNext()){
            Document o = (Document) it.next();
            aUser.add(new User(o.getString("email"), o.getString("password")));
        }
        return aUser;
    }
    
}

LoginServlet.java(我从登录 JSP 页面捕获字符串电子邮件和字符串密码)

@WebServlet("/Login")
public class LoginServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    public LoginServlet() {
        super();
    }
    FDao userDao = new FDao();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");

        String email = request.getParameter("email");
        String password = request.getParameter("pass");
        List<User> users = new ArrayList();
        users = userDao.checkLogin();
        
        for (User user : users) {
            if (email.equals(user.getEmail()) && password.equals(user.getPassword()) ) {
                //HttpSession session = request.getSession();
                //session.setAttribute("user", user); 
                request.getRequestDispatcher("/home.jsp").include(request, response); //the problem looks like appeared in this line of code
                //out.println("Hello World");
            } else {
                //String message = "Your account does not exist in out database!";
                //request.setAttribute("message", message); //message is object
                request.getRequestDispatcher("/Login.jsp").include(request, response);//the problem looks like appeared in this line of code
                //out.println("Nothing");
            }
            break;
        }

        
    }
}

标签: javamongodbjspservlets

解决方案


推荐阅读