使用 jsp/servlet 清理 URL?

Posted

技术标签:

【中文标题】使用 jsp/servlet 清理 URL?【英文标题】:Clean URLs using jsp/ servlets? 【发布时间】:2011-04-01 11:52:33 【问题描述】:

我打算使用 jsp 和 servlet 制作一个 CMS。谁能告诉我如何使用这种技术实现干净的网址?

【问题讨论】:

【参考方案1】:

您可以尝试使用 urlrewritefilter:http://code.google.com/p/urlrewritefilter/。这使用 servlet 过滤器和 xml 文件来允许您的应用程序拥有干净的 url。干净的 url 的构建将是您自己的责任。

【讨论】:

【参考方案2】:

在充当前端控制器的 servlet 中使用HttpServletRequest#getPathInfo()

没有任何琐碎验证的启动示例:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);

这将请求例如http://example.com/context/servlet/foo/bar 以显示/WEB-INF/foo/bar.jsp 文件。 JSP 文件应放在/WEB-INF 中,以防止它们被直接访问。

另见:

Hidden features of JSP/Servlet

【讨论】:

【参考方案3】:

使用URLRewriteFilter或者你自己写,如果你知道如何使用部署描述符和过滤器就很简单了。 例如,您有一个 servlet,它根据请求参数响应内容,例如 a.com?cat=book&post=java(称之为showContent servlet) 并且您想将网址重写为a.com/book/java 所以你应该创建一个过滤器: 过滤器名称:调度员 映射:/*

在该过滤器中,您应该处理字符串 "/book/java" 以生成 catpost 变量的数据。然后直接转发给showContent servlet处理请求。

【讨论】:

【参考方案4】:

我使用 JSTL 标签

【讨论】:

如何帮助创建更友好的 URL?!

以上是关于使用 jsp/servlet 清理 URL?的主要内容,如果未能解决你的问题,请参考以下文章

JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]

JSP/Servlet 应用程序中的 main() 方法在哪里? [复制]

Jsp,Servlet初学总结

Tomcat手工搭建Jsp和Servlet程序

关于jsp servlet web.xml

jsp/servlet学习三之会话管理初解