美文网首页
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