当前位置: 首页 > 知识库问答 >
问题:

嵌入式Jetty WebAppContext中的通配符支持

仇浩旷
2023-03-14

我正在寻找在嵌入式Jetty WebAppContext contextPath中的通配符支持,但无法找到任何。我有以下代码为我的购物WebApp:

String path = "/shopping";
WebAppContext wac = new WebAppContext(WEBAPP_PATH, path);
contexts.addHandler(wac);

我希望,如果访问http://ip:port/shopping/任何东西,它应该加载我上面的WebApp。但事实并非如此。我也尝试了path=“/shopping/*”,但它也不起作用。
这里有人能帮助我吗,如果它可能或不可能,或者我在这里做错了什么。

编辑:
我正在Jetty上部署一个webapp(扁平化内容),可以使用http://host:port/shopping成功访问它。为了实现这一点,我创建了一个WebAppContext(wac),其中webappPath转到资源文件夹,而context-path转到/shopping。我将这个wac添加到处理程序列表,并将其附加到服务器(Jetty server)。
现在,我希望使用http://host:port/shopping/访问这个webapp。无论我在url购物后提供什么,我同样的webapp应该被加载。

更新:关于这一点,我在下面尝试了,但没有成功。

ServletContextHandler context=new ServletContextHandler(ServletContextHandler.sessions);
context.setContextPath(“/shopping”);
ServletHolder staticHolder=new ServletHolder(new DefaultServlet());
StatichHolder.SetinitParameter(“ResourceBase”,webAppPath);
staticHolder.SetinitParameter(“PathInfoOnly”,“True”);r>contexts.AddHandler(上下文);

现在,如果我尝试/shopping,它工作,但/shopping/abc不工作。通配符匹配似乎不起作用。如果我用/home代替/,/shopping/home工作。有人能在这里帮助我吗?
我的要求是为任何/shopping/URL服务器weabAppPath。

共有1个答案

宗政博
2023-03-14

最后,我让它起作用了。下面将为/shopping和/shopping/anything/*请求提供webapp服务。

String path = "/shopping";   
WebAppContext wac = new WebAppContext(WEBAPP_PATH, path); 
contexts.addHandler(wac); 
wac.addServlet(new ServletHolder(new WebappServlet()), "/anything/*");

public class WebappServlet extends HttpServlet 
{    
    private static final long serialVersionUID = 1L;    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException     {               
        request.getRequestDispatcher("/index.html").forward(request, response);  
    }  
}
 类似资料:
  • 案例 Basic css 我们绑定 styled-jsx 来生成独立作用域的 CSS. 目标是支持 "shadow CSS",但是 不支持独立模块作用域的 JS. export default () => <div> Hello world <p>scoped!</p> <style jsx>{` p { color: blue;

  • 我正在尝试实现一个可以跨应用程序中的多个包应用的记录器方面。它是一个大型SpringWeb应用程序,具有许多模块。每个模块都有自己的控制器、服务和DAO。我定义的切入点针对包中每个类上的所有公共方法。这是

  • 问题内容: 发现了有关使我烦恼的无限制通配符的事实。例如: 尽管可以使用或返回类型,但失败。 有人可以告诉我确切原因吗?提前致谢。 更新资料 我认为,对于此问题,我似乎理解并最简单的解释(忽略所有这些复杂的规则)是Capture Conversion(link)中的最后一个注释: 问题答案: 了解通配符类型的含义很重要。 您已经了解了,您可以将您的as 隐式指定为任意类型,而对于任何可能引用了声明

  • 我们正在用Python开发gRPC服务。我们需要在endpoint中支持通配符—类似于/service/qtom/*。 是否可以这样做,或者我们是否需要在Proto文件中为每个endpoint定义RPC? 是否可以在gRPCendpoint中提供通配符?

  • 问题内容: 在Go(语言)中注册处理程序时,是否可以在模式中指定通配符? 例如: 其中可以是任何有效的URL字符串。还是唯一的解决方案是从处理程序()函数内部匹配并找出其余部分? 问题答案: http.Handler和http.HandleFunc的模式不是正则表达式或glob。无法指定通配符。它们记录在这里。 也就是说,创建自己的可以使用正则表达式或所需的任何其他模式的处理程序并不难。这是一个使

  • 我想使用REST API的HAL格式来包含嵌入式资源。我在API中使用Spring HATEOAS,Spring HATEOAS似乎支持嵌入式资源;但是,没有关于如何使用此功能的文档或示例。 有人能提供一个如何使用Spring HATEOAS包含嵌入式资源的例子吗?