首页 > 解决方案 > 如何在没有查询字符串的情况下获取url,如jsp中的stackoverflow

问题描述

我有一个jsp页面,网址是:

http://localhost:8084/WebApplication1/newjsp.jsp

里面有一个锚标签:

a href="MobileArticles?name=abcde"

web.xml 规范:

<servlet-mapping>
    <servlet-name>MobileArticlesLinkerServlet</servlet-name>
    <url-pattern>/MobileArticles</url-pattern>
</servlet-mapping>

这是 servlet 中 doGet 的代码:
String respuesta = "Article_template.jsp"; RequestDispatcher rd = request.getRequestDispatcher(respuesta); rd.forward(request, response);

它被重定向到一个jsp页面“Article_template.jsp”。

过程很好。但我需要为此页面使用不同的 URL 模式:

当前 URL 模式:“ http://localhost:8084/WebApplication1/MobileArticles?name=abcde

我希望它像:“ http://localhost:8084/WebApplication1/MobileArticles/abcde

请帮助我如何实现这一目标?

标签: jspservletsurl-rewritingurl-mapping

解决方案


我找到了一种解决方案。

这可能不是正确的方法,但对我有用。

诀窍是:

  1. Servlet 完全不涉及

  2. 在 web.xml 中为您的 jsp 页面设置一个 url 模式

    <servlet> <servlet-name>ArticleTemplate</servlet-name> <jsp-file>/Article_template.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ArticleTemplate</servlet-name> <url-pattern>/ArticleTemplate/*</url-pattern> </servlet-mapping>

  3. 我们必须直接从锚标记调用 JSP 页面

    <a href="ArticleTemplate/abcde">Article Link</a>

  4. 最后在 JSP 页面,我们必须使用 scriptlet 来访问 java 类并从数据库中获取数据。

    <% ----- Your code ----- %>


推荐阅读