[教學] 使用 IntelliJ IDEA 建立 Servlet JSP 專案 (Gradle 版本)

首先要建立一個 Gradle 專案,使用 Gradle 來管理相依套件

這邊專案名稱以 TomcatDemo 為範例

加上相依套件

更新 build.gradle 設定 (加上相依套件)

apply plugin: 'tomcat'
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.0'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
    def tomcatVersion = '7.0.11'
    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
    tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
        exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
    }
}

之後點視窗右邊 Gradle 的 Reimport 按鈕

建立第一個 Servlet

在 src/main/java 下創一個 HelloWorld 的 servlet

範例程式碼如下

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet(urlPatterns={"/hello.view"})
public class HelloWorld extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
        response.getWriter().println("Hello, World");
    }
}

設定 runtime

點選右上 [Add Configuration…] 的按鈕

選擇 Gradle

設定中:

  • Gradle Project 選擇此專案
  • Tasks 輸入 tomcatRun (或 tomcatRunWar)

設定完按下 OK

接著點視窗右上的 Debug 按鈕就會開始進行編譯以及啟動伺服器

這時候開啟 http://localhost:8080/TomcatDemo/hello.view 就能看到 HelloWorld的字樣

手動 rebuild

Java 是個需要編譯的語言,而開發過程不會不停重啟伺服器來進行更新頁面

所以在程式碼改完的時候可以按 build project 的按鈕進行重新編譯並重新加載 class,伺服器不用重新啟動

注意:urlPatterns 更動的時候還是需要重啟伺服器

當 build 完會出現編譯的 class 有更動的訊息,詢問是否要重新加載變動的 class

可以點左下的 [Do not show this dialog in the future] 後按下 Yes

打包 war 檔案

使用 Gradle 打包 war 檔非常的簡單

直接在 build.gradle 裡面加上這行 (加上 war plugin):

apply plugin: 'war'

接下來只需要輸入以下指令

./gradlew war

跑完後 war 檔案產生在 build/libs/ 資料夾中