Web.xml配置过滤器:如何在web.xml中配置欢迎文件列表

关于Web.xml配置过滤器的问题,在filelist.io中经常遇到, 我在我的 web.xml 文档中有这个。我试图有一个欢迎列表,所以我不需要再输入主页的路径。但是每次点击我的 tomcat 页面中的应用程序时,它都会显示请求的资源不可用。

我在我的 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...如何正确地做到这一点?

61

您需要将 JSP 文件放在/index.jsp中,而不是/WEB-INF/jsp/index.jsp中。

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

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

如果你真的打算有一个“主页 servlet”(因此不是一个欢迎文件-它有一个完全不同的目的;即默认文件,当文件夹被请求时,它将被提供,因此不是特定的根文件夹),那么你应该在空字符串 URL 模式上映射 servlet。

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

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

24

我想你想要的是你的索引 servlet 作为欢迎页面,所以更改为:

<welcome-file-list>
   <welcome-file>index</welcome-file>
</welcome-file-list>

注意,您需要一个 servlet spec 2.4 容器才能做到这一点。

还要注意,@ BalusC 得到我的投票,因为你的索引 servlet 本身是多余的。

4

我在这个stackoverflow link中看到了一个很好的解决方案,它可以通过使用空字符串 URL 模式“”来帮助 defulat servlet 处理问题的读者:

@WebServlet("")

<servlet-mapping>
    <servlet-name>yourHomeServlet</servlet-name>
    <url-pattern></url-pattern> <!-- Yes, empty string! -->
</servlet-mapping>
2

这是我的方式来设置 Servlet 作为欢迎页面。

我分享对谁的关心。

web.xml

  <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Demo</servlet-name>
        <servlet-class>servlet.Demo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Demo</servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>

Servlet 类

@WebServlet(name = "/demo")
public class Demo extends HttpServlet {
   public void doGet(HttpServletRequest req, HttpServletResponse res)
     throws ServletException, IOException  {
       RequestDispatcher rd = req.getRequestDispatcher("index.jsp");
   }
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(657)
Js加密:Node.js使用-nosalt选项加密加密
上一篇
Css选择器有几种:是否有类前缀的CSS选择器(prefix half)
下一篇

相关推荐

  • java 解析xml文件让你的应用程序轻松解析 XML 文件

    示例示例Java可以使用DOM(文档对象模型)或SAX(简单API for XML)来解析XML文件。DOM解析XML文件…

    2023-04-30 08:53:12
    0 28 14
  • xml cdata用法(含代码示例)

    示例示例XML CDATA 用法:CDATA 是 Data 的缩写,是一种在 XML 文档中定义文本的方式。它可以用来包含不需要被解析器处理的文本,比如 HTML 代码、 代码等。…

    2023-06-14 07:03:19
    0 94 19
  • xml转lua转换数据的一种方式

    XML转Lua是一种将XML文件转换为Lua格式的过程,可以帮助我们更快捷地访问XML文件中的信息。下面是一段用于将XML转换为Lua的代码:…

    2024-03-07 13:14:22
    0 62 49
  • xml是什么格式的文件:如何使用XML来组织数据

    XML(Extensible Markup Language)是一种可扩展的标记语言,用于存储和传输数据。它使用标记来表示文档中的信息,这些标记可以被人类阅读,也可以被计算机解析。…

    2023-10-01 02:09:10
    0 44 97
  • java json 转xml:Java JSON to XML Conversion

    Java JSON 转 XML 是把 JSON 格式的字符串转换成 XML 格式的字符串。可以使用 Java 的 org.json 包来实现。下面是一个简单的代码示例:…

    2023-05-24 04:49:09
    0 89 49
  • xml卡片代码:XML卡片,代码,应用

    XML卡片代码是一种把XML文件转换为HTML页面的方法,它使用XML标记和CSS样式表来创建可重复使用的卡片布局。它可以在Web浏览器中显示,也可以在手机应用程序中使用,以提供一致的用户体验。…

    2023-03-16 01:44:25
    0 47 58
  • android 框架搭建:栏,2个按钮,1个文本框```xml `

    示例示例Android 框架搭建主要包括以下几个步骤:创建 Android 项目:在 Android Studio 中新建一个 Android 项目,设置项目名称、包名、SDK 版本等信息。…

    2023-05-26 00:48:49
    0 93 51
  • java xpath 解析xml:使用Java XPath解析XML文档的简单方法

    Java XPath 解析 XML 是一种使用 XPath 表达式来查询和操作 XML 文档的方法。要使用 Java XPath 解析 XML,首先需要创建一个 XPath 对象,然后使用该对象来解析 XML 文档。…

    2023-03-06 12:43:03
    0 88 16

发表评论

登录 后才能评论

评论列表(60条)