0 起因
自己用的是Tomcat 9.0.69
,老师用的是Tomcat 9.0.87
。本以为都是9.0.x
,差别不会很大,但是老师演示的时候他没导入mysql包查询数据库的servlet就不能运行,而我的却可以,于是问了GPT,得到以下答复。
所以我把之前模块的mysql包复制到了WEB-INF/lib下,结果Tomcat反而启动都启动不了。
1 0KB的jar包
研究了半天才发现——不知道什么原因,复制的mysql包大小竟然是0KB!!!,导致了一系列意料之外的错误。
2 Tomcat 9.0.69与Tomcat 9.0.87
从自己的解决经历来看,有以下总结。
Tomcat 9.0.69
即使没在WEB-INF添加lib(jar包),也可以正常使用jdbc的代码,servlet查询数据库并显示执行也正常
Tomcat 9.0.87
没在WEB-INF添加lib(jar包),会在执行访问数据库相关的servlet时,报错如下:
解决上述报错(少jar包的错误)也很简单,直接把jar包放到WEB-INF/lib下就可以,不需要执行Add as Library...
,可能是Tomcat 9.0.87
自己会去那个目录下找包。
但是如果是正常写JDBC访问代码,比如之前单独写Java程序访问数据库的时候,添加的lib要执行Add as Library...
操作,不然就识别不到导入的mysql包。
结果: