Servlet&JSP概述

Posted zbb2161228

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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内容返回给客户端。


















以上是关于Servlet&JSP概述的主要内容,如果未能解决你的问题,请参考以下文章

Head First Servlet&JSP(beta版)

JSP&Servlet学习笔记(下)

[Servlet&JSP] 从JSP到Servlet

JSP概述及一个例子

Servlet和JSP生命周期概述

《Head First Servlets & JSP》-2-概述