如何重定向提交按钮另一个servlet



所以我正在制作一个web应用程序的注册页面。然而,我无法获得提交按钮重定向到确认页面。注册servlet接收用户信息,所有确认servlet所做的只是显示用户名并打印出"欢迎(用户名)"
下面是我的代码:
注册servlet

package register.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Register")
public class Register extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public Register() {
        super();
    }
    public void init() throws ServletException {
        ArrayList<HW1User> HW1Users = new ArrayList<HW1User>();
        getServletContext().setAttribute("HW1Users", HW1Users);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String docType = "<!doctype html public "-//w3c//dtd html 4.0 transitional//en">n";
        out.println(docType);
        out.println("<html>" + "<head>" + "<meta charset="UTF-8">" + "<title>Register</title>"
                + "<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">"
                + "</head>" + "<body>" + "<div class="container">" + "<div class="jumbotron">"
                + "<h1>Welcome to Bat!</h1>"
                + "<p>Bat! is a cloud-based note taking app that allows you to create, store, edit, and share notes that you create directly in your browser!</p>"
                + "<p>To begin, register below.</p>" + "</div>"
                + "<div class="panel panel-primary">" + "<div class="panel-heading">"
                + "<h3 class="panel-title"> New User Registration</h3>"
                + "</div>" + "<div class="panel-body">" + "<form>" + "<div class="form-group">"
                + "<label for="name">Full Name</label>"
                + "<input type="name" class="form-control" name="fullName" id="fullName" placeholder="First and Last Name">"
                + "</div>"
                + "<div class="form-group">" + "<label for="email">Email Address</label>"
                + "<input type="email" class="form-control" name="email" id="email" placeholder="Email">"
                + "</div>" + "<div class="form-group">" + "<label for="password1">Password</label>"
                + "<input type="password" class="form-control" name="password1" id="password1" placeholder="Password">"
                + "</div>" + "<div class="form-group">" + "<label for="password2">Re-Enter Password</label>"
                + "<input type="password" class="form-control" name="password2" id="password2" placeholder="Re-Enter Your Password">"
                + "</div>"
                + "<button type="submit" value ="Post" class="btn btn-primary">Register</button>" + "</form>"
                + "</div>" + "</div> <!--  End Well -->" + "</div>" + "</body>" + "</html>");

    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        ArrayList<HW1User> HW1Users = (ArrayList<HW1User>) getServletContext().getAttribute("HW1Users");
        for (HW1User entry : HW1Users)
            if (entry.getId() == id){
                entry.fullName = request.getParameter("fullName");
                entry.email = request.getParameter("email");
                entry.password1 = request.getParameter("password1");
                entry.password2 = request.getParameter("password2");
                break;
            }
        ServletContext context = getServletContext();
        RequestDispatcher rd = context.getRequestDispatcher("/Confirm");
        rd.forward(request, response);
        doGet(request, response);
    }
}


确认servlet

package register.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Confirm")
public class Confirm extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HW1User entry = null;
        try{
            int id = Integer.parseInt(request.getParameter("id"));
            ArrayList<HW1User> HW1Users = (ArrayList<HW1User>) getServletContext().getAttribute("HW1Users");
            for (HW1User e : HW1Users){
                if (e.getId() == id){
                    entry = e;
                    break;
                }
            }
        }catch(Exception e){}
        finally{
            if (entry == null){
                response.sendRedirect("Register");
                return;
            }
        }

        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>Cervantes, Albert - cs320stu100</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">");
        out.println("Welcome " + entry.getName() + " !!");

    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
}


当你想在post方法上做一些动作时,你应该把method="post"添加到你的form标签中。

最新更新