这只是我个人的笔记,为了让自己印象深一点,没有太多的详细讲解,只是为了以后让自己有一个记忆点!!!
一、什么是servlert
Servlet(Server Applet),称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
二、执行流程
在浏览器发出一次请求后,首先是DNS域名解析,因为只能识别IP地址,第二步是先在本地找有没有请求对应的资源,如果没有就取web服务器上找;第三步在web服务器中判断请求的资源是静态资源还是动态资源;第四步:假如是请求的是动态资源,那么Servlet就会来处理浏览器发出的请求,通过web.xml的路径映射配置找到对应的类中的Service方法中去处理Request请求;最后Reponse响应回浏览器同时返回所请求到的资源;
三、实现关系
GenericServlet类:这是通用的Servlet,是一个与协议无关的Servlert(因为在它的service方法中接收的参数是Servletxxxxx);
HttpServlet类:这是HtppServlet专用的类(专门用来处理Http请求),所有我们一般的使用方式是在自写的Servlet类中继承 HttpServlet接口然后重写其doGet()和doPost方法;
四、生命周期
inti :浏览器在对一个地址第一次被访问的时候一servlet就会被实例化,同时会执行init方法,在一个servlet中只会执行一次;
service : 只要发出一次请求就会执行一次;
destroy:在页面销毁的时候执行;
五、启动时加载
在页面初始化加载资源过多时,会导致页面初始化时间过程,影响用户的体验,而且如果在init方法中加载资源的话,上面也说了,是用户去访问时才执行,所以用户还是要等待。
那么解决办法就是使用启动时加载,在服务器启动时加载数据;
数字小级别高,但是最好不要设置成1,因为在Tomcat中有一个默认的配置,它的级别为1;
六、注解
使用注解开发,我们可以不用去web.xml文件中去配置映射路径了,可以做到简化开发,提高开发效率;
@WebServlet(urlPatterns="/路径")
@WebServlet(value="/路径")
@WebServlet("/路径")
以上三种是同等作用的;
这个注解的具体属性可以自行去源码里看;



