簡體   English   中英

基於 HTML 頁面動作重定向到其他 servlet

[英]Redirecting to other servlet based on HTML page action

這里我有 2 個 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>

當用戶單擊創建配置文件時,我想重定向到創建 servlet。 誰能幫我這個?

您有一個表單,並且希望它轉到兩個不同的 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>

您需要根據單擊的按鈕選擇操作。 您可以使用 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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM