如何隐藏,修改屏蔽tomcat版本号号

如何查看tomcat的版本 - jay.windows - 博客园
linux 下进入tomcat安装文件夹的bin目录下 执行./version.shwindows下进入tomcat安装文件夹的bin目录下 执行./version.bat&不用先把tomcat启动再在浏览器里面查看了&#183;~~ &<span style="font-size: 14 color: #.Dynamic web module
2.J2EE& Web modules
3.Tomcat version
4.&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&& &&& &/xml/ns/javaee/web-app_3_0.xsd"&& &id="WebApp_ID" version="3.0"&今天做一个项目,组长给了源码,然后说build之后放在tomcat里面然后就能跑了,听起来很简单,但是并不是
我用了tomcat6,结果试了n多次,都不行,后来组长发了一个他用的,是tomcat5.5,折腾了很久终于跑起来了,
大概原因是由于上面的2,3,4不兼容的原因,具体为什么不兼容不清楚
<span style="color: #.是web.xml的里面的,这里定义了版本是3.0(我自己家里的项目),我遇到的问题是版本是2.4的,折腾了很久不行的原因是
Tomcat version 5.5 only supports J2EE 1.2, 1.3, 1.4 Web modules
我用了tomcat6,就不对了
把一个简单的项目是可以直接改变其Dynamic web module,然后直接用tomcat救能跑了,
具体则么做参见
但是如果是复杂的项目比如把jsp打成了一个war包把java代码打成了一个war包,然后这种方法就不适用了,就要用远程调试了.
其次还要还要设置
&Context&元素的属性: path:指定访问该Web应用的URL入口。 docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于&Host&的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。(指定项目所在地址) reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
&Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="/cms" reloadable="true"&&/Context&
出处:http://blog.csdn.net/dreamsky_boy/article/details/5319423
bin/catalina.bat中搜索set CATALINA_OPTS设置
set CATALINA_OPTS= -Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y
启用调试特性
启用JDWP实现,它包含若干子选项:
transport=dt_socket
JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=8000
JVM在8000端口上监听请求。
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
y表示启动的JVM会暂停等待,直到调试器连接上。
suspend=y这个选项很重要。如果你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。
Tomcat version 5.5 only supports J2EE 1.2, 1.3, 1.4 Web modules
Tomcat version 6.0 only supports J2EE
1.2, 1.3, 1.4, and Java EE 5 Web
http://blog.csdn.net/spring_model/article/details/
阅读(...) 评论()tomcat版本升级带来的编码问题 - 咖啡人生的专栏 - CSDN博客
tomcat版本升级带来的编码问题
tomcat版本升级带来的编码问题
前几天在定位一个中文乱码的问题,尝试使用了几种方式,包括设置tomcat server.xml中的属性URIEncoding为UTF-8、在项目web.xml文件中使用Spring的CharacterEncodingFilter设置属性encoding为UTF-8作为整个项目的filter,甚至查看了Linux的环境变量(UTF-8)编码,也无济于事,这个问题怪异的地方在于:这个搜索接口的中文字符的编解码方式代码已经很久没有动过了,按道理来说不应该会出现问题,生产环境中中文搜索也没有出现问题,偏偏在测试环境出现了中文乱码的问题,一时之间毫无思路。
查看代码时发现如下的代码片段:
String word = request.getParameter("keyword");//keyword=中文
String keyword = new String(word.getBytes("ISO-8859-1"),"UTF-8");
调试发现keyword的值为 ?? ,很明显是因为编码不对导致乱码,断点调试发现变量word值已为”中文”,根本不需要再做编码转换,当然,要解决当前环境的乱码问题已经很简单了,就是直接去掉不需要的编码转换逻辑即可,但是考虑到生产环境中这种逻辑是没有问题的,中文字符并没有出现乱码的情况,一时之间不敢乱改,后来咨询了组内的同事,他们建议再观察下,可以加上一个开关来控制是否需要做编码转换,虽然这种方式有点挫,但是当时考虑到版本快要上线了,时间紧急,实属无奈之举,在编码转换前加了一个开关控制的逻辑,代码片段类似这种:
if(isEncodeOpen())
keyword = new String(word.getBytes("ISO-8859-1"),"UTF-8");
上线时开关是开启的,即是允许做编码转换的,怀着忐忑的心情等待版本上线,上线后验证了下相关的搜索接口,发现一切正常,中文搜索没有问题!!!
一句话总结就是:真是奇了怪了。。。但是因为当时比较忙,看着相关功能正常也就没有太多去关注这个问题了,但是总是有一种如鲠在喉的感觉。
这两天终于有空可以回溯下这个问题的根源了。
乱码产生的原因:解码时采用的encoding和编码时采用的encoding不一致造成的
这里有两个问题:
为啥在做编码转换时写死由ISO-8859-1转换为UTF-8?
同样的代码,为啥生产环境没有问题,测试环境会出问题?
排查原因时主要分析了以下三个方面:
项目是否使用了统一的编码filter
搜索接口是否设置了单独的编解码方式
tomcat的版本以及server.xml文件的配置
关于第一点,项目设置统一编码filter的问题,在项目的web.xml中是有设置统一的编码filter,代码片段如下:
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
因此排除第一个问题的疑问。
同样在查看搜索相关的代码时也没有发现有针对搜索接口做单数的编码设置,类似request.setCachacterEncoding(“ISO-8859-1”)之类的代码。
针对第三个问题,当在百度和Google搜索中文乱码问题时,大部分的答案都是说在tomcat的server.xml文件中设置URIEncoding=UTF-8即可解决乱码的问题,尝试过后无果,依旧乱码,后来尝试去比较了下生产环境跟测试环境server.xml文件的配置,也没有发现有编码设置相关的差异,但是在比较过程中发现了一个很重要的不同– tomcat版本不一致,生产环境的tomcat版本是7.x的版本,而测试环境的tomcat版本是8.x版本。
顺着上面的思路,既然网上有人说设置URIEncoding可以解决中文乱码的问题,那么就要看下tomcat7.x跟8.x版本对该属性URIEncoding是否存在不一样的地方,如果不设置,默认的值是否不一样?
首先先看下是如何设置URIEncoding属性的:
&Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
查看tomcat 官方文档时发现关于URIEncoding的相关说明:
Default URL encoding
The default value of URIEncoding attribute for HTTP and AJP connectors has been changed from “ISO-8859-1” to be “UTF-8” (if “strict servlet compliance” mode is off, which is the default). This setting specifies what character encoding is used to decode ‘%xx’-encoded bytes in path and query of a request URI.
If server is configured with “strict servlet compliance” on, the default value of URIEncoding attribute of connectors is “ISO-8859-1”, the same as in older versions of Tomcat.
大意是tomcat由7.x版本升级到8.x版本时,默认的URL编码方式由ISO-8859-1变为UTF-8,看到这里应该可以解决这次有关中文乱码的疑问了。
更详细的来看下tomcat官方文档在7.x和8.x版本对URIEncoding属性的说明:
URIEncoding
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, UTF-8 will be used unless the org.apache.catalina.STRICT_SERVLET_COMPLIANCE system property is set to true in which case ISO-8859-1 will be used.
大意是如果不设置属性org.apache.catalina.STRICT_SERVLET_COMPLIANCE=true,那么默认的编码方式会是UTF-8。
URIEncoding
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
大意是如果不设置的话,那么默认的编码方式会是ISO-8859-1.
看到这里,我想我上面提出的两个问题已经可以很好的解释了.
1.代码写死ISO-8859-1转换为UTF-8,是因为tomcat7.x版本默认的编码方式ISO-8859-1,因此需要做相应的转换
2.同样的代码,生产环境没有问题,测试环境有问题,是因为测试环境升级了tomcat的版本为8.x版本,而生产环境未做升级,仍为7.x版本,两个版本关于URIEncoding属性的默认值不一样,7.x默认是ISO-.x默认是UTF-8。
现在想想,当初加开关是正确的选择,可以完美解决tomcat版本不一致带来的编码问题。。。哈哈哈
不过仍然有很多值得总结的地方:
1.环境不一致:测试环境跟生产环境tomcat版本应该要保持一致,可以及时发现和预防tomcat版本升级带来的问题,当然也不仅仅是tomcat的版本,包括MySQL、JDK等的版本都应该保持一致。
2.代码写死编码转换方式,这种做法并不是很好,应该通过配置文件的方式来配置相关的属性值,可以通过tomcat容器的配置或者项目自身的配置来实现。
3.版本升级一定要看官方文档说明,看是否存在升级指导、changlog之类的文档,有问题查看官方文档才是正解。
4.关于编码,最好统一设置成UTF-8,不要采用默认的编码方式,显式的将编码方式设置成UTF-8,这样就不会因为版本升级或者环境变更带来编码的问题,同时也不会出现上面那种ISO-8859-1转换为UTF-8编码的代码了~
我的热门文章怎么查看tomcat的版本,linux查看tomcat版本,怎样查看tomcat版本,如何查看tomcat的版本信息,隐藏tomcat版本信息
上传时间: 来源:
打开目录,进入到tomcat的主目录下: 打开cmd,把version.bat拖入到cmd中,点击执行,就可以看到当前,你的tomcat的版本号和一些相关的信息了. 如何查看Apache tomcat的...
不同的tomcat版本有不同的特性,有时候,一点小小的版本差异,就是环境搭建失败的根本原因。本经验主要介绍在windows下,如何查看tomcat的版本号。安装了tomcat server的操作系统。1a. 进入tomcat安装目录中的bin目录。
这个文件目录中有catalina.bat,以及version.bat文件。b. 在文件目录地址栏中输入cmd命令。c. 在命令命令提示符中输入&catalina version& 或者“version”。便可以查到当前的版本号。步骤阅读步骤阅读2将tomcat_install/bin目录加入到path路径中。如果想在tomcat安装目录下,使用&catalina version&或者“version”命令tomcat版本,则需要将tomcat_installdir/bin这个目录放在环境变量path中。步骤阅读步骤阅读3如果想在任意目录运行“catalina version”或者&Version&命令,则需要在环境变量中配置catalina_home。步骤阅读步骤阅读END1进入tomcat安装目录。其中bin目录下没有catalina.bat文件,也没有version.bat文件。同时反观绿色版tomcat,也没有uninstall文件。所以对于Services的tomcat,我们通过uninstall.exe这个文件来查看版本步骤阅读2a.右击uninstall.exe,选择属性b. 找到详细信息的tab框。里面可以查到tomcat的版本。步骤阅读步骤阅读END在Linux下,查询tomcat的命令不变。linux下一定要有以.sh结尾的version.sh文件本文图示基于windows 2012 OS的tomcat 7生成。
在你的Tomcat安装目录下面有个logs文件夹把里面的文件按日期从大到小排个序,找最上面的文件打开看,应该就可以找到你要看的信息
进入到tomcat安装bin目录下 ,执行如下脚本即可看到。
./version.sh
一般来说,在tomcat启动时就会有版本信息,如:信息: Initializing Coyote HTTP/1.1 on http--6 16:38:09 org.apache.catalina.startup.Catalina load信息: Initialization ... ?解析Tomcat之HttpServlet(截图记录) ? 今天来关注一下,tomcat的类加载器相关的...
本文标题:
本文地址:
查看更多>>
上一篇文章:
下一篇文章:}

我要回帖

更多关于 怎么查看tomcat版本号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信