gpt4 book ai didi

Javascript 到 Java Web 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:32 25 4
gpt4 key购买 nike

我正在尝试在 Eclipse 中做一个简单的 Web 项目。我的目标是让 .jsp/html 文件作为表示层,用 JavaScript 来处理逻辑,用 Java 来处理服务器端的内容。对于我的简单测试,我只想让我的 javascript 代码能够联系 Web 服务器并让 java 代码返回一个日期。这是我现在所拥有的(注意我只显示“问题”部分)

.jsp(定时器.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 是错误的,并且可能是问题所在。所以本质上,我的目标是让 header id“date”从 javascript 获取日期,然后 javascript 将从 java servlet 获取该值。

如果有人能给我指出正确的方向,无论是资源,还是你有什么,那就太好了。谢谢!

编辑:这是我使用的最终代码。经过几个小时的尝试找出问题所在... Eclipse 中没有提到有关右键单击 HTML 并在服务器上运行为的信息。这是一个令人羞辱的错误,但我永远不会再忘记这个错误。

这是我用来返回简单日期字符串的代码:

.jsp(定时器.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");
}

最佳答案

至少有两个问题。

首先:Servlet 的结果是由 Timer.jsp 呈现的。 Timer.jsp 不会对 servlet 请求中存储的日期执行任何操作。如果您只想让 servlet 返回格式化的日期,则不需要转发到 JSP。只需将日期写给回复的作者即可。

第二:在发送请求之前,您的 JavaScript 代码会尝试使用响应的内容更改 header 的innerHTML。这是行不通的。我的建议是,使用 jQuery 及其 AJAX 函数,使 JS 代码更易于编写和理解,并可在浏览器之间移植:

$('#date').load('CoopTimer');

关于Javascript 到 Java Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com