【问题标题】:Is it possible to programmatically set a request context path from inside the servlet?是否可以从 servlet 内部以编程方式设置请求上下文路径?
【发布时间】:2011-04-06 01:20:06
【问题描述】:

这是一个特殊情况,我被困在处理“企业”网络应用程序。企业应用程序正在调用 request.getContext() 并将其与另一个字符串进行比较。

我知道我可以使用 getServletContext.getContextPath() 获取 servlet 上下文路径。是否可以从 servlet 内部设置请求上下文路径?

【问题讨论】:

  • 我假设您说的是HttpServletRequest#getContextPath(),因为没有像HttpServletRequest#getContext() 这样的方法。

标签: java servlets


【解决方案1】:

你不能设置它,但你可以在HttpServletRequestWrapper的帮助下改变它的结果。

public class MyRequest extends HttpServletRequestWrapper {

    public MyRequest(HttpServletRequest request) {
        super(request);
    }

    @Override    
    public String getContextPath() {
        return "a different context path"; // TODO: implement accordingly.
    }

}

创建一个Filter,它在doFilter() 方法中基本上执行以下操作,并将其映射为感兴趣的URL 模式的早期过滤器。

chain.doFilter(new MyRequest((HttpServletRequest) request), response);

【讨论】:

    【解决方案2】:

    ,它会在您部署应用时设置。部署后无法更改

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 2011-04-17
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多