javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js调用后台servlet

js调用后台servlet方法实例

作者:

今天做历史记录查询功能,遇到了前后台方法互相调用的问题,研究了一下,把成功经验记录一二。

1.使用document.form.action方式

相关源码如下:

*.js

[javascript]

复制代码 代码如下:

<span style="white-space:pre">  </span> document.getElementById("sendPerson").value = SendPerson;
 document.getElementById("currentTime").value = currentTime();
 document.getElementById("message").value = message;
 document.getElementById("recvPerson").value = recvPerson;
 document.chatform.action = "ToHistoryServlet";
 document.chatform.submit();
*.html

[html]
复制代码 代码如下:

<!--the tag below is the params to the userHistory  dml@2012.8.27-->
        <input type="hidden" name="sendPerson" id="sendPerson"> <input
            type="hidden" name="currentTime" id="currentTime"> <input
            type="hidden" name="message" id="message"> <input
            type="hidden" name="recvPerson" id="recvPerson">

注意的是,input需指定name属性,这么servlet才可以获取到参数值
*.java

[java]

复制代码 代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException { www.jb51.net

    String sendPerson = request.getParameter("sendPerson");
    String recvPerson = request.getParameter("recvPerson");
    String sendTime = request.getParameter("currentTime");
    String message = request.getParameter("message");
    Message msg = new Message();
    msg.setMessage(message);
    msg.setRecvPerson(recvPerson);
    msg.setSendPerson(sendPerson);
    msg.setSendTime(sendTime);
    HistoryHandle.addMessage(msg);
}

这个缺点是页面就跳走了,要是希望保持原页面,可以参照方法2

2.jquery调用后台方法

[javascript]

复制代码 代码如下:

$.ajax({
    type : "POST",
    contentType : "application/json",
    url : "ToHistoryServlet?sendPerson=" + SendPerson + "¤tTime="
            + currentTime() + "&message=" + message + "&recvPerson="
            + recvPerson,
    dataType : 'json',
    success : function(result) {
        alert(result.d);
    }
});

代码量小,使用方便,值得推荐。。。

您可能感兴趣的文章:
阅读全文