[英]How to pass on parameters from pretty URL to JSP pages?
我试图一次做两件事,但似乎找不到能同时做到的答案。
我正在尝试:
我希望将以/user/{parameter}
结尾的URL映射到一个JSP页面user.jsp,可以在其中访问参数。
我找到了使用此方法将参数从web.xml文件传递到JSP的方法
<init-param>
<param-name>someParam</param-name>
<param-value>itsValue</param-value>
</init-param>
我找到了创建URL过滤器并将其映射到Java Servlet的方法。
我需要的是一种组合。 另外,我在将URL参数传递给Servlet时所发现的内容也不是很详细,因此,对此提供很好的参考也将受到欢迎!
我希望将以/ user / {parameter}结尾的URL映射到一个JSP页面user.jsp,可以在其中访问参数。
将servlet映射到/user/*
并使用HttpServletRequest#getPathInfo()
提取路径信息。
例如
@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);
}
}
基本上就是全部。 使用诸如substring()
和/或split()
类的常用String
方法来分解可用部分中的路径信息。
使用基本URL servlet解析URL并执行有条件servlet转发到适当的JSP。
request.getRequestDispatcher().forward(JSPurl)
假设您有一个URL分支/sales/
。 在该URL分支下,您将允许/implemented/usersales.jsp
为以下URL提供服务:
以及以下由/implemented/products.jsp
提供服务的/implemented/products.jsp
/ sales / groceries / products / {section}-/ sales / groceries / meat / products / {region}-/ sales / groceries / vegetables / beans / products / {区域}
您将有一个Web.xml servlet映射,以将servlet类org.myorg.SalesHandler映射到/ sales /。
在org.myorg.SalesHandler servlet类中的服务方法重写中,分析URL模式(使用regexp或其他方式),然后有条件地使用以下命令转发请求
request.getRequestDispatcher().forward(JSPurl)
但是当我们有了jax-rs时,为什么还要这么做呢?
首先,JAX-RS似乎令人生畏,但实际上实现起来非常简单直观。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.