有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于HTML页面操作的java重定向到其他servlet

这里我有两个小服务员

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

.........
.........

}


@WebServlet("/Create")
public class Create extends HttpServlet {

.........
.........

}

还有像这样的HTML页面

<form name="loginForm" method="post" action="Login">
  <table width="20%" bgcolor="0099CC" align="center">
    <tr>
      <td colspan=2>
        <center>
          <font size=4><b>HTML Login Page</b></font>
        </center>
      </td>
    </tr>
    <tr>
      <td>Username:</td>
      <td><input type="text" size=25 name="username"></td>
    </tr>
    <tr>
      <td>Password:</td>
      <td><input type="Password" size=25 name="password"></td>
    </tr>
    <tr>
      <td><input type="submit" onclick="return check(this.form)" value="Login"></td>
    </tr>
    <tr>
      <td><input type="submit" onclick="return check(this.form)" value="Create profile"></td>
    </tr>

  </table>
</form>

我想在用户单击createprofile时重定向到createservlet。有人能帮我吗


共 (2) 个答案

  1. # 1 楼答案

    您有一个表单,并且希望它转到两个不同的servlet。你不能那样做。如果你想先登录servlet,然后再创建servlet。您可以查看requestDispatcher或httpServletresponse。sendRedirect()

    RequestDispatcher rd=request.getRequestDispatcher("servlet Name")
    rd.forward(request, response);
    

    或者

    response.sendRedirect("/url");
    

    或者,如果你根本不想进入登录servlet,直接想进入创建,那么使用两个表单,一个用于登录,另一个用于创建配置文件。 <form name="loginForm" method="post" action="Create"> <tr> <td><input type="submit" onclick="return check(this.form)" value="Create profile"></td> </tr>

  2. # 2 楼答案

    您需要根据单击的按钮选择操作。你可以使用JavaScript来实现。下面是一个最小的工作示例,您可以根据自己的要求进行扩展:

    HTML

    <!DOCTYPE html>
    <html>
        <head>
        <meta charset="UTF-8">
        <script>
            function check(form, button){
                if(button.id=='login'){
                    form.action="Login";
                }else if(button.id=='create'){
                    form.action="Create";
                }
                form.submit();
            }
        </script>
        <title>Insert title here</title>
        </head>
        <body>
            <form name="loginForm" method="post">
                <table width="20%" bgcolor="0099CC" align="center">
                    <tr>
                        <td colspan=2>
                            <center>
                                <font size=4><b>HTML Login Page</b></font>
                            </center>
                        </td>
                    </tr>
                    <tr>
                        <td>Username:</td>
                        <td><input type="text" size=25 name="username"></td>
                    </tr>
                    <tr>
                        <td>Password:</td>
                        <td><input type="Password" size=25 name="password"></td>
                    </tr>
                    <tr>
                        <td><input type="button" id="login" onclick="check(this.form,this)"
                            value="Login"></td>
                    </tr>
                    <tr>
                        <td><input type="button" id="create" onclick="check(this.form,this)"
                            value="Create profile"></td>
                    </tr>
    
                </table>
            </form>
        </body>
    </html>
    

    登录。java

    package servlets;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    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("/Login")
    public class Login extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            out.println("Login");
        }
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    }
    

    创建。java

    package servlets;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    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("/Create")
    public class Create extends HttpServlet{
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            PrintWriter out = response.getWriter();
            out.println("Create");
        }
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    }