【发布时间】:2013-01-16 21:01:00
【问题描述】:
我的 web.xml 文档中有这个。我正在尝试创建一个欢迎列表,因此我不再需要键入主页的路径。但是每次点击我的tomcat页面中的应用程序时,它都会显示请求的资源不可用。
<listener>
<listener-class>web.Init</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>web.IndexServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
我的jsp页面servlet
package web;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class IndexServlet extends HttpServlet
{
private Logger logger = Logger.getLogger(this.getClass());
private RequestDispatcher jsp;
public void init(ServletConfig config) throws ServletException
{
ServletContext context = config.getServletContext();
jsp = context.getRequestDispatcher("/WEB-INF/jsp/index.jsp");
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
logger.debug("doGet()");
jsp.forward(req, resp);
}
}
为什么它仍然不起作用?我仍然需要在我的 url 中输入 /index...如何正确执行此操作?
【问题讨论】:
-
你在你的 URL 中输入了什么,你有 index.html 页面吗??
-
例如我在tomcat管理器中点击了我的webapp。它将首先显示 url localhost:8080/myProj。所以我仍然需要在那个 url 之后输入索引来打开我的欢迎页面。这有什么问题?
-
您的欢迎文件是 [context root]/index.jsp 将不会为欢迎页面调用 servlet。
-
@BalusC 已经给出了完整的答案,请关注它
标签: jsp servlets web.xml welcome-file