【写给自己的教程】Mac上的Tomcat & IDEA配置
前文
本文更新于:2024-03-10 22:17
2024版正在更新...
正文
brew update
接着查看一下Tomcat在Homebrew支持的版本
brew search tomcat
正常来说会显示这样的
==> Formulae
tomcat tomcat-native tomcat@7 tomcat@8 tomcat@9
也就是这样
看到这个之后直接安装就行了
brew install tomcat
安装完后就会是这样
当然不同电脑不同显示,不同版本不同的显示
catalina -h // 检查是否安装成功
catalina run // 运行tomcat
浏览器打开地址 http://localhost:8080/
看到如下页面即可
IDEA配置
IDEA版本:IntelliJ IDEA 2021.2.2 Build #IU-212.5284.40
JDK版本:17
TomCat版本:10.0.8 (Homebrew)
首先在IDEA的主页面新建一个Java Web项目
由于是2021.2.2版本,已经没有Java Enterprise选项(如果你的有当我没说,反正我的没有),别着急,正常创建一个Java项目,在上图的步骤中,点击两次Next,Project JDK可以跟我的不一样,我上面给了我的环境版本
到了这个页面后给他改个位置命个名,当然你也可以用默认,最好是小写吧,追包的时候要小写,怕大写会报错,当然你非要呆或者非要杠我,我无话可说
点Finish,会看到这个页面
这时,例如我这里的工程文件名是jsp,我就在jsp这个地方双指点击触控板(鼠标或Windows里的右键)调出菜单,找到Add Framework Support,就像下图一样
勾选Web Application
点击OK即可,现在你可以看到这样的页面
在WEB-INF文件夹双指点击触控板(鼠标或Windows里的右键),调出菜单,创建两个文件夹,一个是classes,一个是lib,如图所示
看好我的图,是在WEB-INF文件夹里面创建,肯定有呆瓜是创到同目录的
然后File中找到Project Structure
别问中文界面是什么了,你连这个都找不到你 ❌ 了这页吧,或者切个英文,把中文插件关掉
进来之后点Modules,改一下编译后的class存放地址
文件夹是什么?刚才创建的classes文件夹就是拿来存编译后的class的
Windows别傻傻的跟着我这个输入,路径都不一样,带点脑子看教程
添加完点 Dependencies 就是 Paths 隔壁那个,点加号
找到刚才创建的lib文件夹
选择Jar Directory,点OK
点击Artifacts,把 Show content of elements 勾上,勾上之后点OK就行,我懒得放图了
配置Tomcat
菜单栏找到Run,Edit Configurations
进去之后点加号,找到Tomcat Server,Local
进来之后,如果你本地有下载Tomcat那就选本地的,就好像我这里,本地下载了,就会被读取到,但是我用的是Homebrew,所以我会改到Homebrew的文件夹
/usr/local/Cellar/tomcat/10.0.8/libexec
Oh shit下面有个Warning,点一下Fix吧,点了之后就会把你带到这里
这时就可以OK了,无脑运行一下吧
OK,It works!
Servlet
现在来看看IDEA中怎么配置Servlet吧
首先在src中创建一个Java文件,名为 HelloX1a0He
就像这样
创建完后,Ctrl + a全选代码,全部删掉,也就2行罢了,然后把下面的代码贴进去
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloX1a0He extends HttpServlet {
private String message;
@Override
public void init() throws ServletException{
message ="Hello X1a0He, this message is from servlet!";
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
//设置响应内容类型
resp.setContentType("text/html");
//设置逻辑实现
PrintWriter out = resp.getWriter();
out.println(message);
}
@Override
public void destroy(){
super.destroy();
}
}
就像这样
贴完代码后,报错了
Let's fix it
还记得我说过这个是一篇写给我自己的教程么,这篇教程用的是Homebrew安装的Tomcat
报错只是缺了servlet-api.jar,那就找到Homebrew的Tomcat文件夹找一下吧,本地下载的也类似
Homebrew下载的Tomcat路径如下
/usr/local/Cellar/tomcat/10.0.8/libexec/lib/
找到一个文件叫 servlet-api.jar
的文件
OK,两个方法
方法一
command + c拷贝这个文件,Windows用户则是ctrl + c,把它放到WEB-INF的lib文件里面吧
command + s保存一下吧
OK,报错没了
方法二
双指点击触控板,Windows则是右键调出菜单,找到 Open Module Settings
找到 Dependencies 点加号 选择Library
选择Homebrew的Tomcat,点Add Selected后点击OK
OK,报错没了
无脑运行一下吧,你会发现还是刚才的页面,但编译后的class文件夹会多了一个HelloX1a0He文件
点红色的方形,就是运行右边那个,停掉服务器
怎么部署 Servlet 呢
在类前放上这一行代码
@WebServlet("/HelloX1a0He")
// 这里的HelloX1a0He是类名
你会发现,又报错了
导一下包就行了,鼠标移到红色字部分,有一个 Import Class,点一下会把第一行改成这样
import jakarta.servlet.annotation.WebServlet;
当然也可以手动将第一行换成这个,报错就没了
现在来无脑运行一下吧
主页面正常
访问一下 Servlet 页面
在原地址基础上加上 HelloX1a0He,也就是
http://localhost:8080/jsp_war_exploded/HelloX1a0He
运行正常
这就是Mac上配置 Homebrew Tomcat 和 Servlet 的全过程了,本地下载的Tomcat和Windows是类似的
晓看天色暮看云
版权声明:
作者:X1a0He
链接:https://www.x1a0he.com/mactomcat
来源:X1a0He's Blog
文章版权归作者所有,未经允许请勿转载。
共有 1 条评论