美文网首页
Servlet配置篇(servlet之一)

Servlet配置篇(servlet之一)

作者: pujess | 来源:发表于2019-07-26 22:53 被阅读0次

    Servlet

    疑问

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

    配置servlet

    1. 要素

    在web.xml中配置servlet信息:

    <servlet>
             <!-- servlet的内部名称,自定义 -->
            <servlet-name>DemoAction</servlet-name>
            <!-- servlet的类全名:包名+类名 -->
            <servlet-class>com.uplooking.controller.DemoAction</servlet-class>
            <load-on-startup>1</load-on-startup>
    </servlet>  
    <!-- servlet的映射配置 -->
    <servlet-mapping>
            <!-- servlet的内部名称,一定要和上面的内部名称保持一致 -->
            <servlet-name>DemoAction</servlet-name>
            <!-- servlet的映射路径(访问serclet的名称 -->
            <url-pattern>/DemoAction</url-pattern>
    </servlet-mapping>
    
    • 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注解配置的参数含义

    2. 执行过程

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

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

    总结:

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

    相关文章

      网友评论

          本文标题:Servlet配置篇(servlet之一)

          本文链接:https://www.haomeiwen.com/subject/scsrrctx.html