1. 自定以servlet,继承HttpServlet 并重写doGet、doPost方法
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("Hello java SpringBoot");
}
}
2.自定义filter过滤器,实现Javax.Servlet.*包中的Filter接口,重写其方法
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("自定义的过滤器运行了");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
3.实现自定义的监听器,实现想要自定义的监听器 例如这里实现的是容器的初始化和销毁的监听器。
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("contextInitialized...bean:初始化了");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("contextInitialized...bean:当前项目销毁了");
}
}
4.把自定义的三大组件,分别注册到容器中···
@Configuration
public class MyServerConfig {
@Bean
public ConfigurableServletWebServerFactory configurableTomcatWebServerFactory(){
TomcatServletWebServerFactory factory=new TomcatServletWebServerFactory();
factory.setPort(8081);
return factory;
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean<MyServlet> registrationBean = new ServletRegistrationBean<>(new MyServlet(),"/MyServlet");
registrationBean.setLoadOnStartup(1);
return registrationBean;
}
@Bean
public FilterRegistrationBean registrationBean(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new MyFilter());
registrationBean.setUrlPatterns(Arrays.asList("/hello", "/MyServlet"));
return registrationBean;
}
@Bean
public ServletListenerRegistrationBean<MyListener> listenerRegistrationBean(){
ServletListenerRegistrationBean<MyListener> registrationBean = new ServletListenerRegistrationBean<>(new MyListener());
return registrationBean;
}
}