我正在使用Jetty部署生产网站.让我们假设我的网站是foo.com当我将浏览器指向不存在的上下文(比如foo.com/notavailable)时,Jetty会显示一个错误页面,其中包含部署在其上的所有上下文的信息.
它看起来像这样:
此服务器上没有上下文匹配或处理此请求.此服务器已知的上下文是:
- / test ---> org.mortbay.jetty.webapp.WebAppContext@6910fe28 {/test,/root/webserver/jetty-6.1.4/webapps/test}
我想阻止Jetty显示此消息,因为它包含服务器上下文的完整路径.
有没有办法做到这一点?
小智 12
配置Jetty XML时,您可以将其设置showContexts为false DefaultHandler.
如果您使用较旧的Jetty版本org.eclipse.jetty,请使用旧的org.mortbay.jetty包结构替换我的示例.
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =========================================================== -->
<!-- Set handler Collection Structure -->
<!-- =========================================================== -->
<Set name="handler">
<!-- the collection of handlers that will handle the request -->
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<!-- primarily handles the request and maps the request to a ContextHandler -->
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<!-- The default handler ... handles the request if not yet handled -->
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
<!-- The handler for your request logs -->
<Item>
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<!-- ===================== -->
<!-- DefaultHandler config -->
<!-- ===================== -->
<Ref id="DefaultHandler">
<Set name="showContexts">false</Set>
</Ref>
</Configure>
Run Code Online (Sandbox Code Playgroud)
也许你也想要阻止目录浏览配置DefaultServlet你的web.xml,
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
<init-param>
<param-name>dirAllowed</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)
该页面由Jetty"DefaultHandler"提供
要阻止该页面显示,您应该从服务器中删除该处理程序(它在您的jetty.xml文件中配置)您不需要(或想要)生产(面向Internet)服务器上的默认处理程序,因此它是一个好主意删除它.
请注意,它还提供常规404页面和favicon.ico,因此如果您依赖这些行为,那么您将需要替换.
小智 5
Jetty 9.X版本在org.eclipse.jetty.servlet.DefaultServlet类中提出了showContexts属性.因此,如果您不想显示上下文列表,我们可以将showContexts设置为flase.
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler">
<Set name="showContexts">false</Set>
</New>
</Item>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12774 次 |
| 最近记录: |