Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否在包中存储servlet?_Java_Jsp_Tomcat_Servlets - Fatal编程技术网

Java 是否在包中存储servlet?

Java 是否在包中存储servlet?,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我正在使用servlet开发一个web应用程序,我刚刚读了一本关于servlet的书 因为大多数servlet都存储在一个包中 我想知道,如果我不使用软件包怎么办?在web.xml文件I代码中: <servlet> <servlet-name> MyServlet</servlet-name> <servlet-class>MyServlet</servlet-class> <load-on-startup

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

因为大多数servlet都存储在一个包中

我想知道,如果我不使用软件包怎么办?在web.xml文件I代码中:

<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>

MyServlet
MyServlet
0
MyServlet
/MyServlet
而不是使用一个包来写这个

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

我的问题是,是否有任何理由将我的servlet放在包中?

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

您的servlet与其他类一样,我将遵循与其他类相同的实践。e、 g.
com.x.y.ShoppingCartServlet
,或类似产品。您可以对包进行细分,以将业务逻辑与部署/容器机制分离(例如,
com.x.y.servlets.ShoppingCart
),但这与Java中通常使用包的方式没有什么不同


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

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

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


从技术角度来看,servlet和其他任何类都一样。因此,它的规则是相同的:)

您可以自己测试它并查看结果。嗯,我做不到。它转到默认包。然后您已经有了答案。您不能拥有没有包的类,因此您的语句无效。确实是。我被那本书弄糊涂了,书上写着“大多数servlet…”。还有其他人没有吗?(我当时想)谢谢你!