servlet配置web.xml问题

解决问题:webapp里有个@WebServlet然后在web.xml里没有自动生成servlet的配置

 

原因:

Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,举例来说说

1
@WebServlet("/login")

这句写到LoginServlet.java的类名声明前,就相当于以前Servlet 2.5之前的web.xml里的:

1
2
3
4
5
6
7
8
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlets.LoginServlet</servlet-class>
  </servlet>  
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>

这么一大段了,也就是说只需说明url-pattern就可以了,其他的隐含内容注解会自动帮你判断出来,是不是很方便。当然Servlet 3.0还是支持用老的web.xml配置的,你还可以继续按照视频里教的老做法。

 

使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。
   @WebServlet有很多的属性:
       1、asyncSupported:    声明Servlet是否支持异步操作模式。
       2、description:      Servlet的描述。
       3、displayName:       Servlet的显示名称。
       4、initParams:        Servlet的init参数。
       5、name:           Servlet的名称。
       6、urlPatterns:     Servlet的访问URL。
       7、value:           Servlet的访问URL。
   Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
   像上面的Servlet3Demo可以描述成@WebServlet(name="Servlet3Demo",value="/Servlet3Demo")。
   也定义多个URL访问:
   如@WebServlet(name="Servlet3Demo",urlPatterns={"/Servlet3Demo","/Servlet3Demo2"})
   或者@WebServlet(name="AnnotationServlet",value={"/Servlet3Demo","/Servlet3Demo2"})

 

 

至于“还有为什么eclipse新建的webapp项目classes文件都在build文件夹下,而不是像视频教程那样在web-inf里的classes文件夹里?”

这只是eclipse在build这个步骤做的中间工作而已,最后发布时,按照Java EE标准,一定会发布到web-inf里的classes文件夹里,不信你发布后再到个目录里看一下。

 

最后问题:“我要新建一个javabean在哪里建”,javabean也是一个Java类而已,你只需要New-->Class就行了,建好后,建立私有属性后,生成getter/setter方法,可以点右键source-->generate getters/setters自动生成,比较方便

posted @ 2017-12-31 19:08  承晨  阅读(1068)  评论(0编辑  收藏  举报