过滤器是用于拦截应用程序的HTTP请求和响应的对象.通过使用过滤器,我们可以在两个实例中执行两个操作 :
在将请求发送到控制器之前
在向客户端发送响应之前.
以下代码显示了带有@Component注释的Servlet Filter实现类的示例代码.
@Componentpublic 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 {}}
以下示例显示了用于读取远程主机的代码在将请求发送到控制器之前,从ServletRequest对象获取远程地址.
在doFilter()方法中,我们添加了System.out.println语句来打印远程主机和远程地址.
package com.it1352.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;@Componentpublic 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主应用程序类文件中,我们添加了返回"Hello World"字符串的简单REST端点.
package com.it1352.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@RestControllerpublic 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 在下面和下面给出;
4.0.0 com.IT屋 demo 0.0.1-SNAPSHOT jar demo Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
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.it1352'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories { mavenCentral()}dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test')}
您可以创建可执行的JAR文件,并使用Maven或Gradle运行Spring Boot应用程序下面显示的命令 :
对于Maven,使用如下所示的命令 :
mvn clean install
在BUILD SUCCESS之后,您可以在目标目录下找到JAR文件.
对于Gradle,请使用命令如下所示 :
gradle clean build
构建后SUCCESSFUL,您可以在build/libs目录下找到JAR文件.
现在,使用以下命令运行JAR文件
java - jar
您可以看到应用程序已在Tomcat端口8080上启动.
现在点击URL http ://localhost:8080/并查看输出Hello World.它看起来如下所示 :
然后,您可以在控制台日志中看到远程主机和远程地址,如下所示 :