jsp - 如何在没有查询字符串的情况下获取url,如jsp中的stackoverflow
问题描述
我有一个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 ”
请帮助我如何实现这一目标?
解决方案
我找到了一种解决方案。
这可能不是正确的方法,但对我有用。
诀窍是:
Servlet 完全不涉及
在 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>
我们必须直接从锚标记调用 JSP 页面
<a href="ArticleTemplate/abcde">Article Link</a>
最后在 JSP 页面,我们必须使用 scriptlet 来访问 java 类并从数据库中获取数据。
<% ----- Your code ----- %>
推荐阅读
- angular - 如果用户登录,角度重定向到仪表板
- opencv - 多线程 - openCV (imshow) - QMetaMethod 错误
- python - 在处理 Pyspark 数据帧中的字符串和子字符串时使用
- php - 使用ajax传递数据
- http - Nginx 将 url 重定向到安全域
- java - 消费者接口中的 Java 泛型类型参数
- python - 带有参数的 Telegram Bot 可点击命令
- c# - AWS Lambda (C#) 是否允许从 s3 存储桶动态加载 DLL 并将其实例化以在 Lambda 函数中使用?
- json - 为一个结构解码多个 JSON 请求
- mfc-feature-pack - 在 CMFCTabCtrl 的选项卡标题中获取图标的区域?