使用计时器的HTTP请求/响应



我正在实现一个小型Web应用程序。每1秒钟,应处理用户输入,并且页面上显示的结果(响应值)。

该体系结构的代码如下,但是如何实现将调用请求的计时器?

结果的显示不应导致页面刷新 - 否则,文本框中的值将丢失。

**随访[重复]问题不仅是根据经过的计时器来询问处理请求,而且还询问了在录取了一些"提交数据"后将响应显示回响应的端到端效果 - 在重复问题链接中丢失,并且是基础问的问题。

JSP (Default.jsp)

 <html>
      <head></head>
        <body>        
          <br /> Input: <input type="text" id="input" />
          <div id="theResponse"></div>
      </body>
 </html>

javascript (myScript.js)

 $(document).ready(function() {
        $('#input').blur(function(event) {
            var name = $('#input').val();
            $.get('MyServlet', {
                input: inputData
            }, function(responseText) {
                $('#theResponse').text(responseText);
            });
        });
    });

servlet (myservlet.java)

package test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet 
{       
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException 
    {
            String input= request.getParameter("input");
            if (input.equals("")) {
                    input= "cannot be empty";
            } else {
                    //do some work ... 
                    input= "ACK";
            }
            response.setContentType("text/plain");
            response.getWriter().write(input);
    }
}

Web配置(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Landing page</display-name>
  <welcome-file-list>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>test.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet/*</url-pattern>
  </servlet-mapping>
</web-app>

我不确定,但是您只需要在下面的JS代码中添加setInterval

myFunction(){
        $.get('MyServlet', {
                input: inputData
            }, function(responseText) {
                $('#theResponse').text(responseText);
            });
}
$(document).ready(function() {
        $('#input').blur(function(event) {
            var name = $('#input').val();
            setInterval(myFunction,time You want );
        });
    });

最新更新