Springboot+过滤器

非常简单的配置:

第一步创建一个

importjava.io.IOException;

importjavax.servlet.Filter;

importjavax.servlet.FilterChain;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

importjavax.servlet.annotation.WebFilter;

/**

* 使用注解标注过滤器

*@WebFilter将一个实现了javax.servlet.Filter接口的类定义为过滤器

* 属性filterName声明过滤器的名称,可选

* 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)

*@qq179061434

*/

@WebFilter(urlPatterns="/*")

public classMyFilterimplementsFilter {

@Override

public voiddestroy() {

System.out.println("过滤器销毁");

}

@Override

public voiddoFilter(ServletRequest request, ServletResponse response,

FilterChain chain)throwsIOException, ServletException {

System.out.println("执行过滤操作");

chain.doFilter(request, response);

}

@Override

public voidinit(FilterConfig config)throwsServletException {

System.out.println("过滤器初始化");

}

}

第二步在启动类加个注解就ok,@ServletComponentScan   这个注解相当于要求启动时候扫描注解,这样过滤器注解才会扫描。如图:


Springboot+过滤器_第1张图片
注解地址


Springboot+过滤器_第2张图片
除了销毁没走


chain.doFilter(request, response);作用是跳转你的项目接口路径。


以下是request获取要的方法:经常用的是request.getParameter

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度实例

getInputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关SessiongetServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

案例,需要先把importjavax.servlet.ServletRequest转化成importjavax.servlet.http.HttpServletRequest,在去调用head方法:


Springboot+过滤器_第3张图片


Springboot+过滤器_第4张图片

你可能感兴趣的:(Springboot+过滤器)