Javaservlet映射 Servlet映射

Javaservlet映射 Servlet映射,java,servlets,Java,Servlets,我是JavaEE6新手。我正在尝试获取一个servlet请求。除了/category映射之外,其他所有映射都可以正常工作。这是我的ControllerServlet类。我使用@webServlet注释进行映射。我尝试在web.xml中进行映射,但没有成功。使用netbeans IDE 7.2,服务器Glassfish开源 import java.io.IOException; import java.io.PrintWriter; import javax.servlet

我是JavaEE6新手。我正在尝试获取一个servlet请求。除了/category映射之外,其他所有映射都可以正常工作。这是我的ControllerServlet类。我使用@webServlet注释进行映射。我尝试在web.xml中进行映射,但没有成功。使用netbeans IDE 7.2,服务器Glassfish开源

    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    @WebServlet(name = "ControllerServlet",
    loadOnStartup = 1,
    urlPatterns = {
    "/addToCart",
    "/viewCart",
    "/updateCart",
    "/checkout",
    "/purchase",
    "/chooseLanguage",
    "/category"})

    public class ControllerServlet extends HttpServlet {


/**
 * Handles the HTTP
 * <code>GET</code> method.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String userPath = request.getServletPath();



    // if cart page is requested
    if (userPath.equals("/viewCart")) {
        userPath = "/cart";
    }

    //if category page is requested
    else if (userPath.equals("/category")) { 
    } 

    // if ckeckout page is requested
    else if (userPath.equals("/checkout")){
      //  System.out.println("check");

    }

    // if user switches language
    else if (userPath.equals("/chooseLanguage")){


    }

    // use RequestDispatcher to forward request internally

    String url = "/WEB-INF/View" + userPath + ".jsp";
    System.out.print(url);

    try{
        request.getRequestDispatcher(url).forward(request, response);
    }catch(Exception ex){
        ex.printStackTrace();
    }
}



/**
 * Handles the HTTP
 * <code>POST</code> method.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String userPath = request.getServletPath();

    // if addToCart action is called
    if (userPath.equals("/addToCart")) {
        // TODO: Implement add product to cart action

    // if updateCart action is called
    } else if (userPath.equals("/updateCart")) {
        // TODO: Implement update cart action

    // if purchase action is called
    } else if (userPath.equals("/purchase")) {
        // TODO: Implement purchase action

        userPath = "/confirmation";
    }

    // use RequestDispatcher to forward request internally
    String url = "/WEB-INF/view" + userPath + ".jsp";

    try {
        request.getRequestDispatcher(url).forward(request, response);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
}

/categories
未映射到servlet中<代码>/category是映射的。

不是对你的问题的回答,但是你可以通过为每个操作使用一个单独的servlet来简化你的代码。为什么这个问题的标题不好,代码很糟糕,而且似乎有明显的打字错误?这个问题到底有多有用?我也看到了,但请不要让它成为解决方案。这应该是几个月来最愚蠢的打字错误了。