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。

  • 相关阅读:
    Poj 2017 Speed Limit(水题)
    Poj 1316 Self Numbers(水题)
    Poj 1017 Packets(贪心策略)
    Poj 1017 Packets(贪心策略)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2000 Gold Coins(水题)
    poj 2000 Gold Coins(水题)
  • 原文地址:https://www.cnblogs.com/xujian2014/p/5500555.html
Copyright © 2011-2022 走看看