gpt4 book ai didi

jsp - 如何在 web.xml 中配置欢迎文件列表

转载 作者:行者123 更新时间:2023-12-03 07:37:39 27 4
gpt4 key购买 nike

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

为什么它仍然不起作用?我仍然需要在我的网址中输入/index...如何正确执行此操作?

最佳答案

您需要将 JSP 文件放在 /index.jsp 中,而不是 /WEB-INF/jsp/index.jsp 中。这样整个 servlet 就显得多余了。

WebContent
|-- META-INF
|-- WEB-INF
| `-- web.xml
`-- index.jsp

如果您绝对确定需要以这种奇怪的方式调用 servlet,那么您应该将其映射到 /index.jsp 的 URL 模式,而不是 /index.您只需更改它即可从 request 而不是从 config 获取请求调度程序,并摆脱整个 init() 方法。

如果您确实打算拥有一个“主页 servlet”(因此不是欢迎文件 - 它具有完全不同的目的;即当>folder 正在请求,因此不是特定的根文件夹),那么您应该将 servlet 映射到空字符串 URL 模式。

<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>

另请参阅Difference between / and /* in servlet mapping url pattern .

关于jsp - 如何在 web.xml 中配置欢迎文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14648167/

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