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 .