SpringBoot的Web开发

目录

静态资源映射规则

来源:

解决思路:

​编辑 静态资源访问前缀

enjoy模板引擎

springMVC控制层的优化方案

注册Servlet三大组件

在springboot中如何创建servlet三大组件 

第一种:

 1.只需要web启动器坐标

2.三大组件

3.在启动类上加注解 @ServletComponentScan

第二种:基于配置类: 

1.ServletRegistrationBean

1.1、实例化出来

1.2、给注册类绑定信息

2.FilterRegistrationBean 过滤器的注册类

3.ServletListenerRegistrationBean 监听器的注册类 


静态资源映射规则

来源:

         JS文件,音频,视频

springMVC框架中把上述的资源也当成一种请求,

在静态页面引用完静态资源的时候,纳入到mvc中就会引用不到【原因:前段控制器】

解决思路:

              就叫做静态资源映射

SpringBoot中放在resource的static文件加下

就可以直接访问

 静态资源访问前缀

spring:

      mvc:

              static-path-pattern: /根路径/** 

enjoy模板引擎

                  http://t.csdn.cn/56bCJ

springMVC控制层的优化方案

                  http://t.csdn.cn/Cvstn

注册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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值