将Java Servlet连接到浏览器

时间:2013-06-18 16:52:55

标签: java javascript ajax servlets

我之前尝试过这个问题但收效甚微,但这可能是我的错,所以我会尽可能具体!

A部分) 我有一个编译的java类,它返回一个hello world字符串。该文件的源代码如下。配置web.xml设置后,我可以从指向localhost的浏览器中获得良好的结果。这完全符合计划。

B部分) 我有一个HTML登陆页面,其中包含一个链接,当按下该链接时,将读取本地文本文件并替换其中的内容。这也与计划完全一致。

A部分意味着我能够让客户端调用服务器端java类文件并获取输出。 B部分意味着我可以在按下按钮后替换网页的一部分。

我的问题,从这一点来说非常直截了当。我想合并这两个概念,以便当按下B部分的链接时,更新的文本将反映A部分的“hello world”结果集。

提前致谢。

A部分代码:

package mypkg;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
   @Override
   public void doGet(HttpServletRequest request, HttpServletResponse response)
               throws IOException, ServletException {

      response.setContentType("text/html;charset=UTF-8");

      PrintWriter out = response.getWriter();

      try {
         out.println("<!DOCTYPE html>");
         out.println("<html><head>");
         out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
         out.println("<title>Hello, World</title></head>");
         out.println("<body>");
         out.println("<h1>Hello, world!</h1>");  
         out.println("</body>");
         out.println("</html>");
      } finally {
         out.close();  
      }
   }
}

B部分代码

<p id="mySentence">
<a href="#" onclick="javascript:getNewContent();">Click here to update the page</a>.
When you click the link, this content will be replaced.</p>

<script type="text/javascript">
var http = createRequestObject();
function createRequestObject() {
    var objAjax;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        objAjax = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        objAjax = new XMLHttpRequest();
    }
    return objAjax;
}

function getNewContent(){
http.open('get','newcontent.txt');
http.onreadystatechange = updateNewContent;
http.send(null);
return false;
}

function updateNewContent(){
if(http.readyState == 4){
document.getElementById('mySentence').innerHTML = http.responseText;
}
}
</script>

0 个答案:

没有答案
相关问题