Servlet配置篇(servlet之一)

Servlet

疑问

  1. 配置servlet的时候通过urlPattern来绑定url地址访问Servlet程序,那么实际web项目实现的时候,也是通过输入绑定的url地址(例如:http://localhost:8080/helloWeb/servlet1)来执行servlet程序吗?

配置servlet

1. 要素

在web.xml中配置servlet信息:


         
        DemoAction
        
        com.uplooking.controller.DemoAction
        1
  


        
        DemoAction
        
        /DemoAction

  • servlet-name
    给某个servlet类起名
  • servlet-class
    写servlet类的全限定名
  • load-on-pattern
      这里涉及到初始化提前这一特性:servlet接口中有一个初始化方法init(),它的作用有点类似于类中的构 造函数(接口是没有构造函数的!),写了一个类A在实现servlet接口之后,每当服务器重新启动后,类A第一次被访问的时候都会执行初始化方法init(),许多初始化要执行的操作都写在init()里面。
      那么问题来了——用户第一次访问类A的时候可能初始化的时间都会等很久,有没什么办法提前当服务器启动的时候就把类A需要初始化的操作执行呢?
      这就需要把初始化提前,当服务器启动的时候,服务器会按照load-on-pattern标签大小,从小到大把里面“声明”好的servlet实例都提前执行init()初始化
  • servlet-mapping
    注册servlet映射——把输入的url地址映射到servlet名
  • url-pattern
    url-pattern其实不止一个,很多页面都可以调用一个控制器(servlet)
    servlet-mapping之url-pattern个人理解
    servlet的url-pattern匹配规则

servlet3.0可以通过直接在servlet代码中配置:

Servlet配置篇(servlet之一)_第1张图片
servlet注解配置的参数含义

2. 执行过程

  • 通过web.xml配置的执行过程:

    1. 找到tomcat应用
    2. 找到tomcat下的项目
    3. 找到配置文件(web.xml)
    4. 找到"/servlet1"这个地址绑定的servlet名字(在web.xml的中)
    5. 找到这个servlet名字绑定的Java类(在web.xml的中)
  • servlet3.0注解的方式:
    (日后理解之后再回头详解)
    Servlet传统配置方式和Servlet3.0使用注解的方式
    Servlet3.0的注解详解及监听器的执行顺序
    Servlet3.0注解实现原理

3.配置过程中的一些经验

  • web.xml和注解可以同时配置,但是如果初始化参数重复配置的话,web.xml会覆盖注解的参数配置

总结:

配置servlet的主要目的在于:解决url和servlet类映射问题(参数初始化等都并非主要目的)

你可能感兴趣的:(Servlet配置篇(servlet之一))