tomcat6 vs tomcat7

2024-02-28 20:32
文章标签 vs tomcat7 tomcat6

本文主要是介绍tomcat6 vs tomcat7,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 Tomcat6 vs Tomcat7

试用 Tomcat7.x 与 Tomcat6.x 的明显不同 + Context 填写方法 + 默认应用配置方法

http://blog.csdn.net/shanelooli/article/details/7408675

 

Tomcat7 与tomcat6之间得区别---${new.title}

http://my.oschina.net/7shell/blog/57349

 

Tomcat6--> Tomcat7记录tomcat迁移出现的问题

http://www.cnblogs.com/huxiaoyun90/archive/2013/04/29/3050649.html

 

Tomcat6 Tomcat7对比测试

http://blog.csdn.net/yydcj/article/details/8487037

http://www.oschina.net/question/86179_9487

 

Tomcat 7 热部署配置

http://linhao315.iteye.com/blog/1341489

 

使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool

http://www.oschina.net/question/12_36910

 

Tomcat7 七大新特性和新增功能

http://cuizhihua.iteye.com/blog/1905962

http://andrius.miasnikovas.lt/2010/07/whats-new-in-tomcat-7/

http://developer.51cto.com/art/201006/208440.htm

 

 

 

1. tomcat 7对EL表达式的语法要求比较严格,例如"${new.title}", 因包含关键字new就会导致解析出错。

这个时候为我们可以修改配置文件,忽略关键词的设置:修改tomcat属性,忽略对EL表达式的关键字检查:

修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。

另外,& 在url重写中需要修改为&要不然会报错

 

2. 关于数据库驱动程序加载。受数据库驱动异常困扰的同胞们,Tomcat7 下边因为 Tomcat 限定了类加载执行时静态代码的执行,需要在生成对象的时候才能够真正执行,所以在 Tomcat6 以前大家熟悉的数据库驱动程序加载方式:

  1. Class<?> cls = com.mysql.jdbc.Driver.class;  

或者

  1. Class.forName("com.mysql.jdbc.Driver");  

都已经不能用了。在使用 DriverManager 生成的数据库连接的时候,会出现“No suitable driver found for jdbc”这个异常。

 

现在正确的数据库驱动程序加载方式,要求生成数据库驱动类的对象。推荐 

  1. com.mysql.jdbc.Driver.class.newInstance();  

这种方式不用处理异常,而且生成的无用对象会最短时间被垃圾回收。

 

当然了,也可以用一个引用类型变量把此对象接出来,但没有什么实际用途吧……  

  1. java.sql.Driver driver = com.mysql.jdbc.Driver.class.newInstance();  

其中 java.sql.Driver 是各个数据库管理系统提供的驱动程序类的接口,属于 JDBC 规范,适合用 import java.sql.Driver; 进行缩写。 

 

3. 线程启动的问题。因为 Tomcat7 或者 -server 方式运行的爪哇虚拟机(JVM)的一些我尚未掌握的保护机制,所以当一个线程经历空循环时,就会被架空。  

  1. while(flag) { }  

于是通过 flag 作为线程控制变量的控制方法,就没办法继续使用了。这个时候,要时常跳过这个人工卡死的线程,以便其能够总在执行而不会真的陷入僵死。 

 


  1. while(flag) { Thread.yield(); }  

 

3. org.apache.catalina.mbeans.ServerLifecycleListene问题描述:java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener

发现居然找不到这个类,然后把catatina.jar下载下来反编译一看mbenas这个文件夹居然是空的

解决办法:

tomcat 6.0.18以前,conf/server.xml里面的配置有这项

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />注释掉就可以了 

<!--<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> -->

 

4. taglib definition not consistent with specification version

问题描述:java.lang.IllegalArgumentException: taglib definition not consistent with specification version

tomcat 6.0.18里面的web.xml里面的tag配置如下:

 <taglib> 

        <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> 

        <taglib-location>/WEB-INF/c.tld</taglib-location> 

 </taglib> 

 

