Gradle легко поддерживает веб-приложения на Java с помощью плагинов «war» и «jetty». Из этого туториала вы узнаете, как быстро создать простое веб-приложение на Java-сервлете.
Наша основная структура проекта будет:
|
01
02
03
04
05
06
07
08
09
10
|
basic-web src main java com codetutr HelloWorldServlet.java webapp WEB-INF web.xml |
Сначала создайте папку с именем basic-web , а затем давайте создадим файл сборки Gradle внутри папки: build.gradle
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
apply plugin: 'java'apply plugin: 'war'apply plugin: 'jetty'apply plugin: 'eclipse-wtp'repositories { mavenCentral()}dependencies { providedCompile 'javax.servlet:servlet-api:2.5' runtime 'javax.servlet:jstl:1.1.2'} |
Плагин eclipse-wtp позволяет нам импортировать проект в Eclipse как Dynamic Web Project который при желании можно запустить из Eclipse. Плагин war расширяет плагин java и добавляет поддержку для упаковки файла WAR. Плагин Jetty добавляет задачи для поддержки запуска нашего проекта Gradle во встроенном экземпляре Jetty из нашего файла сборки. Обратите внимание, что мы включаем сервлет-api в качестве зависимости «saidCompile». Это означает, что мы не хотим, чтобы он был упакован в WAR, потому что он будет включен в сервер приложений, на котором он будет работать. Теперь давайте создадим файл дескриптора web.xml в src/main/webapp/WEB-INF : web.xml
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?xml version="1.0" encoding="UTF-8"?>xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <display-name>HelloWorldServlet</display-name> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.codetutr.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app> |
Мы создали простой сервлет, поддерживаемый com.codetutr.HelloWorldServlet и сопоставленный с «/». Наконец, давайте создадим сервлет в пакете src/main/java com.codetutr : HelloWorldServlet.java
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
|
package com.codetutr;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloWorldServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getOutputStream().write("Hello World.".getBytes()); }} |
Это все. Теперь мы можем запустить сервер Jetty и увидеть наше веб-приложение в действии:
|
1
2
3
4
5
6
|
$ gradle jettyRunWar:compileJava UP-TO-DATE:processResources UP-TO-DATE:classes UP-TO-DATE:war:jettyRunWar |
Теперь перейдите по адресу http: // localhost: 8080 / basic-web для доступа к сервлету. Вы должны увидеть «Привет, мир». на экране. Полный источник: basic-web.zip Распакуйте архив. Откройте командную строку в неархивированном корне. Типа gradle jettyRunWar . Перейдите по адресу http: // localhost: 8080 / basic-web .