軟件環境
- 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