我目前正在嘗試在eclipse中做一個簡單的Web項目,我是全新的,所以與我一起裸露。我的目標是讓一個.jsp/html文件成爲一個表示層,用來處理邏輯的javascript,以及用於處理服務器端的東西的Java。對於我的簡單測試,我只想讓我的javascript代碼能夠聯繫web服務器並讓java代碼返回一個日期。以下是我現在所擁有的(注意我只顯示 「麻煩」 的部分)JavaScript到Java Web應用程序
的.jsp(Timer.jsp):
<div ><h2 id="date" class="main"></h2></div>
的JavaScript(timer.js):
var xhr = new XMLHttpRequest();
document.getElementById("date").innerHTML = xhr.responseText;
xhr.open("GET", "CoopTimer", true);
xhr.send();
的Java:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
request.setAttribute("date", dateFormat.format(date).toString());
request.getRequestDispatcher("/Timer.jsp").forward(request, response);
}
中的JavaScript我肯定是錯誤的,可能是麻煩的區域。所以基本上,我的目標是讓標題id「date」從javascript獲取日期,而javascript將從java servlet獲取值。
如果任何人都能指引我走向正確的方向,無論是資源,你有什麼,這將是非常棒的。謝謝!
編輯:這是我使用的最終代碼。經過數小時的試圖找出什麼是錯的......在eclipse中沒有提到右鍵單擊HTML和運行方式在服務器上。一個侮辱性的錯誤,但我永遠不會再忘記。
這裏是我用來返回一個簡單的日期字符串代碼:
的.jsp(Timer.jsp):
<div ><h2 id="date" class="main"></h2></div>
使用Javascript(timer.js)
$("#date").load("http://127.0.0.1:14949/CoopTimer/CoopTimer");
的Java :
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(date.toString());
//System.out.println("PING");
}
我已經爲'servlets'添加了一個標籤。你應該看看我們在SO的文檔:http://stackoverflow.com/tags/servlets/info – 2013-04-05 14:51:29
如果你想發送一個AJAX請求,那麼你不想轉發到一個jsp,你需要寫直接到響應outputstream(可能是json)。 – 2013-04-05 14:52:24