有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用<urlpattern>/*</urlpattern>

我已经用这个模式设置了一个servlet /*,但是我甚至在获取索引时也会遇到404错误。jsp文件,我认为/*与任何模式都匹配,代码是正确的,因为它与*.html一起工作

网络。xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>


   <servlet>
        <servlet-name>main</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>main</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

这个控制器呢

package com.tutorial.ejemplospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MainController {

    @RequestMapping("/main.html")
    public ModelAndView mainPage() {

        return new ModelAndView("main");
    }
    @RequestMapping("/second.html")
    public ModelAndView secondPage() {

        return new ModelAndView("second");
    }

}

共 (1) 个答案

  1. # 1 楼答案

    /*是一种详尽的模式,通常你会用这种模式映射过滤器,你希望所有的请求在到达你的调度器之前都被传递到过滤器

    正如@JB Nizet所解释的,/*将匹配/索引。jsp,所以它被路由到dispatcher,但dispatcher不知道如何处理它。第二html仍然要通过dispatcher,但它知道如何处理发送到正确jsp页面的任何操作