В этом руководстве показано, как использовать Spring Boot для создания веб-приложения MVC с JSP.
Предпосылки:
- Eclipse IDE (неоновый выпуск)
- Maven 4
- Java 1.8
1. Создать веб-проект Maven
Откройте eclipse, затем создайте новый веб-проект maven и назовите его SpringBootWebJsp.
Структура сгенерированных проектов выглядит следующим образом:
2. pom.xml
После создания веб-проекта первым шагом является настройка Spring Boot внутри pom.xml , поэтому мы добавляем следующее в качестве родительской зависимости:
1
2
3
4
5
|
< parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.5.10.RELEASE</ version > </ parent > |
Spring Boot предоставляет стартер, называемый spring-boot-starter-web, который автоматически импортирует все необходимые jar-файлы, необходимые для установки типичного приложения Spring MVC, и автоматически настраивает средство разрешения представления и диспетчер сервлетов приложения, так что разработчик скорее сосредоточится на разработке. чем конфигурация, поэтому мы добавляем стартер как зависимость:
1
2
3
4
|
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > |
Поскольку мы используем JSP в качестве технологии внешнего интерфейса, нам нужно добавить следующую зависимость, чтобы иметь возможность компилировать JSP и использовать его функции:
1
2
3
4
5
|
< dependency > < groupId >org.apache.tomcat.embed</ groupId > < artifactId >tomcat-embed-jasper</ artifactId > < scope >provided</ scope > </ dependency > |
Вот и все, только 2 зависимости могут составить ваше приложение MVC. Ниже представлены автоматически импортированные банки:
Это целый pom.xml для справки:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" < modelVersion >4.0.0</ modelVersion > < groupId >com.programmer.gate</ groupId > < artifactId >SpringBootWebJSP</ artifactId > < packaging >war</ packaging > < version >0.0.1-SNAPSHOT</ version > < name >SpringBootWebJSP</ name > < properties > < maven.compiler.source >1.8</ maven.compiler.source > < maven.compiler.target >1.8</ maven.compiler.target > </ properties > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.5.10.RELEASE</ version > </ parent > < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >org.apache.tomcat.embed</ groupId > < artifactId >tomcat-embed-jasper</ artifactId > < scope >provided</ scope > </ dependency > </ dependencies > < build > < plugins > < plugin > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-maven-plugin</ artifactId > </ plugin > </ plugins > </ build > </ project > |
PS: при использовании JSP в качестве технологии переднего плана вы должны обязательно установить атрибут «комплектация» как war, а не как jar, поскольку команда Spring Boot заявила, что в настоящее время существуют ограничения для поддержки JSP внутри jar-файла (преобразователь представления не будет карта правильно).
3. Application.java
Второй шаг — создать класс инициализатора Spring Boot, это точка входа нашего приложения. При аннотировании класса с помощью @SpringBootApplication мы настраиваем наше приложение для запуска через встроенный контейнер сервлетов, предоставляемый Spring Boot (tomcat по умолчанию).
Application.java
01
02
03
04
05
06
07
08
09
10
11
12
|
package com.programmer.gate; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application{ public static void main(String[] args) { SpringApplication.run(Application. class , args); } } |
4. application.properties
Spring Boot автоматически настраивает распознаватель представлений и сервлет-диспетчер веб-приложения и предоставляет нам способ определить нашу собственную конфигурацию с помощью application.properties .
Поэтому мы создаем application.properties в src / main / resources и определяем следующие свойства:
1
2
3
4
|
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp server.port= 9093 home.message= Programmer Gate |
Здесь мы настраиваем преобразователь представлений для сопоставления представлений с файлами типа jsp в «WEB-INF / jsp /» . Мы также изменим порт по умолчанию для встроенного tomcat на 9093, а также определим другие свойства бизнес-сообщений, которые будут использоваться позже в нашем приложении.
5. home.jsp
В этом руководстве мы создаем очень простое приложение MVC, которое отображает приветственное сообщение для конечного пользователя, поэтому мы создаем очень простой файл jsp с именем home.jsp в WEB-INF / jsp :
01
02
03
04
05
06
07
08
09
10
11
|
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" > </ head > < body > < h1 >Welcome to ${message} </ h1 > </ body > </ html > |
6. HomeController.java
Теперь мы создаем наш главный контроллер с именем HomeController в com.programmer.gate и определяем его для обслуживания запросов, поступающих из корневого пути, следующим образом:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
package com.programmer.gate; import java.util.Map; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomeController { @Value ( "${home.message}" ) private String message; @RequestMapping ( "/" ) public String welcome(Map<String, Object> model) { model.put( "message" , this .message); return "/home" ; } } |
Наш контроллер просто читает приветственное сообщение из application.properties и затем перенаправляет на home.jsp .
7. Разверните приложение
Ниже приведены шаги для развертывания нашего приложения:
- Щелкните правой кнопкой мыши pom.xml -> run-as -> Maven install
- Maven генерирует военный файл SpringBootWebJSP-0.0.1-SNAPSHOT.war внутри целевой папки
- Откройте cmd, затем запустите войну, используя: java -jar SpringBootWebJSP-0.0.1-SNAPSHOT.war
Итак, наше приложение запущено и готово обслуживать запросы через порт 9093 .
Вот и все, я надеюсь, вам это нравится. Для уточнения, пожалуйста, оставьте свои мысли в разделе комментариев ниже.
Опубликовано на Java Code Geeks с разрешения Хуссейна Терека, партнера нашей программы JCG . Смотреть оригинальную статью здесь: Spring Boot + JSP
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |