我将Jetty(版本7.4.5.v20110725)嵌入到Java应用程序中。我正在使用Jetty的WebAppContext在./webapps/jsp/中提供JSP页面,但是如果我访问localhost:8080
/ jsp
/,则会得到Jetty的目录列表,其中包含./webapps/jsp/的全部内容。我尝试在WebAppContext上将dirAllowed参数设置为false,并且它不会更改目录列表的行为。
只需将false传递给setDirectoriesListed即可完成在ResourceHandler上禁用目录列表的操作,按预期方式进行。有人可以告诉我如何针对WebAppContext执行此操作吗?
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
public class Test {
public static void main(String[] args) throws Exception {
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setHost("127.0.0.1");
connector.setPort(8080);
server.addConnector(connector);
// Create a resource handler for static content.
ResourceHandler staticResourceHandler = new ResourceHandler();
staticResourceHandler.setResourceBase("./webapps/static/");
staticResourceHandler.setDirectoriesListed(false);
// Create context handler for static resource handler.
ContextHandler staticContextHandler = new ContextHandler();
staticContextHandler.setContextPath("/static");
staticContextHandler.setHandler(staticResourceHandler);
// Create WebAppContext for JSP files.
WebAppContext webAppContext = new WebAppContext();
webAppContext.setContextPath("/jsp");
webAppContext.setResourceBase("./webapps/jsp/");
// ??? THIS DOES NOT STOP DIR LISTING OF ./webapps/jsp/ ???
webAppContext.setInitParameter("dirAllowed", "false");
// Create a handler list to store our static and servlet context handlers.
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { staticContextHandler, webAppContext });
// Add the handlers to the server and start jetty.
server.setHandler(handlers);
server.start();
server.join();
}
}
您可以设置org.eclipse.jetty.servlet.Default.dirAllowed
而不是dirAllowed
:
webAppContext.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");
经过Jetty 7.4.5.v20110725、8.1.4.v20120524、9.0.0.2.v20130417和9.2.0.v20140526的测试。
我尝试使用: Java11 RestEasy 4.1.0最终版 码头9.4.19. v20190610 gretty-gradle-plugin来自https://raw.github.com/gretty-gradle-plugin/gretty/master/pluginScripts/gretty.plugin 使用下面的子项目构建。格雷德尔: 但是,当我试图运行我的服务器使用:我得到以下异
我正在寻找在嵌入式Jetty WebAppContext contextPath中的通配符支持,但无法找到任何。我有以下代码为我的购物WebApp: 我希望,如果访问http://ip:port/shopping/任何东西,它应该加载我上面的WebApp。但事实并非如此。我也尝试了path=“/shopping/*”,但它也不起作用。 这里有人能帮助我吗,如果它可能或不可能,或者我在这里做错了什么
问题内容: 假设我有一个URL:我想获得目录下所有文件/目录的列表。 我正在使用Java 5。 我可以使用此程序http://www.httrack.com/获得dir的列表,但是使用Java我不知道是否可行。 有谁知道如何用Java获得它?或者,如果Java无法执行,该程序将如何完成工作? 问题答案: 有一些条件: 服务器必须已启用目录列表,以便您查看其内容。 我没有办法(没有API或HTTP动
所有其他3DES密码都消失了,除了这一个TLS_RSA_WITH_3DES_EDE_CBC_SHA。太奇怪了! 我怎样才能摆脱这个密码?提前道谢。
问题内容: 如果您在Go中使用http.FileServer,例如: 然后访问目录将为您提供文件列表。通常,这对于Web服务是禁用的,而是以404响应,我也希望这种行为。 http.FileServer没有针对此AFAIK的选项,我在这里看到了解决此问题的建议方法https://groups.google.com/forum/#!topic/golang- nuts/bStLPdIVM6w 他们在
我试图调试我的案例,简单的ActiveWeb应用程序没有在Jetty下运行。它的行为就像不存在任何用于请求处理的类一样,并返回错误404。 问题不在于ActiveWeb。是关于码头的。如何发现Jetty有一些web应用程序,它有一个带注释的类,并将在HTTP请求下执行它? 目前我已经下载了Jetty,它可以工作。不幸的是,它没有日志记录。当404错误返回时,没有任何东西显示在或中,也没有任何文件显