Java 当servlet映射到多个URL模式时,找出实际的URL模式匹配

Java 当servlet映射到多个URL模式时,找出实际的URL模式匹配,java,jsp,servlets,Java,Jsp,Servlets,我有一个链接列表: <ul> <li><a href="index">Home</a></li> <li><a href="contactus">Contact Us</a></li> <li><a href="services">Services</a></li> <li><a href="enquire"

我有一个链接列表:

<ul>
  <li><a href="index">Home</a></li>
  <li><a href="contactus">Contact Us</a></li>
  <li><a href="services">Services</a></li>
  <li><a href="enquire">Enquire<a></li>
</ul>
}

由于getRequestURL方法是StringBuffer,因此无法检查它是否与String/相等

我怎样才能做到这一点呢?

你可以在StringBuffer上做一个toString,从中提取一个字符串?在深入研究JavaEE之类的东西之前,也许是时候学习一些基本的Java了

您还可以通过查找来确定哪些方法都可以从请求中获取信息。您可能已经注意到了getRequestURI,它返回一个字符串。还有其他更适合这种情况的方法,比如getServletPath


与其尝试将多个url映射到同一个servlet,不如使用像TucketURL重写过滤器这样的url重写引擎。另外,你不会让一个控制器只是为了呼叫响应。sendRedirect…请在这里解释你的实际目标,而不是问如何修复一个坏的解决方案。非常感谢。我得到了它。
@WebServlet( urlPatterns={"/index","/contactus","/services","/enquire"})
public class IndexServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws            ServletException, IOException {


   //Index URL mapping should be checked here like

   if(request.getRequestURL().equals("/index"))
   {
       response.sendredirtect("index.jsp")
   }

   //Url for contact  us should be checked here


   if(request.getRequestURL().equals("/contactus"))
   {
       response.sendredirtect("contactus.jsp")
   }

   //same for all the above url requests
String servletPath = request.getServletPath();

if (servletPath.equals("/index")) {
    response.sendRedirect("index.jsp");
}
else if (servletPath.equals("/contactus")) {
    response.sendRedirect("contactus.jsp");
}

// ...