软件环境
- idea2019.2.4
- maven3.6.2
创建项目
不勾选从骨架创建,点击「next」
从骨架创建:就是把一些重复且需要用的东西提取出来,做成一个模板使用,相当于对项目的一个封装
上图的初始目录结构就是所有使用 maven 的 IDE 都会自动生成的结构,但要注意这还不是 web 项目的结构,要想开发 web 项目,还需要手动加一些东西,如下图
下面是刷新之后,webapp 目录的图标变化后的样子
上面只是第一步,要想开发 web 项目,还需要加一些东西
关于自动生成 web.xml 文件,请点击这里,做到这一步,仍然没有结束,因为我们还无法访问 index.jsp 这个文件,因为缺少 servlet,所以我们还要写 servlet 文件
继承报错:因为我们的项目还没有添加对 servlet 的依赖,从项目创建到现在,依赖的只有 jdk,所以还需要在 pom.xml 文件中添加对 servlet 的依赖
如果创建项目时,选择了从骨架创建,则项目会自动帮我们写一些依赖,但不一定有 servlet,如果需要的话,还是要手动添加
从下图可以看出,jar 包的路径就是由 groupId、artifactId 和 version(GAV)所组成的路径
但要注意,直接查看里面的类,看到的是编译后的 .class 文件,而不是源代码,要看源代码,点击 Download Sources 即可
接下来就是将 HelloServlet 类和 web.xml 中的内容补充完整
package com.lwx.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.lwx.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<!--
servlet 前面的 / 代表根目录
项目启动后,在浏览器输入 http://localhost:8080/hellomaven_war_exploded/servlet/hello 即可访问 index.jsp 页面
hellomaven_war_exploded 这个是可以自己定义的
-->
<url-pattern>/servlet/hello</url-pattern>
</servlet-mapping>
</web-app>
使用 maven 将项目打包成 war 包:点击 idea 底部的 Terminal,输入 mvn package
命令,看到 BUILD SUCCESS 的提示后,点击一下项目名,项目下就会出现一个 target 文件夹(打包的过程包含了编译)
要想清楚 target,则可以使用 mvn clean
命令
需要明确的一点是:使用 mvn 命令,只要装了 maven 即可,不需要其它的环境
最后就是把 servlet 跑起来了,配置一下 Tomcat 即可
在开发过程中,我们一般选择以 war explored 的形式部署,因为这种部署方式支持热部署
启动 Tomcat,访问 index.jsp