[英]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.