如何在web.xml中通过URL传递参数?

时间:2011-04-05 03:55:24

标签: java servlets servlet-filters web.xml

我需要这样的事情:

/ {paramvalue} / URL

获取param值的值,并将url指向servlet。

例如:

/ josua /简档 /玛丽/消息

“/ josua /”和“/ mary /”是我需要获取的参数

然后我需要将/ {username} / profile映射到ProfileServlet.class和/ {username} / messages到MessagesServlet.class

我有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

有点听起来像Pretty URLs。如果你真的很喜欢它,我建议你研究一下这些框架,PrettyFaces(对于JSF)和Stripes

此外,它不是我们通常在Java中练习的方式,而且这可能带来一些缺点,您应该能够将您的网址映射到web.xmlsee BalusC post中的过滤器。然后使用HttpServletRequestgetRequestURI()方法继续进行。此外,它很好地研究regex并试图利用它来提出这个系统,因为Django(一个python web开发框架)实现了它。

答案 1 :(得分:1)

Filter上映射/*基本 doFilter()方法中的。

String[] pathParams = ((HttpServletRequest) request).getRequestURI().substring(1).split("/", 2);
String userName = pathParams[0];
String servletUrl = pathParams[1];

request.setAttribute("userName", userName);
request.getRequestDispatcher("/" + servletUrl).forward(request, response);

ProfileServlet上的/profile/*MessagesServlet上的/messages/*。在两个servlet中,用户名应该由request.getAttribute("userName")提供。