最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Spring Boot 快速入門之(十四):Servlet 過濾器

2020-08-31 19:49 作者:信碼由韁  | 我要投稿

【注】本文譯自:? https://www.tutorialspoint.com/spring_boot/spring_boot_servlet_filter.htm


? ? ? ? 過濾器是一種攔截應(yīng)用中 HTTP 請(qǐng)求和響應(yīng)的對(duì)象,使用過濾器,你可以執(zhí)行以下兩種情形下的兩種操作:

  • 在發(fā)送請(qǐng)求到到控制器之前

  • 在發(fā)送響應(yīng)到客戶端之前

? ? ? ?下面的示例代碼是以?@Component 注解的類來實(shí)現(xiàn) Servlet 過濾器:

public?class?SimpleFilter?implements?Filter?{

???@Override

???public?void?destroy()?{}

???@Override

???public?void?doFilter

??????(ServletRequest?request,?ServletResponse?response,?FilterChain?filterchain)?

??????throws?IOException,?ServletException?{}

???@Override

???public?void?init(FilterConfig?filterconfig)?throws?ServletException?{}

}

? ? ? ?下面的示例代碼展示了在發(fā)送請(qǐng)求到控制器之前,從?ServletRequest 對(duì)象讀取遠(yuǎn)程主機(jī)和地址:

? ? ? ?在?doFilter() 方法中,我們加了 System.out.println 語句打印遠(yuǎn)程主機(jī)和地址:

package?com.tutorialspoint.demo;

import?java.io.IOException;

import?javax.servlet.Filter;

import?javax.servlet.FilterChain;

import?javax.servlet.FilterConfig;

import?javax.servlet.ServletException;

import?javax.servlet.ServletRequest;

import?javax.servlet.ServletResponse;

import?org.springframework.stereotype.Component;

@Component

public?class?SimpleFilter?implements?Filter?{

???@Override

???public?void?destroy()?{}

???@Override

???public?void?doFilter(ServletRequest?request,?ServletResponse?response,?FilterChain?filterchain)?

??????throws?IOException,?ServletException?{

??????

??????System.out.println("Remote?Host:"+request.getRemoteHost());

??????System.out.println("Remote?Address:"+request.getRemoteAddr());

??????filterchain.doFilter(request,?response);

???}

???@Override

???public?void?init(FilterConfig?filterconfig)?throws?ServletException?{}

}

? ? ? ?在?Spring Boot 主應(yīng)用類文件中,我們加了簡(jiǎn)單 REST 端點(diǎn)返回 “Hello World” 字串:

package?com.tutorialspoint.demo;

import?org.springframework.boot.SpringApplication;

import?org.springframework.boot.autoconfigure.SpringBootApplication;

import?org.springframework.web.bind.annotation.RequestMapping;

import?org.springframework.web.bind.annotation.RestController;

@SpringBootApplication

@RestController

public?class?DemoApplication?{

???public?static?void?main(String[]?args)?{

??????SpringApplication.run(DemoApplication.class,?args);

???}

???@RequestMapping(value?=?"/")

???public?String?hello()?{

??????return?"Hello?World";

???}

}

? ? ? ?Maven build –?pom.xml?代碼如下:

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

<project?xmlns?=?"http://maven.apache.org/POM/4.0.0"?xmlns:xsi?=?"

???http://www.w3.org/2001/XMLSchema-instance"

???xsi:schemaLocation?=?"http://maven.apache.org/POM/4.0.0?

???http://maven.apache.org/xsd/maven-4.0.0.xsd">

???

???<modelVersion>4.0.0</modelVersion>

???<groupId>com.tutorialspoint</groupId>

???<artifactId>demo</artifactId>

???<version>0.0.1-SNAPSHOT</version>

???<packaging>jar</packaging>

???<name>demo</name>

???<description>Demo?project?for?Spring?Boot</description>

???<parent>

??????<groupId>org.springframework.boot</groupId>

??????<artifactId>spring-boot-starter-parent</artifactId>

??????<version>1.5.8.RELEASE</version>

??????<relativePath/>?

???</parent>

???<properties>

??????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

??????<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

??????<java.version>1.8</java.version>

???</properties>

???<dependencies>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-web</artifactId>

??????</dependency>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-test</artifactId>

?????????<scope>test</scope>

??????</dependency>

???</dependencies>

???<build>

??????<plugins>

?????????<plugin>

????????????<groupId>org.springframework.boot</groupId>

????????????<artifactId>spring-boot-maven-plugin</artifactId>

?????????</plugin>

??????</plugins>

???</build>

</project>

? ? ? ?Gradle Build – build.gradle?代碼如下:

buildscript?{

???ext?{

??????springBootVersion?=?'1.5.8.RELEASE'

???}

???repositories?{

??????mavenCentral()

???}

???dependencies?{

??????classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")

???}

}

apply?plugin:?'java'

apply?plugin:?'eclipse'

apply?plugin:?'org.springframework.boot'

group?=?'com.tutorialspoint'

version?=?'0.0.1-SNAPSHOT'

sourceCompatibility?=?1.8

repositories?{

???mavenCentral()

}

dependencies?{

???compile('org.springframework.boot:spring-boot-starter-web')

???testCompile('org.springframework.boot:spring-boot-starter-test')

}

? ? ? ?你可以使用以下 Maven 或 Gradle 命令來創(chuàng)建可執(zhí)行?JAR 文件,運(yùn)行 Spring Boot 應(yīng)用:

? ? ? ?Maven 命令如下:

mvn?clean?install

? ? ? ?在 BUILD SUCCESS 之后,你可以在 target 目錄下找到 JAR 文件。

? ? ? Gradle 命令如下:

gradle?clean?build

? ? ? ?在 BUILD SUCCESSFUL 之后,你可以在 build/libs 目錄下找到?JAR 文件。

? ? ? ?現(xiàn)在,使用下面的命令運(yùn)行?JAR 文件:

java?–jar?<JARFILE>?

? ? ? ?你可以看到應(yīng)用已經(jīng)在?Tomcat 端口號(hào) 8080 啟動(dòng)了。

? ? ? ?現(xiàn)在單擊 URL?http://localhost:8080/?可以看到輸出了 Hello World??雌饋響?yīng)當(dāng)是下面的樣子:

? ? ? ?然后你可以看到如下所示的控制臺(tái)日志:



Spring Boot 快速入門之(十四):Servlet 過濾器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
通海县| 台北市| 清徐县| 克山县| 象山县| 永定县| 交口县| 留坝县| 合江县| 孟津县| 丰都县| 于都县| 朝阳区| 青川县| 仪征市| 古浪县| 莱芜市| 崇礼县| 龙川县| 阿荣旗| 金湖县| 阿坝县| 海城市| 儋州市| 饶阳县| 邵阳县| 新宾| 南靖县| 盈江县| 昆山市| 新和县| 安吉县| 阳山县| 吴旗县| 班戈县| 北京市| 澄城县| 焉耆| 海宁市| 巴彦县| 砀山县|