记一次servlet项目启动

前言

tomcat 和 jetty 都属于 web 容器。

mac安装tomcat

brew install tomcat

安装之后,输入 catalina -h,可以看到各种命令,如run、start、stop等。

mac安装jetty

brew install jetty

安装之后,输入 jetty start 即可启动。

服务器验证

不管安装哪个服务器,启动之后都会出现默认端口,因此可以访问 localhost:默认端口。我这里两个都装了,jetty 的默认端口是 8080,tomcat的默认端口是 8005。

IDEA 中的配置

tomcat

启动时会在终端打印出路径:

Using CATALINA_BASE:   /usr/local/Cellar/tomcat/9.0.12/libexec
Using CATALINA_HOME:   /usr/local/Cellar/tomcat/9.0.12/libexec
Using CATALINA_TMPDIR: /usr/local/Cellar/tomcat/9.0.12/libexec/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
Using CLASSPATH:       /usr/local/Cellar/tomcat/9.0.12/libexec/bin/bootstrap.jar:/usr/local/Cellar/tomcat/9.0.12/libexec/bin/tomcat-juli.jar

根据以上信息,在Idea中的配置窗口中,创建一个 Tomcat Server,选择 local;然后点击 Application server 右面的 Configure,Tomcat Home 和 Tomcat base directory 均输入 /usr/local/Cellar/tomcat/9.0.12/libexec 即可,版本会自动识别出来。其他配置就不再赘述。

Tomcat 源码调试

我们在项目中配置的 Tomcat 自带 servlet-api 和 jsp-api,这两个文件可以查看 .class文件,但源文件无法直接在 idea 中下载,因此可以改为 maven 依赖,引入

        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>

后,将 Tomcat 自带的 servlet-api.jar 和 jsp-api.jar 删除即可(自带的优先级高,需要将其删除,才会用maven下载的包)。然后就可以下载源码查看了。

注意:

  • 删除自带的两个包后,还需要到运行配置窗口中去掉原来自动识别出来的 servlet-api 和 jsp-api 两个类(此时已经标红了),然后就可以正常启动运行了。
  • 当然也可不用 maven,而是自己下载 Tomcat 源码查看。
原文地址:https://www.cnblogs.com/xiaoxi666/p/9954555.html