servlet总结

servlet的概念
Servlet是一个Java编写的程序,此程序是基于Http协议的,在服务器端运行的(如tomcat)
Tomcat是一个容器
容器能接受用户传递的参数(也就是实现数据的交互),还需要容器有专门的程序实现数据交互,这样的程序叫做服务器小程序,该程序就叫servlet。

servlet的作用:
主要是处理客户端的请求并将其结果发送到客户端。
(要进行实现servlet的编写需要继承一个抽象类"httpservlet")

servlet的生命周期
加载类--->实例化--->初始化--->请求处理--->销毁

加载类:
把servlet类的.class文件中的数据读到内存中,

实例化:
Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了 Servlet的初始化配置信息。Servlet容器创建一个servlet对象

初始化:
Servlet容器调用servlet对象的init方法进行初始化

运行处理过程:
当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和servletResponse对象。

销毁:当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象

注意:在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数。

servlet的内置对象
1,request 转译后对应HttpServletRequest/ServletRequest对象
客户端的请求参数都被封装到这个对象里面

2.response 转译后对应HttpServletRespons/ServletResponse对象
对客户的请求做出动态的响应,向客户端发送数据。

3.session 转译后对应HttpSession对象
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失

4.application 转译后对应ServletContext对象
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

5.转译后对应JspWriter对象,其内部关联一个PringWriter对象
out 对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。

6,page 转译后对应this

7.config 转译后对应ServletConfig对象
常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes()

8.exception 转译后对应Throwable对象,代表由其他JSP页面抛出的异常对象,只会出现于JSP错误页面(isErrorPage设置为true的JSP页面)

9.pageContext 转译后对应PageContext对象,它提供了JSP页面资源的封装,并可设置页面范围属性

servlet的单例模式
servlet类是单例的
如何解决servlet的线程安全问题
1、实现singleThread接口,实现了这个接口,容器保证在同一时刻内只有一个线程访问该实例

2、对可能引起并发的地方用synchronized关键字同步代码块

3、避免使用实例变量,多用局部变量,将数据存储放在方法中

servlet监听器
在Servlet中定义了多种类型的监听器,它们用于监听的事件源分别是ServletContext、HttpSession和ServletRequest这三个域对象

Servlet中的监听器的分类

一类:监听三个域对象的创建和销毁的监听器(三个)

二类:监听三个域对象的属性变更(属性添加、移除、替换)的监听器(三个)

三类:监听HttpSession中JavaBean的状态改变(钝化、活化、绑定、解除绑定)的监听(两个)

servlet的过滤器
Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

posted @ 2019-04-22 21:04  长木木弓  阅读(154)  评论(0编辑  收藏  举报