前提
已安装 homebrew 或已安装 tomcat
homebrew 安装配置参考:(二)安装配置homebrew
安装tomcat
brew search tomcat
brew install tomcat #版本号自行选择

catalina run #测试运行一下

网页请求 localhost:8080
见到如下猫的图案代表安装启动成功

终端关闭或在终端执行 ctrl+c 都可关闭 tomcat
使用 brew 安装的 tomcat 目录一般默认为:/usr/local/Cellar/tomcat/9.0.33/libexec
创建servlet项目


也可以创建一个普通的java项目然后通过 project Structure -> Facets 修改为web项目
项目大致结构如下

左边红框为基本web项目主要结构 web/WEB-INF/web.xml
IDEA配置tomcat
配置本地tomcat
点击上图右上角红框配置本地tomcat
+ -> Tomcat Server -> Local

配置一:Server

name:配置的命名,可以自行定义
Application server:配置tomcat安装位置,点击Configure配置

After launch:勾选后tomcat运行时会自动打开浏览器,根据需求自行选择
JRE:jdk版本
HTTP port:运行后占用的端口,可以自行设置,建议避开常见端口
配置二:Deployment
+ -> Artifact :部署项目

Application context:配置请求路径第一部分

Apply 保存, tomcat 配置完毕
配置项目
点击右上角 Project Structure

Module -> Dependencies -> + -> JARs or directories

找到tomcat安装目录下的 /libexec/lib 下的两个jar包导入


Apply 保存,项目配置完毕
创建测试代码
测试代码

随便创建一个类 implement Servlet 类(来源刚导入的两个jar包,不导包或导包错误会找不到这个类),实现他的五个方法
在 service 方法下写输出代码
PrintWriter writer = servletResponse.getWriter();
writer.write("112233");
配置文件
web/WEB-INF/web.xml
添加如下配置:
<servlet>
<servlet-name>Servlet</servlet-name>
<servlet-class>com.isdaer.ServletTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
第一个 <servlet> 标签中的 servlet-name 理解成一个临时名字,随便定义
第一个 <servlet> 标签中的 servlet-class 为刚才的测试类全类名
第二个 <servlet-mapping> 标签中的 servlet-name 对应第一个标签中的 servlet-name
第二个 <servlet-mapping> 中的 url-pattern 为请求路径

右上角选择刚才配置好的 tomcat 点击运行

启动效果

测试
打开浏览器,输入
localhost:8081/ServletProject/test

见到返回即代表成功
说明
请求地址为:
localhost:固定写法,本地环回地址
8081:配置本地 tomcat 时,配置 Server 中的 HTTP port

/ServletProject:配置本地 tomcat 时,配置 Deployment 中的 Application context

/test:配置xml配置文件中的 url-pattern

补充
测试代码(Servlet)另外一种创建和配置方式
创建
new -> Servlet



生成的代码自动extends HttpServlet (前一种方式中Servlet的一个实现类)
有 doPost 和 doGet 两个方法,会根据请求方式
分发请求
在 doGet 下写测试代码
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.write("test2");
在 web/WEB-INF/web.xml 配置(同上)

<servlet>
<servlet-name>Servlet2</servlet-name>
<servlet-class>com.isdaer.Servlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet2</servlet-name>
<url-pattern>/test2</url-pattern>
</servlet-mapping>
运行+测试请求(同上)
http://localhost:8081/ServletProject/test2

配置
servlet 大于3.0版本可以不用 web.xml
使用注释 @WebServlet 效果等同于 web.xml 中 <url-pattern>

运行+测试请求
http://localhost:8081/ServletProject/init

同样有效
网友评论