Java 如何在web.xml中通过URL传递参数?
我需要这样的东西: /{paramvalue}/url 获取param value的值,并将url指向servlet 例如: /约书亚/简介 /玛丽/留言 “/josua/”和“/mary/”是我需要获取的参数 然后我需要将/{username}/profile映射到ProfileServlet.class,将/{username}/messages映射到MessagesServlet.class 有什么办法可以做到这一点吗?听起来有点像。如果你真的能胜任,我建议你研究一下这些框架中的任何一个(对于JSF),然后Java 如何在web.xml中通过URL传递参数?,java,servlets,servlet-filters,web.xml,Java,Servlets,Servlet Filters,Web.xml,我需要这样的东西: /{paramvalue}/url 获取param value的值,并将url指向servlet 例如: /约书亚/简介 /玛丽/留言 “/josua/”和“/mary/”是我需要获取的参数 然后我需要将/{username}/profile映射到ProfileServlet.class,将/{username}/messages映射到MessagesServlet.class 有什么办法可以做到这一点吗?听起来有点像。如果你真的能胜任,我建议你研究一下这些框架中的任何一个(
此外,这不是我们在Java中通常的做法,这可能有一些缺点,您应该能够将URL映射到
web.xml
中的过滤器。然后使用HttpServletRequest
方法,如getRequestURI()
继续。此外,研究regex
并尝试利用它来开发这个系统是很好的,因为(python web开发框架)实现了它。将过滤器映射到/*
上,它在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);
并在/profile/*
上映射ProfileServlet
,在/messages/*
上映射MessagesServlet
。在这两个servlet中,用户名应该可以通过request.getAttribute(“用户名”)
获得,谢谢BalusC。事实上,我完全失去了联系。