解决办法:

tomcat 7.0.25里面web.xml的tag配置应该如下所示

 <jsp-config> 

     <taglib> 

         <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> 

         <taglib-location>/WEB-INF/c.tld</taglib-location> 

     </taglib> 

 </jsp-config>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于tomcat6 vs tomcat7的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756538

相关文章

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

win7+ii7+tomcat7运行javaWeb开发的程序

转载请注明出处:陈科肇 1.前提准备: 操作系统:windows 7 旗舰版   x64 JDK:jdk1.7.0_79_x64(安装目录:D:\JAVA\jdk1.7.0_79_x64) tomcat:32-bit64-bit Windows Service Installer(安装目录:D:\0tomcat7SerV) tomcat-connectors:tomcat-connect

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

解决服务器VS Code中Jupyter突然崩溃的问题

问题 本来在服务器Anaconda的Python环境里装其他的包,装完了想在Jupyter里写代码验证一下有没有装好,一运行发现Jupyter崩溃了!?报错如下所示 Failed to start the Kernel. ImportError: /home/hujh/anaconda3/envs/mia/lib/python3.12/lib-dynload/_sqlite3.cpython-

VSC++: 括号对称比较

括号的使用规则:大括号,中括号,小括号{[()]};中括号,小括号[()];小括号();大括号、中括号、小括号、中括号、小括号、大括号{[()][()]};大括号,中括号,小括号,小括号{[(())]};大括号,中括号,小括号,小括号{[()()]};小括号不能嵌套,小括号可连续使用。 {[]}、{()}、([])、({})、[{}]、{}、[]、{[}]、[(])都属非法。 char aa[

Apache Kylin VS Apache Doris全方位对比

1 系统架构 1.1 What is Kylin1.2 What is Doris2 数据模型 2.1 Kylin的聚合模型2.2 Doris的聚合模型2.3 Kylin Cuboid VS Doris RollUp2.4 Doris的明细模型3 存储引擎4 数据导入5 查询6 精确去重7 元数据8 高性能9 高可用10 可维护性 10.1 部署10.2 运维10.3 客服11 易用性 11.1

vs环境下C++dll生成和使用

动态库和静态库: 动态库:全名动态链接库,用于将你的函数封装,让别人只能调用,不能看你的实现代码。由引入库和dll组成:引入库包含导出的函数和变量名,dll包含实际的函数和数据,运行时加载访问dll文件。  Windows API中的所有函数都封装在dll里面,最重要的三个: Kernel32.dll:包含管理内存、进程和线程的各个函数。User32.dll:包含用于执行用户界面任务,如窗口和

VS Code与SVN关联

VS Code是一款轻量级的集成开发环境,可通过安装插件与SVN进行关联。以下是将VS Code与SVN关联的步骤: 安装SVN插件:在VS Code中打开Extensions(快捷键:Ctrl+Shift+X),搜索并安装"svn"插件。 安装SVN命令行工具:在计算机上安装SVN命令行工具,确保在命令行中可以运行svn命令。 配置SVN路径:在VS Code中打开用户设置(快捷键:Ct

学习记录-VS踩坑记录

一、安装VS2015后,CMAKE执行错误: CMAKE_C_COMPILER-NOTFOUND" was not found.   CMAKE_CXX_COMPILER-NOTFOUND" was not found.  环境: 1.公司内网,无法上外网; 2.文件加密系统; 3.数字公司杀毒软件; 解决方法: 清理环境,添加USBwifi,安全模式卸载数字软件; 1.设置环

面试题41:和为s的两个数VS和为s的连续正数数列

问题说明: 1.和为s的两个数问题是从一个排序的数组中找出和为s的两个数; 2.原题是找出一个即可,现在全部找出; 3.和为s的连续正数数列是给定一个数找出所有连续正数数列的和为s,例如s为9,(2,3,4)就是其中一组。 (一)和为s的两个数问题 public static int findNumbersWithSum(int[] sorted, int fromIndex, in