servlet的注册问题

  servlet在使用前需要先注册。书里看到过这句话,教程里也看到过,但是完全不知道怎么做又是什么意思。jsp既然也是servlet,写jsp的时候就没有注册的事情,难道是jsp转换成servlet时编译器自动注册了?

  https://blog.csdn.net/baidu_37107022/article/details/72655107

  看到这个博客里说的似乎不错。但大致感觉就是注册是在web.xml里面配置,但是大多数都是创建时自动注册了,所以也就不用管了。

  

  创建项目时这里选2.5,项目里就有web.xml文件,那new-servlet时,就自动在web.xml文件里注册了

  

  如果这里选的是3.0或者以上,创建出来的项目不能自动注册(因为项目里没有web.xml文件。。。厉害了web项目怎么会没有这个文件?难道需要手动创建?之前都没有在意这个问题,也没有遇到过)

  

  按照教程里所说,这时候是可以通过注释来注册的额,但是我这里没有web.xml,我怎么看注册的情况呢?

  博客里说有servlet类的代码里有     

@WebServlet(asyncSupported = true, urlPatterns = { “/Servlet002” })

  只通过这一句就可以了吗?web.xml里面没有配置?

        

 

   果然,2.5版本里,没有这句注解代码,但是web.xml里有配置

    

<servlet>
    <description></description>
    <display-name>qw</display-name>
    <servlet-name>qw</servlet-name>
    <servlet-class>qw.qw</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>qw</servlet-name>
    <url-pattern>/qw</url-pattern>
  </servlet-mapping>

看来3.0版本是不需要web.xml里配置,只需要这句注解也能完成注册。

 

 

ps:

  3.0版本的注释是通过勾选   Asynchronous Support,自动完成的。

但是有的eclipse版本是没有这个选项的。

 

ps2:

    https://jingyan.baidu.com/article/6c67b1d6bcc38e2787bb1e96.html

  按照这个教程,3.0版本也可以自带web.xml。但是通过勾选  Asynchronous Support完成注册后,还是只有那句注释,web.xml里没有变化。

  也就是说,2.5版本是通过web.xml里的配置完成servlet的注册的,3.0版本是通过servlet代码前的注释完成注册的

ps3:

  不对,注册一定要在web.xml写上相关配置才行,所以这个博客里3.0版本的注释方法是错的?

  而且在myeclipse里,创建web项目时根本没有 Dynamic web module version  的选择。创建servlet时也没有那个 Asynchronous Support选择,也是自动就在web.xml里注册了。

    

    教程里说,这一步的信息,就已经是注册了,eclipse里确实是没有显示这个信息。而且我的版本是myeclipse10.不知道其他版本是不是这样。

    所以,MyEclipse也可以通过直接新建servelt,完成自动的配置。Eclipse里不行。

不知道是不是eclipse里Dynamic web module version的3.0原因。

不过springboot里不需要配置都可以。

  

  

 

原文地址:https://www.cnblogs.com/youwuyi/p/10244945.html