2012-02-27 65 views
1

我使用servlet作为我的服务器发送更新到我的JSP客户端(使用HTML5 SSE)。这是我的JSP代码使用servlet作为服务器进行服务器发送的事件(SSE)

<script type="text/javascript"> 

    if(typeof(EventSource)!=="undefined") 
     { 
     var source=new EventSource("/server"); 
     source.onmessage=function(event) 
     { 
     document.getElementById("news1").innerHTML+=event.data + "<br />"; 
     }; 
     } 
    else 
     { 
     document.getElementById("news1").innerHTML="Sorry, your browser does not support server-sent events..."; 
     } 
     </script> 

这是我的servlet代码

公共无效的doPost(HttpServletRequest的请求,HttpServletResponse的响应){

try{ 
    System.out.println("Begin for session: " + request.getSession(true).getId() + " " + response.getWriter()); 
response.setHeader("pragma", "no-cache,no-store"); 
response.setHeader("cache-control", "no-cache,no-store,max-age=0,max-stale=0"); 

response.setContentType("text/event-stream"); 

PrintWriter out = response.getWriter(); 

int messagesSent = 0; 
while (true) { 
    out.print("data: {" + messagesSent++ + "}\n\n"); 
    out.flush(); 
    }} catch(Exception e){System.out.println(e);} 

有没有从服务器响应。我已经在jboss中部署了我的servlet,并且这个servlet根本不被jsp文件调用。 servlet开始处的print语句未执行。

回答

2

您可以直接,即不从的JavaScript脚本访问servlet?

你需要仔细检查第一,无论从JavaScript调用这个Servlet的访问。

相关问题