SpringBoot的Web开发入门案例5—注册Servlets, Filter, Listener

SpringBoot的Web开发入门案例5—注册Servlets, Filter, Listener


注册Servlet

  1. 创建MyServlet
package com.blu.conf;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet{
	
	@Override
	public void init() throws ServletException {
		super.init();
		System.out.println("Servlet --- init()");
	}
	
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//		super.service(req, resp);
		System.out.println("Servlet --- service()");
		resp.sendRedirect("/toLogin");
	}
}
  1. 在配置类中添加Bean
	/**
	 *  <servlet>
	 * 		<servlet-name>
	 * 		<servlet-class>
	 *  </servlet>
	 *  <servlet-mapping>
	 *  	<servlet-name>
	 *  	<url-pattern>
	 *  </servlet-mapping>
	 */
	
	@Bean
	public ServletRegistrationBean<MyServlet> myServlet(){
		ServletRegistrationBean<MyServlet> ms = new ServletRegistrationBean<MyServlet>(new MyServlet(),"/ms");
		return ms;
	}
  1. 启动项目,第一次访问路径http://localhost:60001/ms,控制台打印:
Servlet --- init()
Servlet --- service()


注册过滤器Filter

  1. 创建MyFilter
package com.blu.conf;

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 MyFilter implements Filter{

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		System.out.println("执行了过滤器");
		chain.doFilter(request, response);
	}

	@Override
	public void destroy() {
	
	}
}
  1. 在配置类中添加Bean
	/**
	 * <filtername>
	 * <urlpattern>
	 * 
	 */
	
	@Bean
	public FilterRegistrationBean<MyFilter> myFilter(){
		FilterRegistrationBean<MyFilter> filter = new FilterRegistrationBean<MyFilter>();
		//对所有请求都执行过滤
		filter.addUrlPatterns("/*");
		//指定执行的过滤器
		filter.setFilter(new MyFilter());
		return filter;	
	}
  1. 启动项目,访问任意路径,控制台打印:
执行了过滤器


注册监听器Listener

  1. 创建MyListener
package com.blu.conf;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyListener implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("容器启动了...");
		
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("容器销毁了...");
		
	}

}
  1. 在配置类中添加Bean
	/**
	 * 注册监听器
	 */
	
	@Bean
	public ServletListenerRegistrationBean<MyListener> myListener(){
		ServletListenerRegistrationBean<MyListener> bean 
			= new ServletListenerRegistrationBean<MyListener>(new MyListener());
		
		return bean;	
	}
  1. 启动项目时,控制台打印:
容器启动了...
  1. 终止项目时,控制台打印:
容器销毁了...
发布了20 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BLU_111/article/details/105586850