我目前正在尝试在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