浅浅记录一下自己在IDEA配置Tomcat10遇到的问题

一、Edit Configurations时,出现Application server libraries not found错误:

                       (上图是我解决问题后的,可以看到成功配置Tomcat 10.0.12)

 

                                                      (上图为出现的问题)

    解决方法:上网查询发现是Tomcat版本过高(或者IDEA版本过低),有两种解决途径,第一种是重新下载低版本Tomcat,第二种是将IDEA更新到高版本。由于我不知道假如下载低版本Tomcat是否还需要重新配置Tomcat到电脑上(如环境配置等),以及是否会发生冲突等问题,过于麻烦。故此处我采用第二种方法,即重新下载高版本IDEA(2021.1),我原来旧版本IDEA是2020.1.

    注意:下载高版本IDEA安装时,会提示是否删除旧版本(有上下两个选项,第一个是是否删除旧版本,第二个貌似是要不要删除原来的配置),我两个都没有✔。

安装完毕后,重新进行配置,配置成功!

二、:Edit Configuration时,在Deployment配置时有一个Application context:

     我们知道Servlet规范中,Tomcat文件目录遵循如下规则:一个项目文件作为根目录(项目名自起);根目录下有一个WEB-INF目录(名字必须为WEB-INF),WEB-INF目录下必须有一个名为classes的目录用于存放程序的字节码文件(.class文件或者包含.class文件的目录)以及一个(不必须)的lib目录,用于存放程序运行所需外部类库。  

    当我们使用了IDEA提供的模板后,IDEA自动为我们创造了一个规范的目录结构,可以看到根为web,然而当程序运行后,在apache-tomcat-10.0.12(我下载的)目录下的webapps下没有出现web项目,但是依然成功运行,说明IDEA通过某种方式代管了项目。

    注意:这导致我们在浏览器中想要访问资源时,项目的根不是web!而是Application context!

比如在本机中访问上图中的student.html,则浏览器中应该输入                    http://localhost:8080/javaweb/student.html,而不是http://localhost:8080/web/student/html.

可以把Application context理解成虚拟的项目根!

三、当我们利用JDBC连接数据库时,需要将mysql驱动JAR包放到WEB-INF目录的lib目录下,同时也要放在External Libraries中:

否则,在运行如下代码(注册驱动)时:

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

 可能发生ClassNotFoundException!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值