[Java] IDEA 2021.1 创建 Java Web (Servlet)项目
最近一段时间在学习 Java Web,没有想到我第一步就没有办法进行下去了,笑~
这就先卖个关子,先说说如何使用 IDEA 创建 Java Web (Servlet)项目。
因为我现在使用的是 IDEA 2021.1 以后的版本,所以创建 Java Web 非常简单。简单到什么地步呢,可以看看下面的内容。
极速创建版
-
打开你的 IDEA 进入欢迎页面,选择新建项目。
-
选择 Java Enterprise(Java EE)。
-
填写好右边的参数,我这里使用了中文语言包,英文的也没有多大区别,根据自己的喜好配置就好。
应用程序及服务器设置如果没有的话,可以选择右边的新建 -> 选择 Tomcat 服务器,在弹出来的界面选择你的 Tomcat 安装的路径。
- 到了依赖项选择时,留意 Servlet 是否有勾选,如果有勾选,点击完成。如果没有勾选,请勾上依赖项再点击完成。
- 完成后,就可以看到 IDEA 正在创建项目。创建好项目后可以使用右上角的启动项目按钮,IDEA 会默认打开浏览器,显示默认的 Servlet 页面。
到这里,Java Web 就算是创建成功并正确运行了。但是,有一个问题,就是我正在看的教程和现在用编辑器创建出来的项目目录大部分不一样,这样就让我没法跟着教程继续学习Java Web,于是就有了后面的方法。
手动搭建 Java Web
-
打开你的 IDEA 进入欢迎页面,选择新建项目。
-
这里选择空项目进行创建,主要是方便以后以多模块的方式进行学习和开发。如果是单模块,可以直接跳到 4 步。
点击下一步,输入项目的名称和项目的存储路径,这里就按照自身实际情况修改。
- 等待项目创建完成。因为项目是空项目,所以 IDEA 会在创建完成的时候自动弹出项目结构,让你不会因为一个空项目而傻傻的发呆。
在这里选择 模块 -> 选择 +
添加新模块。
- 在 新建模块 选择 Java 模块。
修改 模块的名称和模块的存储路径。
- 模块创建好后,可以在模块列表中看到刚刚新建的模块名称,右键对应的模块名称,添加 Web 框架。
添加好框架后,会自动显示框架的相关配置。例如这里可以通过部署描述符下的编辑按钮,对 Web 模块部署描述符(web.xml)进行修改
这里可以看到 下面有个警告提示: 'Web' 任何工件都不包含 Facet 资源。这是因为我们没有在工件选项中创建对应的内容导致的,可以直接点击创建工件以达到快速创建,不然需要继续按照下面的步骤进行操作。
- 选择 项目设置下的 工件,同样类似模块添加一样,选择
Web 应用程序:展开型
。这里会有两个选项,一个是 基于模块 自动创建,和上一步类似;另一个是 空 的工件,需要自己设置目录以及对应内容的输出位置。对应的目录结构可以参考下图:
- 点击右下角 应用 后,我们之前所做的工作会在项目中生成对应的目录和文件,主要目录就是 web 和 web 目录下的 WEB-INF。
在 web 目录下就可以开始我们的 Java Web 项目的开发了,这里直接创建了一个 Demo 文件 index.jsp,主要就是在页面上显示一句话。
- 接下来就是搭建调试/运行环境了,这样我们才能知道我们写的代码是什么效果。这个前置要求是电脑用已经安装好了 Web 服务器,因为我自己使用的是 Apache Tomcat,所以这里就以 Tomcat 为例。
点击右上角的 编辑配置,因为我已经配置好了,所以这里直接显示 Tomcat 8.5.75,只要点击弹出更多的选项就能看到编辑配置了。
- 一样的和前面创建项目、创建模块类似,这里 点击
+
后,在弹出来的菜单里面选择 Tomcat 服务器 本地,如果是其他的,请根据实际情况选择。
- 选择好后,可以在右边进行服务器的配置,例如名称、应用程序服务器、端口等等。如果 应用程序服务器 没有下拉选项,点击旁边的配置,然后选择安装在本地的 Tomcat 的跟目录路径,IDEA 会自动识别出 Tomcat 的版本信息。如果没有识别,可能是路径错误或者速度慢,可以检查路径或者重试几次。
-
服务器配置好之后,还不行,还需要进行部署的配置。切换到部署标签,点击
+
添加工件,因为现在只有一个工件,所以 IDEA 会直接添加工件,接着只需要配置一下 应用程序上下文,也就是浏览器访问时的虚拟目录。设置好后记得点击 应用 确认。
-
运行服务器。点击右上角的 绿色三角 按钮,或者使用快捷键
Shift + F10
运行。
启动的过程可以在下面的控制台输出中看到,看起来是不是很有逼格?啊哈哈。
看到 部署完成,就可以使用浏览器打开我们的 Demo 了。访问的路径一般是 协议 + 本地主机名 + 端口号 + 虚拟目录 + 文件名, 我这里的就是:http://localhost:8080/test_Web_exploded/index.jsp
。其中端口号在第 10 步服务器配置中设置,虚拟目录是在第 11 步工件的应用程序上下文中配置,文件名就是我们项目中的 web 目录下的对应文件。
WEB-INF 目录下的文件无法直接访问。
支持 Servlet
到了这里,你以为你的 Java Web 项目就算是真正的搞定了么?答案是:否。
不信,你可以试着创建一个 Servlet,你会很神奇的发现你没有办法在继承中找到 Servlet,就算是你将代码复制过来,IDEA 也会显示红色提示, 无法使用。就像下面这样:
不过,不要慌,解决办法也很简单。
第一种
- 在 WEB-INF 目录下新建
lib
文件夹。 - 找到你的 Tomcat 安装目录。
- 复制 Tomcal 安装目录下的
lib/servlet-api.jar
到刚才新建的lib
目录中。 - 右键
lib
,选择添加到库,在弹出来的创建库中根据实际情况选择添加到项目,或者添加到模块库。到这里就可以继承到 Servlet 进行开发了。
- 设置 Servlet 的访问路径,因为创建 web 的时候选择的是 3.0 以上的版本,所以有两种方式设置。
- 在 web.xml 中设置
- 使用注解的方式设置
- 在 web.xml 中设置
- 设置完成后,重启 Tomcat 服务器,使用浏览器访问。
这里通过浏览器访问后,在控制台中打印了一段文字,这段文字正是我们在代码中输出的内容,说明我们前面的步骤操作下来没有问题。
第二种
还记得我们在前面不是配置了 Tomcat 的服务器么,IDEA 会将这些文件作为库添加到外部库中,而我们只需要在项目或者模块中添加这个依赖就可以使用 Servlet 了。
-
点击 文件 -> 项目结构,进入到模块设置项。
-
选择对应的模块,切换到依赖标签。
-
点击
+
图标,选择添加 库。
-
然后选择 Tomcat 作为依赖项添加,记得点击应用保存当前操作。
后续的步骤跟第一种方式的第 5 步开始一样了,验证没有问题就证明配置没有问题。