如何停止 Servlet 从 Html 重定向
Posted
技术标签:
【中文标题】如何停止 Servlet 从 Html 重定向【英文标题】:How To Stop Servlet Redirect From Html 【发布时间】:2021-07-18 07:50:25 【问题描述】:我想使用 Servlet 将数据从 html 网页发送到我的服务器。
<form method="post" name="customerForum" action="addCustomer">
<button class="btn btn-success" id="addCustomerBTN"
type="submit" value="addCustomer">Add Customer
</button>
</form>
这是我的 Servlet 类
@WebServlet(urlPatterns = "/addCustomer")
public class PSystemServlet extends HttpServlet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
String customerID = req.getParameter("custID");
String customerName = req.getParameter("custName");
如果我按下按钮网页重定向到我的 Servlet 类(使用此 urlPatterns = "/addCustomer")。 但是我需要将 HTML 网页中的数据发送到我的 Servlet 类,但我不需要重定向到 Servlet 类。
如何停止重定向 Servlet 类并将我的数据发送到 Servlet 类而不重定向..?
【问题讨论】:
【参考方案1】:在进入解决方案之前,你应该了解 AJAX,它是如何工作的
试试这个: 客户端:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<body>
<form method="post" name="customerForum">
CID: <input type="text" id="custID" name="custID">
CNAME:<input type="text" id="custName" name="custName">
<button class="btn btn-success" id="addCustomerBTN"
type="button" value="addCustomer" onclick="register()">Add Customer
</button>
</form>
</body>
<script>
function register()
var custName = document.getElementById('custID').value;
var custID = document.getElementById('custName').value;
$.ajax(
type: "GET",
url: "addCustomer",
data: custID: custID, custName: custName,
success: function (status)
alert(status);//You can add if codition to check status values and alert msg accordingly if 'inserted' then alert data inserted sucessfully
);
</script>
</html>
服务器端(addCustomer Servlet):
String status="notInserted";
String customerID = request.getParameter("custID");
String customerName = request.getParameter("custName");
System.out.println("custID:" + customerID);
//Your insert Logic
//if data inserted sucessfully set status="inserted";
status="inserted";
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(status);
【讨论】:
以上是关于如何停止 Servlet 从 Html 重定向的主要内容,如果未能解决你的问题,请参考以下文章
如何保护 Django 中的静态 HTML 文件? (重定向前需要登录)