目录
3.在启动类上加注解 @ServletComponentScan
2.FilterRegistrationBean 过滤器的注册类
3.ServletListenerRegistrationBean 监听器的注册类
静态资源映射规则
来源:
JS文件,音频,视频
springMVC框架中把上述的资源也当成一种请求,
在静态页面引用完静态资源的时候,纳入到mvc中就会引用不到【原因:前段控制器】
解决思路:
就叫做静态资源映射
SpringBoot中放在resource的static文件加下
就可以直接访问
静态资源访问前缀
spring:
mvc:
static-path-pattern: /根路径/**
enjoy模板引擎
springMVC控制层的优化方案
注册Servlet三大组件
Servlet/Filter/Listener
在springboot中如何创建servlet三大组件
第一种:
写类实现父类接口
重写方法
标注解
加一个扫描注解【否则传统的不生效】
1.只需要web启动器坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.三大组件
2.1、@WebServlet("/myServlet")
@WebServlet("/myServlet")
MyServlet extends HttpServlet{
重写doGet()
doPost()
}
2.2、 @WebListener
@WebListener
MyListener implements ServletContextListener [监听application容器]{
需要重写 Initialized() 容器启动时候运行
Destroyed() 容器销毁时候运行 【在idea中点exit按钮】
}
2.3、过滤器 @WebFilter
@WebFilter
MyFilter implements Filter{
其中重写doFilter(){
字符编码集过滤
request.setCharacterEncoding("utf-8")
chain.doFilter(request,response);//分水岭 【放行操作】
response.setCharacterEncoding("utf-8")
}
}
3.在启动类上加注解 @ServletComponentScan
扫描路径:
默认:启动类所在的包以及子目录下所有内容
作用:
那三个注解才能生效,实现功能
@SpringBootApplication
@ServletComponentScan
public class SpringbootDataDruidApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDataDruidApplication.class, args);
}
}
第二种:基于配置类:
解释:【系统过滤器和第三方提供的过滤器不能给源码上加注解,只能通过@Bean来配置 】
三个关键字配合@Bean替代第一种的注解:
1.ServletRegistrationBean
servlet注册类 替换@WebServlet(urlPatterns)
1.1、实例化出来
其中泛型为未来真正意义上的注册的Servlet类型
1.2、给注册类绑定信息
setServlet(未来真正意义上的注册的Servlet类型对象)
setUrlMapper(未来真正意义上的注册的Servlet类型对象真实的访问路径)
@Bean
public ServletRegistrationBean doServlet(){
ServletRegistrationBean<MyServlet> bean = new ServletRegistrationBean<MyServlet>();
bean.setServlet(new MyServlet());
bean.setUrlMappings(Arrays.asList("/myServlet"));
bean.setLoadOnStartup(1);
return bean;
}
2.FilterRegistrationBean 过滤器的注册类
@Bean
public FilterRegistrationBean doFilter(){
FilterRegistrationBean filter = new FilterRegistrationBean();
filter.setFilter(new MyFilter());
filter.addUrlPatterns("/*");
return filter;
}
3.ServletListenerRegistrationBean 监听器的注册类
@Bean
public ServletListenerRegistrationBean doListener(){
//关闭监听器切记不要直接点击红色按钮,太暴力,点击控制台左侧exist
ServletListenerRegistrationBean listener = new ServletListenerRegistrationBean();
listener.setListener(new MyListener());
return listener;
}