【发布时间】:2011-11-01 20:38:28
【问题描述】:
我已经创建了 Sample.java servlet,它在 src 文件夹中。
并在 pages 目录中创建 HTML 页面,即 pages/First.html
现在我需要在 servlet 映射中提供页面/示例,我不明白为什么页面目录名称应该在 servlet url 映射中提及。
因为它在根文件夹中。
【问题讨论】:
标签: servlets
我已经创建了 Sample.java servlet,它在 src 文件夹中。
并在 pages 目录中创建 HTML 页面,即 pages/First.html
现在我需要在 servlet 映射中提供页面/示例,我不明白为什么页面目录名称应该在 servlet url 映射中提及。
因为它在根文件夹中。
【问题讨论】:
标签: servlets
你不应该把任何类放在根包中。
一旦您将 Sample 类放入一个包中(例如:com.foo.andy.sample),您需要在 Web 应用程序的 web.xml 中声明 servet,并为此 servlet 声明一个(至少)映射。
您可以关注this tutorial 了解如何操作。
web.xml 中需要这些行:
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>com.foo.andy.sample.Sample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/pages/Sample</url-pattern>
</servlet-mapping>
您的 servlet 可以在 .../yourWebApp/pages/Sample 访问
【讨论】:
我们需要 servlet 映射以确保在哪种类型的 url 请求中调用哪个 servlet。为此,您需要编写web.xml 文件。
让我们假设您的课程位于 com.example 包中。
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>com.example.Sample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/Sample</url-pattern>
</servlet-mapping>
完成此代码后,将 URL (/Sample) 放在 HTML 页面中的 <form action="/Sample"> 中。
确保您不应该将类放在根目录中。
【讨论】: