访问裸网址(例如localhost:8080
)时,我想要与访问localhost:8080/foo
相同的行为。 servlet(实际上是JSP)映射到/foo
。我的web.xml是
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Test</display-name>
<description></description>
<!-- servlets -->
<servlet>
<servlet-name>TestServlet</servlet-name>
<jsp-file>/test/welcome.jsp</jsp-file>
</servlet>
<!-- mappings -->
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/foo</url-pattern>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/foo</welcome-file>
</welcome-file-list>
</web-app>
当我http://localhost:8080/foo
时,我得到了正确的输出;显示test/welcome.jsp
的输出。但是,当访问裸URL http://localhost:8080
时,jetty会显示文件列表,Tomcat 6会显示未找到的页面。我的web.xml
是否正确?
(版本:jetty-8.0.y.z-SNAPSHOT,Tomcat 6,Java 1.6,servlet-api-2.5)
将<welcome-file>/foo</welcome-file>
更改为<welcome-file>foo</welcome-file>
没有任何区别。
我的web.xml中有错误吗?如果没有,做什么是正确的方法。
编辑:似乎是Jetty-8中的一个错误。它开始在Jetty-9工作。答案 0 :(得分:3)
不确定这是否也适用于Jetty 8(您可能应该更新),但是在Jetty 9中,您可以将以下代码放在web.xml中以启用Servlet作为Jetty的欢迎文件:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Your custom action using Parse
}
});
}
查看此文档: http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/servlet/DefaultServlet.html
答案 1 :(得分:2)
从/
移除<welcome-file>/foo</welcome-file>
它应该是
<welcome-file>foo</welcome-file>
答案 2 :(得分:0)
应该是:
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/foo</url-pattern>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>foo</welcome-file>
</welcome-file-list>
这是一个很好的解释: http://wiki.metawerx.net/wiki/HowToUseAServletAsYourMainWebPage