- 使用原生注解注入servlet元件:@WebServlet處理請求路由,+主配置類中标注@ServletComponentScan掃描原生注解所在的路徑
@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("66666");
}
}
@MapperScan("com.atguigu.admin.mapper")
@ServletComponentScan(basePackages = "com.atguigu.admin")
@SpringBootApplication(exclude = RedisAutoConfiguration.class)
public class Boot05WebAdminApplication {
public static void main(String[] args) {
SpringApplication.run(Boot05WebAdminApplication.class, args);
}
}
``
- 使用原生注解注入filter元件:@WebFilter + @ServletComponentScan
@Slf4j
@WebFilter(urlPatterns={"/css/","/images/"}) // 表示攔截該路徑下的靜态資源
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("MyFilter初始化完成");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
log.info("MyFilter工作"); // 攔截後進行邏輯處理
chain.doFilter(request,response); // 最後放行,放行後可通路
}
@Override
public void destroy() {
log.info("MyFilter銷毀");
}
}
- 使用原生元件注入listener元件:@WebListener + @ServletComponentScan
@Slf4j
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
log.info("MySwervletContextListener監聽到項目初始化完成");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
log.info("MySwervletContextListener監聽到項目銷毀");
}