即使使用servlet也无法访问web-inf文件夹中的jsp页面

时间:2014-07-15 21:52:29

标签: java eclipse jsp java-ee servlets

我的环境:Windows 7 64位,Eclipse Kepler,Glassfish 4。 我的动态Web项目结构大纲:

MyProject
|
|__java (src folder)
|    |
|    |__controller (package)
|         |
|         |__ControllerServlet.java
|    
|__WebContent
    |
    |__WEB-INF
         |
         |__view
              |__category.jsp        
              |
              |etc...

我在我的浏览器中输入了网址http://localhost:4848/AffableBean/category,但它失败了并且给了我404错误。 为什么会这样?

ControllerServlet.java :(仅限代码段)

@WebServlet(name = "ControllerServlet", urlPatterns = { "/category",
        "/addToCart", "/viewCart", "/updateCart", "/checkout", "/purchase",
        "/chooseLanguage" })
public class ControllerServlet extends HttpServlet {

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

        String userPath = request.getServletPath();

        String url = "/WEB-INF/view" + userPath + ".jsp";
        System.out.println("test url = " + url);//TEST

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

//same code for doPost.

如何修复此错误?我认为任何请求都不会触及控制器servlet。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。当我从localhost:4848访问Web应用程序时,它将带我到index.jsp。我注意到网络应用的网址是http://MyComputerName:6262/AffableBean/。我添加/类别以使其工作。服务器端口号是6262,管理服务器端口号是4848.我真的不明白这一点。当我使用tomcat时,我从未遇到过这个问题。只有端口号。