如何从另一个页面触发服务器发送的事件?

时间:2018-06-30 11:34:28

标签: java servlets server-sent-events

基本上,我想做的是有一个with表单输入,它将数据发送到服务器。另一个页面将列出发送到服务器而不重新加载的数据。

input.html

<form action = "Server.html" method="post">
    <input type="text" name="data" />
    <input type="submit">
</form>

Server.html

response.setContentType("text/event-stream");   
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();

String data = request.getParameter("data");

if(data!=null){         
    writer.write("data: "+ data +"\n\n");
    writer.flush();     
}

writer.close();

index.jsp

<p>data</p>
<div id="foo"></div>

<script type="text/javascript">
    start();
    function start() {

        var old='';
        var eventSource = new EventSource("Server.html");   

        eventSource.onmessage = function(event) {
            if(old!=event.data&&event.data!=""){
                document.getElementById('foo').innerHTML += "<p>"+event.data+"</p>";
                old=event.data;
            }       
        };      
    }
</script>

我想要的结果是将input.html发送的每个输入动态地加载到index.jsp。 我已经尝试过先将输入保存到bean中,不幸的是没有运气。

0 个答案:

没有答案