gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:23:16 24 4
gpt4 key购买 nike

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

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

我想要如果访问 http://ip:port/shopping/ 任何东西,它应该加载我上面的网络应用程序。但事实并非如此。我也尝试过使用path =“/shopping/*”,但它也不起作用。
如果可能的话,这里的任何人都可以帮助我吗?或者我在这里做错了什么。

编辑:
我正在 Jetty 上部署一个 web 应用程序(扁平化内容),并且可以使用 http://host:port/shopping 成功访问它。为了实现这一目标,我创建了一个 WebAppContext(wac),其中资源文件夹的 webappPath 和上下文路径为/shopping。我将此 wac 添加到处理程序列表并将其附加到服务器(Jetty 服务器)。
现在,我想要的是使用 http://host:port/shopping/ 访问这个网络应用程序。无论我在 url 中购物后提供什么,我的同一个 web 应用程序都应该被加载。

更新:对此,我在下面进行了进一步的尝试,但没有成功。

ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/shopping");
ServletHolder staticHolder = new ServletHolder(new DefaultServlet());
staticHolder.setInitParameter("resourceBase", webAppPath);
staticHolder.setInitParameter("pathInfoOnly", "true");
context.addServlet(staticHolder, "/*");
context.setWelcomeFiles(new String[] { "index.html", "index.htm", "index.jsp" });
contexts.addHandler(context);

现在,如果我尝试/shopping,它可以工作,但/shopping/abc 则不行。通配符匹配似乎不起作用。如果我使用/home 而不是/,则/shopping/home 可以工作。任何人都可以帮我吗?
我的要求是为任何/shopping/
url 提供 weabAppPath 服务器。

最佳答案

终于,我成功了。下面将为 webapp 提供/shopping 和/shopping/anything/* 请求。

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);
}
}

关于java - 嵌入式 Jetty WebAppContext 中的通配符支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54176470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com