我是java和jsp文件的新手。我有一个应用程序,它使用java类定期从设备下载数据,并将其发送到jsp文件中:
<div id="showtime">
<%
out.print(download.show[0]); <---- this is public table in java class download
%>
</div>
我的问题是:有没有什么方法可以用来刷新从java类中获取的值,而不刷新整个页面或重新设置会话超时倒计时?
编辑:我尝试了一些AJAX的解决方案,但它不起作用,我不知道我在哪里犯了错误:
<script>
function dateup(){
$.ajax({
type: "GET",
url: "${pageContext.request.contextPath}/update",
success: function(response){
$('#showtime').html(response);
alert("success");
},
error: function () {
alert("not success");
}
});
}
</script>
Servlet更新:
@WebServlet(name = "update")
public class update extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String text = "some text";
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(text);.
}
}
映射:
<servlet>
<servlet-name>update</servlet-name>
<servlet-class>servlets.update</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>update</servlet-name>
<url-pattern>/update</url-pattern>
</servlet-mapping>
我将<div>
更改为:<div id="showtime"></div>
按钮触发功能:<button onclick="dateup()">press here</button>
但它不起作用。不会改变它的上下文。这既不会触发成功函数,也不会触发错误函数。
"JSP是一种服务器端技术,这意味着如果您想刷新页面,您必须向服务器执行请求,服务器将返回新页面。仅仅通过普通的JSP机制返回页面的一部分是不可能的。
如果您只想刷新一个值,则需要使用javascript对服务器进行ajax调用,以获取所需的数据,并用这些数据重新填充该值">