Статьи

Spring Boot & JSP

В этом руководстве показано, как использовать 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
  <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, являются их собственными.