Перейти к основному содержимому

· 2 мин. чтения

1. Обзор

В этом руководстве показано, как настроить время ожидания сеанса в веб-приложении на основе сервлета .

2. Глобальный тайм-аут сеанса в файле web.xml

Время ожидания всех сеансов Http можно настроить в файле web.xml веб-приложения:

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>

...
<session-config>
<session-timeout>10</session-timeout>
</session-config>

</web-app>

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы увидим, как протестировать составной запрос POST в Spring с помощью MockMvc .

2. Зависимости Maven

Прежде чем мы начнем, давайте добавим последние тестовые зависимости JUnit и Spring в наш pom.xml :

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.16.RELEASE</version>
<scope>test</scope>
</dependency>

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы рассмотрим различные способы преобразования Spring MultipartFile в File .

2. MultipartFile#getBytes

MultipartFile имеет метод getBytes() , который возвращает массив байтов содержимого файла. Мы можем использовать этот метод для записи байтов в файл :

MultipartFile multipartFile = new MockMultipartFile("sourceFile.tmp", "Hello World".getBytes());

File file = new File("src/main/resources/targetFile.tmp");

try (OutputStream os = new FileOutputStream(file)) {
os.write(multipartFile.getBytes());
}

assertThat(FileUtils.readFileToString(new File("src/main/resources/targetFile.tmp"), "UTF-8"))
.isEqualTo("Hello World");

· 6 мин. чтения

1. Обзор

В этом руководстве мы узнаем о кэшировании HTTP. Мы также рассмотрим различные способы реализации этого механизма между клиентом и приложением Spring MVC.

2. Представляем HTTP-кеширование

Когда мы открываем веб-страницу в браузере, она обычно загружает много ресурсов с веб-сервера:

./8fe5cfd190b94c0521aa96c76fd79fae.jpg

· 6 мин. чтения

1. Введение

В этой статье мы покажем, как загружать файлы Excel и отображать их содержимое на веб-странице с помощью среды Spring MVC .

2. Загрузка файлов Excel

Чтобы иметь возможность загружать файлы, мы сначала создадим сопоставление контроллера, которое получает MultipartFile и сохраняет его в текущем местоположении:

private String fileLocation;

@PostMapping("/uploadExcelFile")
public String uploadFile(Model model, MultipartFile file) throws IOException {
InputStream in = file.getInputStream();
File currDir = new File(".");
String path = currDir.getAbsolutePath();
fileLocation = path.substring(0, path.length() - 1) + file.getOriginalFilename();
FileOutputStream f = new FileOutputStream(fileLocation);
int ch = 0;
while ((ch = in.read()) != -1) {
f.write(ch);
}
f.flush();
f.close();
model.addAttribute("message", "File: " + file.getOriginalFilename()
+ " has been uploaded successfully!");
return "excel";
}

· 6 мин. чтения

1. Обзор

В этом руководстве мы покажем, как возвращать изображения и другие медиаданные с помощью среды Spring MVC.

Мы обсудим несколько подходов, начиная с прямого манипулирования HttpServletResponse и заканчивая подходами, которые выигрывают от преобразования сообщений , согласования содержимого и абстракции ресурсов Spring . Мы подробно рассмотрим каждый из них и обсудим их преимущества и недостатки.

2. Использование HttpServletResponse

Самый простой подход к загрузке изображения заключается в том, чтобы напрямую работать с объектом ответа и имитировать чистую реализацию сервлета , и это продемонстрировано с помощью следующего фрагмента:

· 4 мин. чтения

1. Обзор

В этом руководстве мы собираемся показать, как получить доступ к объектам Spring MVC в представлениях Thymeleaf, которые содержат код JavaScript. В наших примерах мы будем использовать Spring Boot и механизм шаблонов Thymeleaf, но эта идея работает и для других механизмов шаблонов.

Мы собираемся описать два случая: когда код JavaScript встроен или находится внутри веб-страницы, сгенерированной движком, и когда он является внешним по отношению к странице — например, в отдельном файле JavaScript.

2. Настройка

Предположим, что мы уже настроили веб-приложение Spring Boot, использующее механизм шаблонов Thymeleaf. В противном случае вам могут пригодиться следующие руководства:

· 3 мин. чтения

1. Обзор

В этом кратком руководстве мы обсудим распространенную проблему при работе с Spring MVC — при использовании Spring @PathVariable с @RequestMapping для сопоставления конца URI запроса, содержащего точку, мы получим частичное значение. в нашей переменной, усеченной до последней точки.

В следующих разделах мы сосредоточимся на том, почему это происходит и как изменить это поведение.

Введение в Spring MVC можно найти в этой статье .

2. Нежелательная помощь Spring

· 17 мин. чтения

1. Введение

В этом руководстве мы разберемся с основными принципами парадигмы функционального программирования и узнаем, как применять их на практике в языке программирования Java. Мы также рассмотрим некоторые передовые методы функционального программирования.

Это также позволит нам оценить преимущества, которые мы получаем от функционального программирования, особенно на Java.

2. Что такое функциональное программирование

По сути, функциональное программированиеэто стиль написания компьютерных программ, в котором вычисления рассматриваются как вычисление математических функций . Итак, что такое функция в математике?

· 4 мин. чтения

1. Обзор

В математике НОД двух целых чисел, не равных нулю, — это наибольшее положительное целое число, на которое каждое из целых чисел делится без остатка.

В этом уроке мы рассмотрим три подхода к нахождению наибольшего общего делителя (НОД) двух целых чисел. Далее мы рассмотрим их реализацию на Java.

2. Грубая сила

Для нашего первого подхода мы итерируем от 1 до наименьшего заданного числа и проверяем, делятся ли заданные целые числа на индекс. Наибольший индекс, который делит данные числа , - это НОД данных чисел: