Java servlet url 映射、url 模式

发布于 2025-01-04 03:12:50 字数 409 浏览 1 评论 0原文

我正在做一个新闻项目。我们有新闻类别、新闻子类别和新闻详细信息页面。我想要的网址如下:

  • 类别页面:“http://mysite.com/my-dynamic-category”。
  • 子类别页面:“http://mysite.com/my-dynamic-category/sub-category”。
  • 新闻详细信息页面:“http://mysite.com/my-dynamic-category/sub-category/my-new-alias.html”。

三个servlet:CategoryServlet、SubcategoryServlet、NewsDetailServlet。如何将 url 与 web.xml 中相应的 servlet 映射?我正在使用 eclipse 和 tomcat 服务器。

i'm doing a News project.We have news category, news sub category, and news detail page. I want to have url like :

  • Category page : "http://mysite.com/my-dynamic-category".
  • Sub Category page : "http://mysite.com/my-dynamic-category/sub-category".
  • News detail page : "http://mysite.com/my-dynamic-category/sub-category/my-new-alias.html".

Three servlet : CategoryServlet, SubcategoryServlet, NewsDetailServlet. How can i map url with corresponding servlet in web.xml ? I am using eclipse and tomcat server.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

请远离我 2025-01-11 03:12:50

我想对于这种任务,web.xml 中的简单 url 映射是不够的。
如果您希望将动态 url 映射到您的 Web 资源(例如 servlet),则必须进行一些 url 重写。最简单的方法是寻找一些 URL 重写过滤器,例如 Tuckey 中的过滤器,其中包含教程:http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html

I guess that for this kind of task simple url mapping in web.xml is not enough.
If you want to have dynamic urls mapped to your web resources (eg. servlets) you would have to do some url rewriting. The simplest would be to look for some URL Rewriting filter like the one from Tuckey with tutorial here: http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html

挖鼻大婶 2025-01-11 03:12:50

我将所有 url 映射到 web 应用程序中的单个 servlet 中,并让 Web 应用程序本身决定如何为它们提供服务:

<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>com.myapp.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

缺点是我的 servlet 容器不再提供静态文件,我必须编写代码来加载它们并通过 Web 提供它们应用程序或在 apache 上提供它们,并将其配置为不将任何静态文件反向代理到 tomcat。

I map all urls into a single servlet in my webapp and let the web app itself decide how to serve them:

<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>com.myapp.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

The disadvantage is that my servlet container no longer serves static files, I have to write code to load them and serve them through the web app or serve them on apache and configure it to not reverse proxy to tomcat for any static files.

隐诗 2025-01-11 03:12:50

如果您的子类别是静态的,那么您可以使用 url 映射为 /*/sub-category 其中 * 映射到 CategoryServlet.java,从那里您可以获得包含 /dynamic-category/sub-category 的请求路径,您可以提取您的子类别和动态类别。这样您也可以只使用一个 servlet。

If your sub-category is static, then you may use the url mapping as /*/sub-category where * maps to CategoryServlet.java, from there you may get the request path which contains /dynamic-category/sub-category, you may extract your sub-category and dynamic-category. With this you can also use only one servlet.

命硬 2025-01-11 03:12:50

Eclipse 没有解决你的问题,你也可以使用 vi 或 emacs。您的问题可以通过 URL 重写来解决(无论是在反向代理端,还是通过类似: http://www. tuckey.org/urlrewrite/ ) - 只需将您好的锁定 URL 重新映射到真正的 servlet。

或者您可以只使用过滤器,解析 servlet 路径并使用信息来呈现模板。

Eclipse has nothing with your problem, you could as well use vi or emacs. Your problem can be solved by URL rewriting ( either on reverse proxy side, or by something like: http://www.tuckey.org/urlrewrite/ ) - just remap your good locking URLs to real servlets.

Or you could just use a filter, parse the servlet path and use information to render your templates.

青丝拂面 2025-01-11 03:12:50
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文