如何获取Web应用程序上下文路径?

上下文路径总是在请求URI中排在第一位。路径以“ /”字符开头,但不以“ /”字符结尾。当我有喜欢的URL的Web应用程序http://localhost:8080/myapps,然后/myapps是上下文路径。

对于默认(根)上下文中的servlet,此方法返回""(空字符串)。

package org.nhooo.example.servlet;

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

public class ContextPathDemo extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {

        // HttpServletRequest.getContextPath()返回该部分 
        // 表示请求内容上下文的请求URI 
        // 请求。
        String contextPath = req.getContextPath();

        PrintWriter pw = res.getWriter();
        pw.print("Context Path: " + contextPath);
    }
}

在web.xml文件中注册servlet并将其映射ctxpath为url-pattern。假设您已将servlet部署到名为的Web应用程序中,webapp然后可以使用以下url访问servlet :http://localhost:8080/webapp/ctxpath。

您将在浏览器中获得以下信息:

Context Path: /webapp