博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot - -web应用开发-Servlets, Filters, listeners
阅读量:5970 次
发布时间:2019-06-19

本文共 3753 字,大约阅读时间需要 12 分钟。

一.Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、 Filter、 Listener等等

二.在spring boot中的三种实现方式

 方法一:通过注册ServletRegistrationBean、 FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制

servlet类:

package com.demo.example.util.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletRequest;public class CustomServlet extends HttpServlet {	/**	 * 	 */	private static final long serialVersionUID = 1L;			@Override	protected void doGet(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {		// TODO Auto-generated method stub		System.out.println("servlet get method");		doPost(request , response);	}		@Override	protected void doPost(HttpServletRequest request, HttpServletResponse response)			throws ServletException, IOException {		// TODO Auto-generated method stub		System.out.println("servlet get method");		response.getWriter().write("Hello world");	}	} filter类:
package com.demo.example.util.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;public class CustonFilter implements Filter {	@Override	public void destroy() {		// TODO Auto-generated method stub		System.out.println("do destroy");	}	@Override	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)			throws IOException, ServletException {		System.out.println("do filter");		chain.doFilter(request, response);	}	@Override	public void init(FilterConfig arg0) throws ServletException {		// TODO Auto-generated method stub		System.out.println("do init");	}}

 Listener类:

package com.demo.example.util.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class CustomListener implements ServletContextListener {	@Override	public void contextDestroyed(ServletContextEvent servletContextEvent) {		// TODO Auto-generated method stub		System.out.println("servletContextEvent");	}	@Override	public void contextInitialized(ServletContextEvent servletContextEvent) {		// TODO Auto-generated method stub		System.out.println("servletContextEvent");	}}

 

注册bean(第一种方式)

代码注册:(在SpringBootDemoFilerServletLisApplication类中)

@Bean	public ServletRegistrationBean
servletRegistrationBean() { return new ServletRegistrationBean
(new CustomServlet(), "/customServlet"); } @Bean public FilterRegistrationBean
filterRegistrationBean(){ return new FilterRegistrationBean
(new CustonFilter(),servletRegistrationBean() ); } @Bean public ServletListenerRegistrationBean
servletListenerRegistrationBean(){ return new ServletListenerRegistrationBean
(new CustomListener()); }

 第二种代码注册:(类似一)

@SpringBootApplicationpublic class SpringBootDemoFilerServletLisApplication implements ServletContainerInitializer{			@Override	public void onStartup(Set
> arg0, ServletContext servletContext) throws ServletException { // TODO Auto-generated method stub servletContext.addServlet("CustomServlet", new CustomServlet()).addMapping("/customServlet"); servletContext.addFilter("CustonFilter", new CustonFilter()).addMappingForServletNames(EnumSet.of(DispatcherType.REQUEST), true, "CustomServlet"); servletContext.addListener(new CustomListener()); }

 第三种基于注释:

首先:在 SpringBootDemoFilerServletLisApplication 类中添加

 

在listener

在servlet

在filter (  "/*" 代表过滤全局  )

 

 

转载于:https://www.cnblogs.com/durenniu/p/9520910.html

你可能感兴趣的文章
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
C#编程(七十六)----------使用指针实现基于栈的高性能数组
查看>>
Android 类库
查看>>
vue和iview应用中的一些问题(持续更新)
查看>>
基于 Workman 实现Web扫描登录
查看>>
karma如何与测试框架合作2之webpack
查看>>
关于VSCode更新对于emmet2.0支持的配置更改问题。
查看>>
二叉树的遍历
查看>>
10分钟搭建MySQL Binlog分析+可视化方案
查看>>
vmware虚拟机配置串口
查看>>
小型自动化运维--expect脚本之传递函数
查看>>
Exchange Server 2010部署安装之一
查看>>
Nsrp实现juniper防火墙的高可用性【HA】!
查看>>
oracle11g 安装在rhel5.0笔记
查看>>
解决Lync 2013演示PPT提示证书问题的多种方法
查看>>
[转]经典正则表达式
查看>>