Servlet和JSP知识点汇总
2018-02-03 22:37
351 查看
Servlet生命周期
①加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
②初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
③处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
④销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁
⑤卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作。
简单总结:只要访问Servlet,service()就会被调用。init()只有第一次访问Servlet的时候才会被调用。destroy()只有在Tomcat关闭的时候才会被调用。
Tomcat与Servlet如何工作
1,Web Client 向Servlet容器(Tomcat)发出Http请求
2,Servlet容器接收Web Client的请求
3,Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
4,Servlet容器创建一个HttpResponse对象
5,Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
6,HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
7,HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
8,Servlet容器把HttpServlet的响应结果传给Web Client。
Servlet工作原理
1、首先简单解释一下Servlet接收和响应客户请求的过程,客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。在Servlet接口和GenericServlet中是没有doGet()、doPost()等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。
2、每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()方法。GenericServlet是一个通用的,不特定于任何协议的Servlet,它实现了Servlet接口。而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口。所以我们定义Servlet的时候只需要继承HttpServlet即可。
3、Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于HTTP协议的类,所以HttpServlet中实现了service()方法,并将请求ServletRequest、ServletResponse 强转为HttpRequest 和 HttpResponse。
创建Servlet对象的时机
一,Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
二,在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。
三,Servlet Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。
为什么Servlet是单例的
浏览器多次对Servlet的请求,一般情况下,服务器只创建一个Servlet对象,也就是说,Servlet对象一旦创建了,就会驻留在内存中,为后续的请求做服务,直到服务器关闭。
JSP的执行过程
JSP的执行过程主要可以分为以下几点:
1)客户端发出请求。
2)Web容器将JSP转译成Servlet源代码。
3)Web容器将产生的源代码进行编译。
4)Web容器加载编译后的代码并执行。
5)把执行结果响应至客户端。
①加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
②初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
③处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
④销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁
⑤卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作。
简单总结:只要访问Servlet,service()就会被调用。init()只有第一次访问Servlet的时候才会被调用。destroy()只有在Tomcat关闭的时候才会被调用。
Tomcat与Servlet如何工作
1,Web Client 向Servlet容器(Tomcat)发出Http请求
2,Servlet容器接收Web Client的请求
3,Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
4,Servlet容器创建一个HttpResponse对象
5,Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
6,HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
7,HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
8,Servlet容器把HttpServlet的响应结果传给Web Client。
Servlet工作原理
1、首先简单解释一下Servlet接收和响应客户请求的过程,客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。在Servlet接口和GenericServlet中是没有doGet()、doPost()等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。
2、每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()方法。GenericServlet是一个通用的,不特定于任何协议的Servlet,它实现了Servlet接口。而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口。所以我们定义Servlet的时候只需要继承HttpServlet即可。
3、Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于HTTP协议的类,所以HttpServlet中实现了service()方法,并将请求ServletRequest、ServletResponse 强转为HttpRequest 和 HttpResponse。
创建Servlet对象的时机
一,Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。
二,在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。
三,Servlet Servlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。
<servlet>
<servlet-name>Init</servlet-name>
<servlet-class>org.xl.servlet.InitServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
为什么Servlet是单例的
浏览器多次对Servlet的请求,一般情况下,服务器只创建一个Servlet对象,也就是说,Servlet对象一旦创建了,就会驻留在内存中,为后续的请求做服务,直到服务器关闭。
JSP的执行过程
JSP的执行过程主要可以分为以下几点:
1)客户端发出请求。
2)Web容器将JSP转译成Servlet源代码。
3)Web容器将产生的源代码进行编译。
4)Web容器加载编译后的代码并执行。
5)把执行结果响应至客户端。
相关文章推荐
- JSP-SERVLET_知识点汇总
- Servlet与Jsp重要知识点总结(基础篇)
- 【S2第二学期-使用JSP/Servlet技术开发新闻发布系统】全书知识点总结
- 细小知识点之JSP&Servlet
- JSP和servlet的相关知识点
- jsp和servlet知识点总结
- JSP、Servlet注意知识点
- jsp和servlet知识点总结
- jsp和servlet知识点整理
- Servlet & Jsp 项目搭建问题汇总
- jsp和servlet知识点总结
- servlet-response请求知识点 汇总
- JSP-SERVLET知识点
- Jsp&Servlet知识点
- Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、Struts面试题汇总(附答案)
- JSP和servlet知识点总结
- JSP知识点汇总
- jsp servlet 中 表单提交路径, RequestDispacher 路径,sendRedirect 路径的相关问题汇总
- jsp&servlet的一些知识点
- Servlet&JSP中的知识点