我正在使用EL(表达式语言)标签来显示我的JSP中的java代码中的值。不幸的是,更新这些值的唯一方法似乎是使用表单,它将httpRequests发送到servlet。用户还需要单击按钮才能发送此表单。我已经研究了几天如何自动更新这些值,而不强迫用户做任何事情。但我找不到一个解决方案,不涉及被弃用的scriplet。
有没有办法实现这个目标? 如果是的话,一个小例子对我有很大帮助,因为我对网络世界很陌生。
答案 0 :(得分:0)
感谢Alan Hay的评论,我终于找到了解决方案。你需要下载这个神奇的东西叫做#34; ajax"然后 RC你的项目 - > Propertys - > Java构建路径 - >图书馆 - >添加外部罐子 - >选择以前下载的Ajax.zip。
之后,我提出了以下代码。代码每3秒更新一次我在输入字段中写入的内容。
JSP
<script>
src = "http://code.jquery.com/jquery-latest.js"
var ajax_call = function() {
$(document).ready(function() {
var username = $('#user').val();
$.get('UpdateListsServlet', {
user: username
}, function(responseText) {
$('#TEST').text(responseText);
});
});
};
var interval = 3000; //Update every 3s
setInterval(ajax_call, interval);
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.cs" />
</head>
<body>
<form>
<input type="text" id="user" />
<div id="TEST"></div>
</form>
</body>
</html>
的Servlet
package ajax;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UpdateListsServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String name = null;
name = request.getParameter("user");
if(request.getParameter("user").toString().equals(""))
name="Hello User";
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(name);
}
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<!-- Welcome -->
<display-name>WebApp</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- Servlets -->
<servlet>
<servlet-name>UpdateListsServlet</servlet-name>
<servlet-class>ajax.UpdateListsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UpdateListsServlet</servlet-name>
<url-pattern>/UpdateListsServlet/*</url-pattern>
</servlet-mapping>
</web-app>