• 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技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

  • 相关阅读:
    软件测试-三角形问题
    软件测试经典问题——佣金问题
    Ubuntu下ssh免password登录安装
    elasticsearch的javaAPI之query
    非递归实现树的遍历
    递归输出字符串 经典中的经典
    对二维数据进行边界拓展
    【Bootstrap3.0建站笔记一】表单元素排版
    java模拟实现生产者---消费者问题
    Codeforces Round #271 (Div. 2)
  • 原文地址:https://www.cnblogs.com/zzjlxy-225223/p/10752993.html
Copyright © 2020-2023  润新知