1

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

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>
4

0 回答 0