如何从javascript发送请求到servlet?

时间:2013-10-21 09:12:51

标签: java javascript jsp tomcat servlets

我有一个带有Javascript文件的jsp。

如果我点击OK按钮,我会调用一个javascript方法。此方法检测id。 我想将此id发送到我的servlet。在我的servlet中,我想用getParameter(id)获取id:

知道我的问题: 我在我的本地机器上实现了它,它运行良好。但是,如果我在服务器上部署我的源Coude,将调用javascript方法并且将很好地检测id,但该方法不会向我的servlet发送请求。

   <script language="text/javascript">


        function removeLink(){   
            var  id=''; 
            var tmpcounter=0;
            var check=0;
            for (var counter = 0; counter < (document.getElementsByName("inProject[]").length); counter++) {
                if (document.getElementsByName("inProject[]")[counter].checked) {   
                    tmpcounter = tmpcounter+1;
                 }
            }


          for (var zaehler = 0; zaehler < (document.getElementsByName("inProject[]").length); zaehler++) {
            if (document.getElementsByName("inProject[]")[zaehler].checked) {
                check++;
                if((check == tmpcounter) || (tmpcounter==1)){
                    id += 'id='+ document.getElementsByName("inProject[]")[zaehler].value;
                }else{
                    id += 'id='+ document.getElementsByName("inProject[]")[zaehler].value +' OR ';
                }

             }

          }
                    alert(id);
                    location.href='<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement=' + id;   

                    close();


        }

        //-->
    </script>

这是我的OK按钮:

<td align='right'><a class='funktion' href='javascript:removeLink();'>OK<IMG src="<%=request.getContextPath()%>/issuedb/system/layout/funktionpfeil.gif" width="14" height="9" border="0"></a></td>

在我的服务器上,该函数将被调用并且我很好地检测到id,但是此代码行不起作用,它将请求发送到我的servlet

location.href='<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement=' + id;

2 个答案:

答案 0 :(得分:0)

为此目的使用Jquery ajax,这很简单方便。您需要做的就是使用jquery插件。

function removeLink(){   
     $.ajax({
     url: "<%=request.getContextPath()%>/issues?action=uploaddeletelink&wherestatement="+id,              
     type: "POST", 
     success: function(data){
      //If you want to return anything in jsp.
       } 
     });
 }

希望这会有所帮助..

答案 1 :(得分:0)

使用AJAX来调用servlet。从servlet获取响应。

  var xmlHttpReq = false;


if (window.XMLHttpRequest) {
   xmlHttpReq = new XMLHttpRequest();
}

else if (window.ActiveXObject) {
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open('POST', strURL, true);
xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 xmlHttpReq.onreadystatechange = function() {
    if (xmlHttpReq.readyState == 4) {
        alert(xmlHttpReq.responseText)
    }
}
xmlHttpReq.send();