我试图一次做两件事,我似乎找不到可以做到这两件事的答案。
我正在尝试这个:
我希望以/user/{parameter}
结尾的网址映射到JSP页面user.jsp,我可以在其中访问参数。
我找到了使用此方法将参数从web.xml文件传递到JSP的方法
<init-param>
<param-name>someParam</param-name>
<param-value>itsValue</param-value>
</init-param>
我找到了创建URL过滤器并将它们映射到Java Servlets的方法。
我需要的是一个组合。另外,我在将URL参数传递给Servlet时发现的内容也不太详细,所以对此的一个很好的参考也非常受欢迎!
答案 0 :(得分:3)
我希望以/ user / {parameter}结尾的网址映射到JSP页面user.jsp,我可以在其中访问参数。
在/user/*
上映射servlet并使用HttpServletRequest#getPathInfo()
提取路径信息。
E.g。
@WebServlet("/user/*")
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pathInfo = request.getPathInfo(); // "/{parameter}"
// ...
request.getRequestDispatcher("/WEB-INF/user.jsp").forward(request, response);
}
}
基本上都是这样。使用String
和/或substring()
等常用split()
方法来细分可用部分中的路径信息。
答案 1 :(得分:1)
使用base-url servlet解析URL并执行条件servlet转发到适当的JSP。
request.getRequestDispatcher().forward(JSPurl)
我们假设您有一个网址分支/sales/
。在此网址分支下,您可以允许/implemented/usersales.jsp
提供以下网址:
以及/implemented/products.jsp
要提供的以下网址
- / sales / groceries / products / {section}
- / sales / groceries / meat / products / {region}
- /销售/杂货/蔬菜/豆类/产品/ {region}
您可以将servlet类org.myorg.SalesHandler的web.xml servlet映射映射到/ sales /。
在org.myorg.SalesHandler servlet类的服务方法重写中, 分析URL模式(使用regexp或其他方式),然后使用
有条件地转发请求request.getRequestDispatcher().forward(JSPurl)
但是当我们有jax-rs时你为什么要这样做?
How to forward from a JAX-RS service to JSP?
JAX-RS起初可能看起来令人生畏,但它实际上非常简单直观。