Java Servlet未重定向

Java Servlet未重定向,java,servlets,Java,Servlets,我认为我的代码应该重定向到“Login”servlet。它目前没有使用任何验证,所以实际上它应该在运行后将我重新指向另一个servlet。我没有遇到404错误或500级错误,它只是不断地将我重定向到我的注册servlet,而不是登录 @WebServlet("/Register") public class Register extends HttpServlet { private static final long serialVersionUID = 1L; public

我认为我的代码应该重定向到“Login”servlet。它目前没有使用任何验证,所以实际上它应该在运行后将我重新指向另一个servlet。我没有遇到404错误或500级错误,它只是不断地将我重定向到我的注册servlet,而不是登录

@WebServlet("/Register")
public class Register extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void init() throws ServletException {
        // Create an array list of guest book HW1Users
        ArrayList<HW1User> HW1Users = new ArrayList<HW1User>();
        // Add the array list to the application scope
        getServletContext().setAttribute("HW1Users", HW1Users);     
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<meta charset=\"ISO-8859-1\">");
        out.println("<title>Israel, Dylan - CS320stu32</title>");
        out.println(
                "<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\">");
        out.println("</head>");
        out.println("<body>");

        out.println("<form class=\"form-horizontal\">");

        out.println("<div class=\"form-group\">");
        out.println("<label for=\"name\" class=\"col-sm-2 control-label\">Name:</label>");
        out.println("<div class=\"col-sm-10\">");
        out.println("<input type=\"text\" class=\"form-control\" id=\"name\" placeholder=\"First and Last Name\">");
        out.println("</div>");
        out.println("</div>");

        out.println("<div class=\"form-group\">");
        out.println("<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">Email:</label>");
        out.println("<div class=\"col-sm-10\">");
        out.println("<input type=\"email\" class=\"form-control\" id=\"inputEmail3\" placeholder=\"Enter Email\">");
        out.println("</div>");
        out.println("</div>");

        out.println("<div class=\"form-group\">");
        out.println("<label for=\"password1\" class=\"col-sm-2 control-label\">Password:</label>");
        out.println("<div class=\"col-sm-10\">");
        out.println("<input type=\"text\" class=\"form-control\" id=\"password1\" placeholder=\"Enter Password\">");
        out.println("</div>");
        out.println("</div>");

        out.println("<div class=\"form-group\">");
        out.println("<label for=\"password2\" class=\"col-sm-2 control-label\">Re-Enter Password:</label>");
        out.println("<div class=\"col-sm-10\">");
        out.println("<input type=\"text\" class=\"form-control\" id=\"password2\" placeholder=\"Re-Enter Password\">");
        out.println("</div>");
        out.println("</div>");

        out.println("<div class=\"form-group\">");
        out.println("<div class=\"col-sm-offset-2 col-sm-10\">");
        out.println("<input type=\"submit\" value = \"Register\"/>");
        out.println("</div>");
        out.println("</form>");
        // Grab a reference to the list of HW1Users
        out.println("</body>");
        out.println("</html>");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String password1 = request.getParameter("password1");
        String password2 = request.getParameter("password2");
        String email = request.getParameter("email");

        ArrayList<HW1User> HW1Users = (ArrayList<HW1User>)getServletContext().getAttribute("HW1Users");

        HW1Users.add(new HW1User(name,password1,password2,email));
        // Add the new entry to the list

        if(HW1Users!= null){

        response.sendRedirect("/Login");
        }
        doGet(request, response);
    }
}
@WebServlet(“/Register”)
公共类寄存器扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
public void init()引发ServletException{
//创建来宾手册HW1用户的数组列表
ArrayList HW1Users=新的ArrayList();
//将数组列表添加到应用程序范围
getServletContext().setAttribute(“HW1Users”,HW1Users);
}
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“以色列,迪伦-CS320stu32”);
out.println(
"");
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“名称:”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“电子邮件:”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“密码:”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“重新输入密码:”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
//获取对硬件用户列表的引用
out.println(“”);
out.println(“”);
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
字符串名称=request.getParameter(“名称”);
字符串password1=request.getParameter(“password1”);
字符串password2=request.getParameter(“password2”);
字符串email=request.getParameter(“email”);
ArrayList HW1Users=(ArrayList)getServletContext().getAttribute(“HW1Users”);
添加(新的HW1User(名称、密码1、密码2、电子邮件));
//将新条目添加到列表中
如果(HW1Users!=null){
response.sendRedirect(“/Login”);
}
doGet(请求、响应);
}
}
在Kumar回答后,我将代码更新为:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String name = request.getParameter("name");
    String password1 = request.getParameter("password1");
    String password2 = request.getParameter("password2");
    String email = request.getParameter("email");

    ArrayList<HW1User> HW1Users = (ArrayList<HW1User>)getServletContext().getAttribute("HW1Users");

    HW1Users.add(new HW1User(name,password1,password2,email));
    // Add the new entry to the list

    if(HW1Users!= null){

    response.sendRedirect("/Login");
    return; // returns causing response stream to be committed only once
    }
    doGet(request, response); // This will treat your request as a get request only if HW1Users is null
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException、IOException{
字符串名称=request.getParameter(“名称”);
字符串password1=request.getParameter(“password1”);
字符串password2=request.getParameter(“password2”);
字符串email=request.getParameter(“email”);
ArrayList HW1Users=(ArrayList)getServletContext().getAttribute(“HW1Users”);
添加(新的HW1User(名称、密码1、密码2、电子邮件));
//将新条目添加到列表中
如果(HW1Users!=null){
response.sendRedirect(“/Login”);
return;//返回导致响应流只提交一次
}
doGet(请求,响应);//只有当HW1Users为空时,才会将您的请求视为get请求
}
下面是我的登录Servlet代码,表明它没有重定向到任何东西

                     @WebServlet("/Login")
     public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;

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

    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE html>");
    out.println("<html>");
    out.println("<head>");
    out.println("   <meta charset=\"UTF-8\">");
    out.println("   <title>Sessions Login</title>");
    out.println("   <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\">");
    out.println("</head>");
    out.println("<body>");
    out.println("<div class=\"container\">");

    String error = (String) request.getAttribute("error");
    if (error != null)
        out.println("<p class=\"text-danger lead\">" + error + "</p>");

    // Page-Specific Content
    out.println("<form action=\"Login\" method=\"post\" >");
    out.println("   Username: <input type=\"text\" name=\"username\" /> <br />");
    out.println("   Password: <input type=\"password\" name=\"password\" /> <br />");
    out.println("   <input type=\"submit\" value=\"Login\" />");

    out.println("</form>");

    out.println("</div>");
    out.println("</body>");
    out.println("</html>    ");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    if (username != null && username.equals("albert") 
            && password != null && password.equals("1!") ){

        // Create a Session Variable named Username
        HttpSession session = request.getSession();
        session.setAttribute("username", "Albert F. Cervantes");

        // Redirect to the Member's Only page
        response.sendRedirect("Members");
    }
    else {
        request.setAttribute("error", "Invalid Username and/or Password");
        doGet(request, response);
    }

}
@WebServlet(“/Login”)
公共类登录扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“会话登录”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
字符串错误=(字符串)请求.getAttribute(“错误”);
if(错误!=null)
out.println(“

”+error+“

”); //页面特定内容 out.println(“”); out.println(“用户名:
”); out.println(“密码:
”); out.println(“”); out.println(“”); out.println(“”); out.println(“”); out.println(“”); } 受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{ 字符串username=request.getParameter(“用户名”); 字符串密码=request.getParameter(“密码”); if(username!=null&&username.equals(“albert”) &&密码!=null&&password.equals(“1!”){ //创建名为Username的会话变量 HttpSession session=request.getSession(); setAttribute(“用户名”、“Albert F.Cervantes”); //重定向到成员的唯一页面 回复。发送重定向(“成员”); } 否则{ setAttribute(“错误”、“无效用户名和/或密码”); doGet(请求、响应); } }

}您的响应将通过
response.sendRedirect(“/Login”)提交两次
doGet(请求、响应)

protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException、IOException{
字符串名称=request.getParameter(“名称”);
字符串password1=request.getParameter(“password1”);
字符串password2=request.getParameter(“password2”);
字符串email=request.getParameter(“email”);
ArrayList HW1Users=(ArrayList)getServletContext().ge
protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String password1 = request.getParameter("password1");
        String password2 = request.getParameter("password2");
        String email = request.getParameter("email");

        ArrayList<HW1User> HW1Users = (ArrayList<HW1User>)getServletContext().getAttribute("HW1Users");

        HW1Users.add(new HW1User(name,password1,password2,email));
        // Add the new entry to the list

        if(HW1Users!= null){    
        response.sendRedirect("/Login");
        return; // returns causing response stream to be committed only once
        }
        doGet(request, response); // This will treat your request as a get request only if HW1Users is null 
    }