zoukankan      html  css  js  c++  java
  • Servlet知识点回顾

    一、Servlet生命周期  

      服务器调用一个Servlet的8个步骤:

      1、在服务器启动时,当Servlet被配置好或者被客户首次请求时,由服务器加载servlet,这一步相当于下列代码:

        Class c=Class.forName("com.source.MyServlet");

      2、服务器创建一个Servlet类的实例来为所有的请求服务。利用多线程,可以由单个servlet类的实例来服务于并行的请求,此步相当于下列代码:

      Servlet s=(Servlet)c.newInstance();

      3、服务器调用Servlet的init方法,用来对客户端的首次请求提供服务之前,完成一些初始化的工作。

      4、服务器从包含在客户请求中的数据里构造一个ServletRequest或者HttpServletRequest对象,还构造一个ServletResponse或者HttpServletResponse对象来为返回响应提供方法。到底生成哪一种类型的对象,取决于Servlet是扩展了GenericServlet还是扩展了HttpServlet。

      5、服务器调用Servlet的service方法,将步骤4中的对象作为参数传递进去。当并行的请求到来时,多个service方法能够同时运行在独立的线程中。

      6、通过分析ServletRequestt或者HttpServletRequest对象,service方法处理客户端的请求,并用ServletResponse或者HttpServletResponse对象来响应。

      7、如果服务器收到另一个对该Servlet的请求,处理过程从步骤5重复。

      8、一旦Servlet容器检测到一个Servlet要被卸载(可能是因为停止Servlet容器或者web应用要被卸载掉),服务器会在所有的Servlet的service线程完成之后调用Servlet的destory方法。

      

    二、doGet和doPost方法

      1、通过表单提交到的servlet,看form的method是get还是post

      2、通过链接<a href...>访问的servlet调用doGet方法

      3、直接在浏览器地址栏键入的servlet地址调用也是doGet方法

      get方式:

      

      post方式:将各个表单字段元素及其数据作为http消息的实体内容发送给web服务器端,传送的数据量要比get方式传送的数据量大的多。

      

    三、ServletContext接口

      Servlet引擎为每个Web应用都会创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中。

      由于一个Web应用程序中的所有Servlet都共享一个ServletContext对象,所以,ServletContext对象被称之为application对象。

      功能:

    • 获取web应用程序的初始化参数
    • 记录日志
    • application域范围的属性
    • 访问资源文件
    • 获取虚拟路径所映射的本地路径:getRealPath(String path);
    • web应用程序之间的访问
    • 其它方法

    四、过滤器

      通过Filter过滤器技术,对WEB服务器管理所有Web资源:例如对jsp、静态图片文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

      1、Filter实现原理

      Filter接口中有一个doFilter方法,当编写好Filter,并配置对哪个Web资源进行拦截后,web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法。WEB服务器在调用doFilter方法时,会传递一个filterChain对象进来,filterChain对象是也提供了一个doFilter方法,根据需求决定是否调用此方法,调用该方法,则web服务器就会调用web资源的service方法。

      2、开发步骤

      编写Java类实现Filter接口,并实现其doFilter方法

      在web.xml文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所拦截的资源。

      注:在一个web应用中,可以开发多个filter,这些filter组合起来称为一个Filter链。web服务器根据在web.xml文件的注册顺序,决定先调用哪个Filter。

  • 相关阅读:
    PDO 数据访问抽象层
    递归例子
    Windows对象操作:浏览器窗口信息
    练习题:选择器和选择好友
    搭建wamp环境,数据库基础知识
    堆表空间管理
    vc弹出USB的方法. 附试验通过的代码!
    javascript 调用C++函数
    [转]在Win7 64位注册ActiveX控件
    SetForegroundWindow的正确用法
  • 原文地址:https://www.cnblogs.com/xujian2014/p/5500555.html
Copyright © 2011-2022 走看看