带着萌新看springboot源码06

  这节来讲个你们都比较熟悉的东西,就是servlet三大组件,servlet、filter、listener,再说说springboot的内置tomcat。java

  也许还会说一下tomcat的运行原理,还有,springboot不是不支持jsp吗(是由于嵌入式tomcat的缘由),那我就让springboot支持jsp,其余的仍是同样。web

  比较长,可能要分为两节。spring

1.servlet配置浏览器

  想必你们不会陌生servlet配置,写个类继承HttpServlet,而后在原来的web.xml文件中配置<servlet-name><servlet-class>还有配置servlet的映射路径<servlet-mapping>,忘记的小伙伴就回头看看啊。tomcat

  如今的springboot配置servlet,也差很少,写个servlet,可是记住,springboot不能直接识别servlet,须要借助一个工具ServletRegistrationBean(xxxBean在学spring的时候应该很常见,本质上仍是一个Bean,可是有可以生产bean的能力,相似一个简单的工厂类)springboot

 

  

  咱们接着随意找个配置类(我图方便,就在那个main方法的主配置类加了),加入以下代码:并发

  

  ok,就这样,而后运行,浏览器输入网址app

2.配置Filterssh

  配置和上面差很少,写个Filter实现类,利用FilterRegistrationBean往容器里添加filterjsp

  

  而后运行springboot,输入xxxxx/hehe就好了

 

3.配置listener

  listener最容易,由于前面两个还有配置url映射,这个listener不用配。写个listener,利用ServletListenerRegistrationBean添加到容器里。

 

   启动和关闭应用就能看到结果:

 

 最后的就是注意ServletListenerRegistrationBean这个类要传入泛型,打开这个类,能够看到咱们能够定制监听器的类型

 

 4,简单说说嵌入式servlet容器(springboot默认固然是用tomcat)

  springboot应用和之前的ssm等应用最大的不一样是,springboot能够打成jar包,而后在装有java运行环境的电脑,就能用java -jar xxx.jar就可以直接运行一个springboot应用,很是方便,可是缺点是不支持jsp;

  而ssm、ssh等的就要达成war包,而后在新的电脑上配置java环境,下载tomcat,再配置tomcat和java的版本,而后才能部署应用,运行,emmmm....估计要好久!

  形成这种结果的最大缘由就是springboot装的是小tomcat(咳咳,这是我本身为了方便理解才说的,标准称呼是嵌入式servlet容器,英文全程:EmbeddedServletContainer),如下假如看到小tomcat,就要理解是嵌入式servlet容器啊(EmbeddedServletContainer),这么长的单词必定要记下来,由于后面会有更长的.....

  首先简单说说servlet容器种类。常见的Tomcat(springboot默认),Jetty(适用于长链接,好比聊天这种),Undertow(不支持jsp,可是并发性能很是好),各有优点。

  打开pom配置文件,能够看到

 

而后将tomcat变为jetty就能够了,maven就会自动帮你下载对应的jar包

 

   运行springboot,控制台输出以下所示,你就成功了。

 

  到这里,springboot配置servlet三大组件以及切换嵌入式servlet容器就讲完了,接下来干什么想必都很清楚,固然是怎么修改容器的默认配置以及运行原理啊!

  不知道你们有没有发现上图端口是8081(默认8080),在配置文件是怎么配置的(之前说过,估计不少人都知道),为何会起做用?我能不能用@Bean的方式修改容器默认参数呢?以及其中的运行原理?固然,也会带着你们一块儿走走从主配置类开始,经过一个run方法,逐渐的就运行容器的过程。

  后面还会说说不用嵌入式servlet容器的方式,我就用我外界下载的tomcat和springboot应用一块儿用,而且还支持jsp。

相关文章
相关标签/搜索