Оригинальный адрес:Перенаправление обучающих веб-статей серии SpringBoot
Несколько распространенных поз для возврата данных в весенних веб-статьях были представлены ранее.Когда мы соответствуем http-запросу, помимо прямого возврата данных, есть еще один распространенный случай -> перенаправление;
Например, когда мы посещаем Taobao и нажимаем «Купить» без входа в систему, мы переходим к интерфейсу входа в систему, который на самом деле является перенаправлением. В этой статье в основном рассказывается, как поддерживать перенаправление 302 для серверной части.
I. Строительство окружающей среды
Прежде всего, необходимо собрать веб-приложение для продолжения последующих тестов.Сборка веб-приложения с помощью SpringBoot — относительно простая задача;
Создайте проект maven, файл pom выглядит следующим образом
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7</version>
<relativePath/> <!-- lookup parent from update -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.45</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Это все еще общий процесс.После того, как зависимость pom будет завершена, напишите запись в программе.
/**
* Created by @author yihui in 15:26 19/9/13.
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
II. 302 перенаправления
1. возврат перенаправления
Этот случай обычно применим к интерфейсу, который возвращает представление, добавляя перед возвращаемой строкойredirect:
Способ сказать весенние рамки, которые необходимо сделать 302 перенаправление
@Controller
@RequestMapping(path = "redirect")
public class RedirectRest {
@ResponseBody
@GetMapping(path = "index")
public String index(HttpServletRequest request) {
return "重定向访问! " + JSON.toJSONString(request.getParameterMap());
}
@GetMapping(path = "r1")
public String r1() {
return "redirect:/redirect/index?base=r1";
}
}
Простая демонстрация приведена выше, когда мы посещаем/redirect/r1
, перенаправляет на запрос/redirect/index?base=r1
, фактические результаты теста следующие
Обратите внимание, что на снимке экрана выше соединение, к которому мы фактически обращаемся,http://127.0.0.1:8080/redirect/index?base=r1
, производительность в браузере такова, что URL-адрес запроса становитсяhttp://127.0.0.1:8080/redirect/index?base=r1
; Код состояния заголовка возврата, просматриваемый через консоль, — 302.
инструкция
- Какая предпосылка использования этого способа не добавлять на интерфейс?
@ResponseBody
Обратите внимание, в противном случае возвращаемая строка обрабатывается как обычная строка и возвращается напрямую, и перенаправление не будет реализовано.
2. Перенаправление HttpServletResponse
Как упоминалось ранее, он знакомится с ним напрямую.HttpServletResponse
Способ записи данных в выходной поток для возврата результата, здесь же мы его используем для достижения перенаправления
@ResponseBody
@GetMapping(path = "r2")
public void r2(HttpServletResponse response) throws IOException {
response.sendRedirect("/redirect/index?base=r2");
}
Из приведенной выше демонстрации также видно, что использовать это очень просто, вызовите напрямуюjavax.servlet.http.HttpServletResponse#sendRedirect
, и передайте URL-адрес, который необходимо перенаправить
3. Резюме
Здесь в основном представлены два распространенных метода перенаправления серверной части, которые относительно просты, и оба из которых имеют свои собственные применимые сцены (конечно, не абсолютные).
- добавить перед обратным видом
redirect
способ, более подходящий для просмотра прыжков, перехода с одной веб-страницы на другую веб-страницу -
HttpServletResponse#sendRedirec
Этот способ является более гибким, его можно использовать в серверной части для получения жизненного цикла HTTP-запроса для использования, например, в следующих общих сценах.- Когда интерфейс требуется для входа в систему, все запросы на незарегистрированный уровень перехватчика перенаправляются на страницу входа.
- При глобальной ненормальной обработке, если возникает исключение сервера, перенаправить на пользовательскую страницу 500.
- Неподдерживаемый запрос, перенаправление на страницу 404
II. Другое
0. Проект
а. Серия сообщений в блоге
- 190930 - 404, конфигурация страницы исключений 500 в веб-главе серии руководств SpringBoot
- 190929-перенаправление учебного пособия серии Springboot
- 190913 - Операция Операция Возврат текста, веб-страниц и картинок в веб-главе Учебных пособий Springboot
- 190905-Решение проблемы с искаженными китайскими символами в веб-главе серии учебных пособий SpringBoot.
- 190831-Как настроить анализатор параметров в веб-главе серии руководств по SpringBoot.
- 190828-SpringBoot серия руководств в веб-статьях Состояние синтаксического анализа параметра запроса публикации
- 190824-Краткий обзор положения синтаксического анализа параметра запроса в веб-учебнике SpringBoot Series
- 190822-Создание среды Beetl в веб-главе серии руководств SpringBoot
- 190820 — создание среды Thymeleaf в веб-главе серии руководств SpringBoot.
- 190816-Веб-глава серии SpringBoot, посвященная построению среды Freemaker
- 190421 - Инструкции по использованию веб-сокета WEB в SpringBoot Advanced
- 190327-Полный анализ исключения синтаксического анализа параметра urlencode для Spring-RestTemplate
- 190317-Spring Создание веб-приложения на основе MVC на основе конфигурации java без конфигурации xml
- 190316-Spring ВЕБ-приложение MVC на основе XML-конфигурации
- 190213-Подсказка об исключении загрузки файла SpringBoot Временное местоположение загрузки xxx недопустимо
б. Исходный проект
- проект:GitHub.com/JuneB/tickets…
- проект:GitHub.com/JuneB/tickets…
1. Серый блог
Это не так хорошо, как письмо. Вышеупомянутое содержание чисто из семьи. Из-за ограниченных личных способностей неизбежно будут упущения и ошибки. Если вы обнаружите ошибки или у вас есть лучшие предложения, вы можете критиковать и поправьте их.
Ниже представлен серый личный блог, в котором записываются все посты в блоге по учебе и работе, приглашаю всех посетить
- One Grey BlogПерсональный блогblog.hhui.top
- Серый блог - специальный весенний блогspring.hhui.top