Authentication 如何在Java/JSP中隔离身份验证和用户注册

Authentication 如何在Java/JSP中隔离身份验证和用户注册,authentication,servlets,login,Authentication,Servlets,Login,在RegServlet类中,我有一个覆盖doStuff()方法的doGet()方法doStuff()方法从HTML注册表单获取用户输入,然后连接到数据库,然后将用户输入存储到数据库中 下面是我的RegServlet类中的doStuff()方法: public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, Instantiati

在RegServlet类中,我有一个覆盖
doStuff()
方法的
doGet()
方法
doStuff()
方法从HTML注册表单获取用户输入,然后连接到数据库,然后将用户输入存储到数据库中

下面是我的RegServlet类中的
doStuff()
方法:

public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantiationException, IllegalAccessException, SQLException {
    String userName = request.getParameter("userName");
    ...
    String email = request.getParameter("email");

    if(!userName.isEmpty()&&!passWord.isEmpty()) {
        request.setAttribute("userName", userName);
        ...
        request.setAttribute("email", email);

        //connect to DB
        toDB.createConnection();

        //insert information to DB
        toDB.insertNewUser(userName, passWord, lastName, firstName, age, sex, email);
        RequestDispatcher view = request.getRequestDispatcher("login.jsp");
        view.forward(request, response);            
    } else {
        RequestDispatcher view = request.getRequestDispatcher("index.jsp");
        view.forward(request, response);
    }
如果在正确输入所有内容后单击register按钮,它将引导我进入login.jsp页面。我现在尝试编写登录机制代码,以便用户(拥有数据库中存储的用户名和密码)登录、搜索和添加/删除课程

我有一段艰难的时间,因为我不知道我应该如何去做这件事


如何隔离用户注册和身份验证?我应该为会话管理创建另一个类,还是在这个RegServlet类中创建另一个方法?

实现您自己的HTTPServletFilter,用于检查用户是否经过身份验证:

public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {
    if ("a user is authenticated") {
        filterChain.doFilter(req, res);
    } else {
        // authenticate a user
    }
}
该链接显示HTTPServletFilter的基本功能:

实现您自己的HTTPServletFilter,用于检查用户是否经过身份验证:

public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {
    if ("a user is authenticated") {
        filterChain.doFilter(req, res);
    } else {
        // authenticate a user
    }
}
该链接显示HTTPServletFilter的基本功能:

谢谢你,迈克尔。那么这是否应该在与
doStuff()方法相同的类中实现呢?或者其他课程?请看我在答案中添加的链接。HTTPServletFilter是不同于HTTPServlet的组件
doStuff()
在HTTPServlet中,但是
doFilter
在HTTPServletFilterThanks中,Michael。那么这是否应该在与
doStuff()方法相同的类中实现呢?或者其他课程?请看我在答案中添加的链接。HTTPServletFilter是不同于HTTPServlet的组件
doStuff()
在HTTPServlet中,但
doFilter
在HTTPServletFilter中