簡體   English   中英

從JavaScript調用Servlet

[英]Calling Servlet from JavaScript

我打算在JavaScript中調用一個函數,然后在單擊<input type="image">單擊Servlet。

JSP:

<head>
    <script type="text/javascript">
        function callServlet() {
            document.location.href="test-servlet.jsp";
        }
    </script>
</head>

<body>
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    ...
    <input type="image" name="submit"
        src="https://www.paypalobjects.com/webstatic/en_US/btn/btn_buynow_pp_142x27.png"
        onclick="callServlet()" alt="PayPal - The safer, easier way to pay online!">
    </form>
</body>

Servlet( test-servlet.jsp ):

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    out.println("<h1>TestServlet called successfully!</h1>");
}

上下文根: http://localhost:8080/mysite/test-servlet.jsp

但是,當我單擊圖像按鈕時,什么也沒有發生。 我是JavaScript新手。

試試這個代碼

<a href="#" onclick="callServlet()"><img
    src="https://www.paypalobjects.com/webstatic/en_US/btn/btn_buynow_pp_142x27.png"
    alt="PayPal - The safer, easier way to pay online!"></a>

編輯:

最后,我們發現應該映射一個沒有擴展名的servlet,並使用doGet方法從javascript獲取請求。

我可以在您的jsp中看到多個錯誤。

首先 ,

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">

並像羅馬人所說的那樣使用帶有buttonimg標簽

提交表單時,該action的url被稱為

因此,請嘗試將其替換為

<form action="./test-servlet" method="post">

並立即使用您的JavaScript,

您不能使用window.location.href發出POST請求。 使用window.location.href檢查通行證數據

<script type="text/javascript">
    function callServlet() {
        document.forms[0].submit;
    }
</script>

暫無
暫無

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

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