1.遇到的问题
数据库中的时间格式是datetime
实体类的时间类型
2.解决办法
方法一:不用修改servlet,在jsp文件的头部添加以下代码
在需要显示时间的位置添加以下代码
当前时间:
function getTime(){
var url = "${pageContext.request.contextPath}/AjaxTimeServlet?time"+new Date().getTime()
$("#getTime").load(url);
}
这样在显示的时间就是:
方法二:不用修改jsp文件,直接在servlet中修改时间格式
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Temperature temperature = new Temperature();
ImplTemperatureDao implTemperatureDao = new ImplTemperatureDao();
try {
//读取数据
temperature =implTemperatureDao.findTemperatureById();
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = myFmt.format(temperature.getTime());
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(time);
} catch (SQLException e) {
e.printStackTrace();
}
}jsp文件源码:
pageEncoding="UTF-8"%>
Insert title here数据库获取的时间:
function getTime(){
var url = "${pageContext.request.contextPath}/AjaxTimeServlet?time"+new Date().getTime()
$("#getTime").load(url);
}
$(document).ready(function () {
setInterval("getTime()",1000);
//setInterval这个函数会根据后面定义的1000既每隔1秒执行一次前面那个函数
});
这样显示的时间是:
总结:
原因:java时间字段是date类型的(util),mysql数据库字段类型是datetime。
两种方法都能够解决从数据库读取时间时,时间参数后多了一个.0的问题,用哪一个自己可选。