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

 

 

 

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM