注册Servlet三大组件 Servlet
Filter
Listener
新建 com.iris.springboot.servlet.HelloServlet.java
package com.iris.springboot.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*自定义Servlet组件*/
public class HelloServlet extends HttpServlet {
//处理get请求
@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("HelloServlet success....");
}
}
新建 com.iris.springboot.config.MyServletConfig.java
自定义配置类,注册Servlet相关组件
package com.iris.springboot.config;
import com.iris.springboot.servlet.HelloServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyServletConfig {
//注册Servlet组件
@Bean
public ServletRegistrationBean helloServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new HelloServlet(), "/hello");
//设置servlet组件的参数
bean.setLoadOnStartup(1);
return bean;
}
}
新建 com.iris.springboot.filter.MyFilter.java
package com.iris.springboot.filter;
import javax.servlet.*;
import java.io.IOException;
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter初始化操作");
}
@Override
public void destroy() {
System.out.println("filter销毁");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("Myfilter过滤完成");
//放行请求
filterChain.doFilter(servletRequest,servletResponse);
}
}
在 com.iris.springboot.config.MyServletConfig.java
添加组件
//注册Filter组件
@Bean
public FilterRegistrationBean myFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
//设置自定义filter
bean.setFilter(new MyFilter());
//过滤哪一些请求
bean.setUrlPatterns(Arrays.asList("/hello"));
return bean;
}
新建 com.iris.springboot.listener.MyListener.java
package com.iris.springboot.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
//测试关于应用的启动和关闭
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Springboot.Servlet 应用启动");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("Springboot.Servlet 应用销毁");
}
}
在 com.iris.springboot.config.MyServletConfig.java
添加组件
//注册Listener组件
@Bean
public ServletListenerRegistrationBean myListener(){
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new MyListener());
return bean;
}