zoukankan      html  css  js  c++  java
  • Servlet

    一、Servlet

    1. 是什么: servlet是一个小应用程序
    2. 作用: 处理从客户端发送的请求及服务端的响应。
    3. 开发步骤:

        a)写一个类ServletDemo1,继承javax.servlet.GenericServlet类,实现  service方法

        b) 打开web.xml文件,做如何配置

    <!-- sevlet标签是用来定义一个Servert对象的 -->
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-calss>cn.JA_K56c.servlet.ServletDemo1</servlet-class>
        <!-- ServletDemo1 demo = new ServletDemo1() -->
    </servlet>

    <!-- servlet-mapping的作用是定义一个映射关系,就是访问的方式-->
    <servlet-mapping>
      <servlet-name>demo</servlet-name>
      <url-pattern>abc</url-pattern>
    </servlet-mapping>

        c)部署到服务器上

        d)打开浏览器,通过 http://localhost:8080/day08_00_servlet/abc 访问.

    1. Servlet的执行调用过程(清楚)

         

    1. servlet的生命周期(牢记)

      public void init(ServletConfig) ; 初始化方法

      public service(ServletRequest,ServletResponse) ; 服务方法

      public destroy() ;  销毁方法

    l  默认情况下,servlet对象在第一次请求的时候调用构造函数创建, 创建之后自动调用带参的init方法,然后调用service方法.destroy方法在停止服务器或者停止应用的时候调用。整个过程中,init方法和destroy方法只会调用一次,而service方法会反复调用。

    l  可以通过配置web.xml文件来改变创建servlet的时机.配置如下(就是可以不用客户访问的时候直接就创建,也就是控制servlet里面的创建时间)

     

    此时在服务器启动的时候就创建对象并进行初始化了.此Servlet对象在服务器停止或者应用停止时才死亡.

    1. url配置(掌握)(就是配置地址,在网页上输入的地址)
      1.                                         i.              就是配置这个

    两种:

          

    l  配置优先级:  精确匹配  > 以/开头的匹配 > 以*开头的匹配

    l  如果配置成/ 那么就是一个缺省的servlet,此Servlet处理所有找不到匹配路径的url

    1. servlet的创建问题(掌握)

    创建一个servlet有3中方式:

    1)      采用实现servlet接口, (不推荐)

    2)      采用继承GenericServlet类( 不推荐)

    3)      采用继承HttpServlet(推荐)

    1. serlvet的线程安全(明白)

    明确: Servlet的设计是一个单实例多线程。

    线程安全要求将变量创建成一个局部变量,而不要创建成实例变量.

           

    二、servletConfig

    1. 作用:就是拿取servlet的相关配置.也就是拿去web.xml里面的配置信息(这个配置信息都是一样的,所以无论哪个方法得到都是一样)
    2. 如何获取ServletConfig对象.

       a:: 通过init方法获取  (是有参的init{super.init(config)    this.config= config})

       b:通过servlet实例的getServletConfig()方法获取

           3. 拿取配置参数:(掌握)

                           a. 拿取单个配置参数

                                      

                 Servlet代码:

                                             

               b. 拿取所有的参数:

                                      

                                servlet代码:

                                             

    三、ServletContext (非常重要)

    1. 生命周期很长
    2. 每个web应用都有一个唯一的servletContext对象.
    3. 在每个应用加载的时候,服务器就会创建servletContext对象。
    4. ServletContext对象是一个域对象(领域)
    5. 获得servletContext的方式
    1. 应用
      1. url的写法注意:

    a)        客户端跳转:(由浏览器发出的请求)  一定需要在地址前加应用的名称

    b)        服务端跳转: (由服务端发出的请求)  不需要在地址前加应用的名称

    1. 应用1

    a)        作为域对象,里面存取的是键值对,可以拿

    b)        可以修改,所以一般保存的是公用数据

    c)        Cookie就是用来保存私有数据

    d)        生命周期长,所以里面保存东西少点,

    1. 应用

    1)      实现数据共享

    2)      获取全局配置参数

    3)      请求转发

    a)        拿取请求转发器,然后转发

    4)      获取资源文件

    三种方式优缺点:

                                                                    a): 采用servletContext对象获得. 

                                                                                               优点: 任意文件,任意路径都可获得

                                                                                               缺点: 必须在web环境下

                                                                    b): 采用resourceBundle获得

                                                                                               优点: 非web环境下

                                                                                               缺点: 只能获取properties文件

                                                                    c): 采用类加载器获得

                                                                                               优点: 任意路径,任意文件

                                                                                              

  • 相关阅读:
    Python导学基础(三)输入、格式化输出、基本运算符
    题解-FJOI2014 树的重心
    题解-CF1307G Cow and Exercise
    题解-SHOI2005 树的双中心
    笔记-CF643E Bear and Destroying Subtrees
    题解-CF643G Choosing Ads
    扩展Lucas
    线性筛筛积性函数
    整除分块(数论)
    2019暑假集训DAY17(problem2.b)(杜教筛)
  • 原文地址:https://www.cnblogs.com/jesonjason/p/5294928.html
Copyright © 2011-2022 走看看