如何在不刷新页面的情况下将当前页面的URL发送到servlet

时间:2013-03-29 09:16:05

标签: java javascript ajax jsp

我想将当前页面的url发送到servlet而不刷新或重新加载页面。这是代码 -

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Action Onclick </title>

    <!--        <script>
                $('#contactForm').submit(function () {
                    alert('sdafjb');
                    return false;
                });            
            </script>-->
</head>
<body>

    <form id="contactForm" >
        <fieldset>
            <label for="Name">Name</label>
            <input id="contactName" type="text" />
        </fieldset>

        <fieldset>
            <label for="Email">Email</label>
            <input id="contactEmail" type="text" />
        </fieldset>

        <fieldset class="noHeight">
            <textarea id="contactMessage" cols="20"></textarea>


            <a href="#" onclick="document.getElementById('contactForm').submit();"> submit </a>
        </fieldset>

    </form>        
    <small id="messageSent">Your message has been sent.</small>

</body>

我的servlet名称是scriptservlet。请帮帮我......

4 个答案:

答案 0 :(得分:2)

AJAX用于与服务器通信而无需重新加载或更改浏览器中的当前页面。您应该能够只为服务器创建一个AJAX调用,并向服务器发送您想要的任何数据,而不会影响当前页面。

在正常情况下,AJAX调用仅限于“同源”,这意味着您只能与当前网页在同一域中的服务器进行通信,因此您还必须确保满足此安全限制。 / p>

答案 1 :(得分:1)

对servlet执行ajax调用,并通过对servlet执行(request.getRequestUri())来传递当前页面的Url。

var requestUri = '<% request.getRequestUri()%>';
var hostname = location.host;

$.ajax({
  type: "POST",
  url: "/scriptServlet",
  data: { "host": hostname, "uri": requestUri  }
  }).done(function( msg ) {
  alert( "Data Saved: " + msg );
 });

请注意,语法可能不正确但你必须制作一个ajax callt才能达到结果。

答案 2 :(得分:0)

这可以通过从服务器(servlet)将相应的响应代码(我猜是204)发送回客户端来实现。这样,即使提交了请求,页面也不会刷新/重新加载。

答案 3 :(得分:0)

您可以在表单中使用隐藏字段。

<input type="hidden" name="currentPage" value="<%=request.getRequestURL()%>">