这篇博客是最近学习SpringBoot总结出来的,仅为我个人的学习总结,不足之处,敬请指正。
注册方式一:ServletRegistrationBean
第一步:创建MyServlet类,实现HttpServlet抽象类
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MyServlet extends HttpServlet {
//快捷键ctrl+o
//选择doGet方法和doPost方法进行重写
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//项目运行成功之后,会在页面上打印出"Hello MyServlet"
resp.getWriter().write("Hello MyServlet");
}
}
第二步:在配置类中进行实例化
@Configuration
public class MyServerConfig {
//注册三大组件
@Bean
public ServletRegistrationBean myServlet(){
ServletRegistrationBean registrationBean=new ServletRegistrationBean(new MyServlet(),"/myServlet");
return registrationBean;
}
运行结果:
注册方式二:FilterRegistrationBean
第一步:创建MyFilter类,实现Filter接口
import javax.servlet.*;
import java.io.IOException;
//注意,在继承Filter接口时,选择javax.servlet包下的Filter接口
public class MyFilter implements Filter {
//(IDEA)ctrl+o快捷键
//重写Filter的init、destory、doFilter三个方法
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void destroy() {}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//注册成功之后,在控制台输出MyFilter processed success...
System.out.println("MyFilter processed success...");
filterChain.doFilter(servletRequest, servletResponse);
}
}
第二步:在配置类中进行实例化
import java.util.Arrays;
@Configuration
public class MyServerConfig {
//用FilterRegistrationBean方式注册
@Bean
public FilterRegistrationBean myFilter(){
FilterRegistrationBean registrationBean=new FilterRegistrationBean();
registrationBean.setFilter(new MyFilter());
//拦截/myServlet之后生效
registrationBean.setUrlPatterns(Arrays.asList("/myServlet"));
return registrationBean;
}
}
运行结果(控制台输出):
注册方式三:ServletListenerRegistrationBean
第一步:创建MyListener,实现ServletContextListener接口
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
//重写contextInitialized、contextDestroyed方法
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("contextInitialized...Web应用启动了");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("contextDestroyed...当前web应用被销毁了");
}
}
第二步:在配置类中进行实例化
@Configuration
public class MyServerConfig {
//用ServletListenerRegistrationBean方式注册
@Bean
public ServletListenerRegistrationBean myListener(){
ServletListenerRegistrationBean<MyListener> registrationBean=new ServletListenerRegistrationBean<>(new MyListener());
return registrationBean;
}
运行结果: