我之前尝试过这个问题但收效甚微,但这可能是我的错,所以我会尽可能具体!
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>