前端修改服务器网页源代码,网站后台数据库被手动修改后前端页面不更新的问题解决...

问题描述:网站前端用vue,后端用java mvc+tomcat服务器,数据库access。由于数据库为共享文件,可能被通过前端网页修改,也可能被手动修改,还可能被windows应用程序修改。通过前端网页修改时,页面可以正常显示修改后的内容。而如果页面查询一次数据后,再通过手动或其他windows程序修改数据库时,前端页面不会显示修改后的数据。

问题分析:经网上查询大量资料,有人说是页面缓存问题,但通过清除缓存、关闭页面、更换浏览器等方法都无法解决该问题,甚至更换另一台电脑打开网页也无法显示修改后的数据。甚至有人说该问题无法解决,只能通过重启tomcat服务器才行。重启服务器后,的确可以显示修改后的数据,但是作为服务器,怎么可以随便重启,数据随时都有可能被其他人用windows程序修改,服务器管理人员也不知道何时有人修改了数据啊。最后查到一位大虾说是服务器的缓存问题,分析得头头是道,然而却没有给出如何解决的方法。

问题的解决:通过上述大量资料查询,确定是服务器的缓存问题,不是网页缓存的问题,那么如何解决呢?我是通过将java mvc更改成spring boot框架来解决的,因为spring boot框架能非常方便快捷地进行服务器缓存管理,具体方法如下:

1、在pom.xml中添加ecache依赖,如下:

net.sf.ehcache

ehcache

org.springframework.boot

spring-boot-starter-cache

2、在resource文件夹下新建一个application.yml文件,写下如下代码(注意缩进):

spring:

cache:

type: ehcache

ehcache:

config: classpath:/ehcache.xml

3、在resources目录下新建ehcache.xml,写下如下代码(里面的注释已说明了各个代码代表的意义),其中myCache是缓存的名称,需要在后续的controller中用上:

timeToIdleSeconds=”600″ timeToLiveSeconds=”600″ overflowToDisk=”true” />

timeToIdleSeconds=”60″ timeToLiveSeconds=”120″ overflowToDisk=”true” />

4、在controller中使用缓存,以下是示例代码:

@Controller

public class Staff {

@Autowired StaffDao dao;

@Cacheable(value=”myCache”)

@RequestMapping(value = {“/AllStaff”,”/allstaff”})

@ResponseBody

public List findAll() {

List staff=null;

try {

staff=dao.getAllStaff();

} catch (Exception e) {

e.printStackTrace();

}

dao.closeConnection();

return staff;

}

}

标签:ehcache,缓存,spring,数据库,修改,后台,服务器,页面

来源: https://www.cnblogs.com/wwwzgy/p/14634630.html

    原文作者:富叔
    原文地址: https://blog.csdn.net/weixin_29476595/article/details/119628961
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