Servlet&JSP概述

没记错应该是出自菜鸟教程(www.runoob.com)。。。


配置:
编辑好的servlet源文件并不能直接相应用户请求,还必须将其编译成.class文件,将编译好的.class文件放到WEB-INF/classes路径下;如果servlet有包,则还需要将.class文件放到包路径下。
 
容器到servlet的周期流程:
1.客户发出请求 -> Web服务器转发到Web容器Tomcat;
2.Tomcat主线程对转发来用户的请求做出响应,创建两个对象:HttpServletRequest和HTTPServletResponse;
3.从请求的URL中找到正确的Servlet,Tomcat为其创建或者分配一个线程,同时把上述两个对象传递给该线程;
4.Tomcat调用Servlet的service()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5.假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
 
Servlet线程结束时:Tomcat将响应对象转换为HTTP响应发给客户,同时删除请求和响应对象。
可以将Servlet的生命周期概括为:Servlet类加载(3)、Servlet实例化(3)、调用init方法(3)、调用service()方法(4、5)、调用destroy()方法。
 
1.WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,容器会把访问请求交给JSP引擎去处理;
2.每个JSP页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的.class类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释这个由JSP页面翻译成的Servlet程序,并执行该Servlet实例的jspinit()方法(jspinit()方法在Servlet的生命周期中只被执行一次);
3.然后创建并启动一个新的线程,新线程调用实例的jspService()方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求一个线程);
4.浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService()方法中;
5.jspService()方法执行后会将HTML内容返回给客户端。

猜你喜欢

转载自www.cnblogs.com/zbb2161228/p/10425019.html