html页面设置拦截器,SpringBoot拦截器Filter的使用方法详解

SpringBoot拦截器Filter的使用方法详解

发布时间:2020-08-27 22:44:03

来源:脚本之家

阅读:107

作者:玉天恒

前言:

最新Servlet 3.0拦截器的使用

1.pom.xml添加需要使用的依赖

4.0.0

top.ytheng

springboot-demo

0.0.1

jar

org.springframework.boot

spring-boot-starter-parent

2.0.5.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-starter-thymeleaf

org.springframework.boot

spring-boot-devtools

true

true

myspringboot

org.springframework.boot

spring-boot-maven-plugin

maven-compiler-plugin

1.8

1.8

2.添加Filter拦截器

package top.ytheng.demo.filter;

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 javax.servlet.annotation.WebFilter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

//Servlet3.0特性

//urlPatterns:拦截的url地址

//filterName:拦截器名称

@WebFilter(urlPatterns="/api/*", filterName="loginFilter")

public class LoginFilter implements Filter{

/*

* 容器加载完成调用

* */

@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

System.out.println("filter init...");

}

/*

* 请求被拦截的时候调用

* */

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

// TODO Auto-generated method stub

System.out.println("doFilter...");

HttpServletRequest req = (HttpServletRequest)request;

HttpServletResponse resp = (HttpServletResponse)response;

String username = req.getParameter("username");

if(username.equals("theng")) {

chain.doFilter(request, response);

} else {

//重定向

resp.sendRedirect("/filter.html");

return;

}

}

/*

* 容器被销毁的时候调用

* */

@Override

public void destroy() {

// TODO Auto-generated method stub

System.out.println("filter destroy...");

}

}

3.添加测试控制器

package top.ytheng.demo.controller;

import java.util.HashMap;

import java.util.Map;

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

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

@RestController

@RequestMapping("/api/v1/filter")

public class FilterController {

@RequestMapping("/test")

public Object testFilter() {

Map map = new HashMap<>();

map.put("name", "theng");

map.put("pwd", "123456");

return map;

}

}

4.添加启动类

package top.ytheng.demo;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication //等于下面3个

//@SpringBootConfiguration

//@EnableAutoConfiguration

//@ComponentScan

//拦截器用到

@ServletComponentScan

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

5.添加拦截后调整的页面filter.html

Insert title here
hello theng
filter success

6.右键项目Run As启动项目,测试地址

http://localhost:8080/api/v1/filter/test?username=theng

http://localhost:8080/api/v1/filter/test?username=ytheng

另附:

37540c5f4857f1b14007aeaae01eb762.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值