Servlet
还是得集成HttpServlet,然后重写父类方法。 类的上方增加了@WebServlet注解,其实就是代替了xml的配置,可以被spring boot扫描、注册到。
package org.test.Controll;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name="helloServlet",urlPatterns = "/helloServlet")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("执行了 Servlet 的 DoGet");
}
}
Filter
package org.test.Controll;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "HelloFilter",urlPatterns = "/HelloServlet")
public class HelloFilter 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("执行前doFilter");
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("执行后doFilter");
}
@Override
public void destroy() {
}
}
Listener
package org.test.Controll;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class HelloListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("contextInitialized 初始化啦");
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
}
}
注册的两种方式
第一种, 使用@ServletComponentScan,自动注册
package org.test;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan //扫描servlet注解
public class Application {
public static void main(String[] args) {
org.springframework.boot.SpringApplication.run(Application.class, args);
}
}
第二种,使用@Bean注解自行注册
package org.test;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
org.springframework.boot.SpringApplication.run(Application.class, args);
}
@Bean
public ServletRegistrationBean getServletRegistrationBean() {
ServletRegistrationBean bean = new ServletRegistrationBean(new HelloServlet());
bean.addUrlMappings("/HelloServlet2");
return bean;
}
}