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里不需要配置都可以。