1

私は以前にこの質問を試みましたが、ほとんど成功しませんでしたが、それはおそらく私のせいなので、できるだけ具体的にします!

パート A) hello world 文字列を返すコンパイル済みの Java クラスがあります。このファイルのソース コードは次のとおりです。web.xml 設定を構成した後、localhost を指すブラウザーから良い結果を得ることができます。これは計画どおりに機能しています。

パート B) リンクを 1 つ含む HTML ランディング ページがあり、クリックするとローカル テキスト ファイルが読み込まれ、その中のコンテンツが置き換えられます。こちらも予定通り順調に進んでいます。

パート A は、クライアントがサーバー側の Java クラス ファイルを呼び出して出力を取得できることを意味します。パート B は、ボタンが押された後に Web ページの一部を置き換えることができることを意味します。

私の質問は、この時点から非常に簡単です。パート B からのリンクが押されたときに、更新されたテキストがパート A からの「hello world」結果セットを反映するように、2 つの概念をマージしたいと思います。

前もって感謝します。

パート 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