繁体   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