是否将servlet存储在包中?

时间:2014-12-22 15:38:56

标签: java jsp tomcat servlets

我正在使用servlet开发一个Web应用程序,我只读了一本关于servlet的书

  

由于大多数servlet都存储在一个包中..

我想知道,如果我不使用套餐怎么办?在web.xml文件中我编码:

<servlet>
    <servlet-name> MyServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
    <load-on-startup> 0 </load-on-startup>
 </servlet>
 <servlet-mapping>
     <servlet-name>MyServlet</servlet-name>
     <url-pattern>/MyServlet</url-pattern>
 </servlet-mapping>

而不是使用包并写这个

<servlet-class>foo.myproject.MyServlet</servlet-class>

我的问题是,有什么理由把我的servlet放在包中吗?

4 个答案:

答案 0 :(得分:4)

您的servlet是一个类似于任何其他类的类,我会遵循与其他类相同的实践。例如com.x.y.ShoppingCartServlet或类似的。您可以将软件包细分为单独的业务逻辑与部署/容器机制(例如com.x.y.servlets.ShoppingCart),但同样,这与Java中通常使用软件包的方式没有什么不同。

您的完整软件包名称必须在部署描述符中指定。

答案 1 :(得分:3)

即使您没有指定包,您仍然在“默认”包中。将servlet放入包中的原因与任何其他Java类相同。您这样做是为了避免命名冲突并在逻辑上划分您的域的类。

答案 2 :(得分:1)

在生产环境中,多个程序员可能正在为同一服务器开发servlet。因此,将所有servlet放在顶级servlet目录中会导致大量难以管理的目录,并且当两个开发人员意外选择相同的servlet名称时,会出现名称冲突。包是这个问题的自然解决方案。使用包会导致servlet的创建方式,编译方式以及调用方式的变化。

从技术角度来看,servlet就像任何其他类一样。所以规则是相同的:)

答案 3 :(得分:0)

与任何其他POJO一样,servlet也应根据它们提供的功能进行打包。这是组织代码的好方法。