当前位置: 首页 > 知识库问答 >
问题:

Spring:servlet映射->url模式:/*正在工作,但无法显示

章永安
2023-03-14

web.xml

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/webmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

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

/we b-INF/spring/WEB MVC-config . XML

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="atom" value="application/atom+xml" />
            <entry key="html" value="text/html" />
            <entry key="json" value="application/json" />
        </map>
    </property>
    <property name="viewResolvers">
        <list>
            <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
            <bean
                class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/WEB-INF/views/" />
                <property name="suffix" value=".jsp" />
            </bean>
        </list>
    </property>
    <property name="defaultViews">
        <list>
            <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
        </list>
    </property>
</bean>

控制器

@Controller
@RequestMapping ( "/" )
public class IndexController extends BaseController
{
    @RequestMapping ( "/" )
    public String index ( Model model ){
        System.out.println("AA");
        return index2(model);
    }

    @RequestMapping ( "/index" )
    public String index2 ( Model model ){
        System.out.println("BB");
        return "index";
    }
}

并存在索引.jsp文件

我想这是非常好的工作

但是!

为什么????为什么????为什么????为什么????

更奇怪的是

??????????????????????????????????????????????????

控制器工作!!但不显示浏览器

这是怎么回事?

请帮助我。

和日志

名为“dispatcher”处理 GET 请求的 DispatcherServlet [/WEB-INF/views/index.jsp]

在 DispatcherServlet 中找不到名称为“dispatcher”的带有 URI [/WEB-INF/views/index.jsp] 的 HTTP 请求的映射

共有1个答案

薛晨
2023-03-14

Servlet容器有它们如何映射和处理URI请求的规则。这些可以在Servlet规范中找到。同样重要的是要注意,大多数Servlet容器都有一个Servlet来处理JSP,映射到*. jsp,这是一个扩展映射。Tomcat有一个JspServlet来执行此操作。

您已将您的< code>DispatcherServlet映射到

<url-pattern>/*</url-pattern>

这是一个路径映射。路径映射优先于扩展映射。因此,当您提交视图名称时

return "index";

Spring将使用ViewResolver

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

解析与RequestDispatcher转发方法一起使用的路径。该路径将是/WEB-INF/views/index.jsp。现在,Servlet容器将接收该路径,并尝试找到Servlet来处理它。由于您有一个Servlet映射到/*Servlet,所以它将使用它,但您的 没有该路径的映射,因此会以404响应。

简单的解决方案是将映射更改为/,如果未找到其他匹配项,则该映射为默认处理程序。在这种情况下,当您提交视图并且容器必须找到映射的<code>Servlet</code>时,它将找到<code>JspServlet>/code<并使用它。

 类似资料:
  • 我们正在进行灾难恢复练习,一些Hibernate Spring应用程序没有出现以下错误 hbm映射XML文件已被删除 在SO和Hibernate论坛上搜索修复程序看起来需要在doctype to SYSTEM中创建DTD,以便它从本地系统而不是sourceforge上托管的公共DTD读取。网 但是Hibernate正在查找appserver根文件夹上的文件 如何指定系统DTD引用,以便Hibern

  • 问题内容: 具有以下映射: 如果我添加以下代码,即使它与映射不匹配(丢失)也可以完美地工作,但ES不会抱怨。 如果我添加以下条目,它也可以工作。 似乎该映射未对我添加的元素生效。尝试映射类型时我做错了什么? 问题答案: 这是Elasticsearch的默认行为,在大多数情况下是理想的。但是对于您的情况,如果您不想允许索引未在映射中定义的字段,则需要更新映射并将其属性设置为。基本上,您的映射定义应如

  • 问题内容: 我正在尝试设置控制器,但是很遗憾无法查看输出…一切都正确呈现。当我转到404页面时。从Netbeans运行我的应用程序转到 app-config.xml web.xml 我如何调试它,看看有什么用,什么没用? 更新资料 Netbeans中的GlassFish服务器日志显示 问题答案: 您的名字映射到中吗?从您先前的问题中,我看到: 网址不匹配格式。尝试一种可能的解决方法。

  • 上一章中我们谈论了如何在Vim中映射按键。我们使用的命令map在normal模式下工作。 如果阅读本章之前你自己已经折腾了,可能会注意到这个映射在visual模式一样工作。 你可以使用nmap、vmap和imap命令分别指定映射仅在normal、visual、insert模式有效。 执行如下命令: :::vim :nmap \ dd 在normal模式下,按下\。Vim会删除当前行。 现在进入V

  • 问题内容: 1.背景 我的Maven项目中有很多模块和子模块,并且和一切正常。我也可以毫无问题地将其部署在服务器上。 我决定遵循此Maven命名转换,我正在进行一些测试,并使用一个适当的名称。 我为根工件定义的模式是,以及为模块和子模块创建的模式是: 公司任何工件任何模块1 公司-任何工件-任何模块2-任何子模块1 公司-任何工件-任何模块2-任何子模块2 的模式是: 公司任何人工制品任何模块1-

  • 我有一个由2个网格(平面、立方体)、一个灯和一个相机组成的场景。我想使用GLSL着色器和OpenGL的阴影映射技术在我的场景中显示阴影。 以下是我得到的结果(为了简单起见,我的立方体和平面都是蓝色和蓝色): 这是FBO和深度纹理初始化: 以下是我的顶点着色器的内容: 还有我的片段着色器: 正如你所见,模型上有一些工件,我不知道如何取出它们。但是阴影看起来是正确的,所以我的着色器中输入的变量也应该是