jsp在tomcat中解析为xxx_jsp.java和xxx_jsp.class文件,为缓存,在../tomcat/work/Catalina/..目录下,所以单独更新jsp文件时需要清除这些缓存。单独更新js文件就不需要这么做了。
一.更新jsp文件
1.定位jsp的目录。
jsp在项目里的目录与在服务器tomcat里的目录有一定的对应关系,要找到服务器里的jsp进行替换,就需要先找到本地项目里jsp的目录,以便定位判断。
如本地项目jsp目录:/app/src/main/webapp/weixin/redirectUrl.jsp
其中路径中的"app"为项目名
2.从eclipse中导出war包,用360打开,依据上一步定位找到的jsp,拖拽到桌面
为什么要这么做?
因为服务器上的jsp是经过编译的,导出的war里的jsp也是编译过的,但你项目里的jsp不是,所以直接用项目里的jsp替换服务器上的会出现一些变量未识别的问题,但是导出的war里的jsp是经过编译的可安全替换到服务器。
比如导出war包后,会把jsp里的一些变量解析成真实值,如一些项目路径
例:项目里你写的jsp可能会用到如下路径来引用js:
<script src="${web.context.path}/style/js/form-validation.js"></script>
变量${web.context.path}服务器是无法识别的,需要编译成真实的值。
但导出的war里,它就变成了真实的路径:
<script src="/app/style/js/form-validation.js"></script>
此路径服务器是可识别的,真实情况是服务器上对应的jsp就是这样经过编译的。
3.把此jsp上传到服务器指定目录
如:服务器上传目录 /home/weixin
4.根据第一步定位的本地项目的jsp目录,cd到此jsp在服务器的目录,备份此文件
如:服务器目录 /usr/local/weixinapp/tomcat/webapps/app/weixin
5.把第三步中上传到服务器的jsp移动到服务器此jsp目录,覆盖掉原jsp
6.cd到tomcat缓存jsp的目录,在../work/Catalina/目录下
如:/usr/local/weixinapp/tomcat/work/Catalina/localhost/app/org/apache/jsp/weixin
7.删除此jsp缓存文件
jsp缓存文件有两个,格式xxx_jsp.java和xxx_jsp.class文件
对照以上步骤,给出具体操作步骤:
项目中的jsp路径:/app/src/main/webapp/weixin/redirectUrl.jsp
步骤:
cd /usr/local/weixinapp/tomcat/webapps/app/weixin
cp redirectUrl.jsp redirectUrl.jsp.bak2018-12-6
mv /home/weixinapp/redirectUrl.jsp .(注意此行命令最后有一个点,表示将文件移动到当前目录,请看仔细了)
cd /usr/local/weixinapp/tomcat/work/Catalina/localhost/app/org/apache/jsp/weixin
rm -rf redirectUrl_jsp.*
二、更新js文件
相比更新jsp文件,更新js文件就少了最后清除work目录下缓存的步骤,其他一致,因为js没有缓存,即时更新即时生效。
直接上具体步骤:
项目中的js路径:/portal/src/main/webapp/content/js/column.js
步骤:
cd /opt/tomcat/webapps/portal/content/js
cp column.js column.js.bak2018-12-6
mv /home/portal/temp/column.js .(注意此行命令最后有一个点,表示将文件移动到当前目录,请看仔细了)