Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用简单的Spring MVC项目面对404错误_Java_Jsp_Spring Mvc - Fatal编程技术网

Java 用简单的Spring MVC项目面对404错误

Java 用简单的Spring MVC项目面对404错误,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,我试图用SpringMVC做一个简单的例子。每一个代码似乎对我来说都很好,但仍然得到404错误。这是我的代码,你能帮我为什么我得到这个错误吗 web.xml: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee h

我试图用SpringMVC做一个简单的例子。每一个代码似乎对我来说都很好,但仍然得到404错误。这是我的代码,你能帮我为什么我得到这个错误吗

web.xml:

       <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">

<display-name>Demo</display-name>

<welcome-file-list>
    <welcome-file>hello.jsp</welcome-file>
</welcome-file-list>

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

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

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/Demo-servlet.xml</param-value>
</context-param>
请帮我解决这个问题。
提前感谢

将您的web.xml更改为:

<servlet-mapping>
    <servlet-name>Demo</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
现在打开浏览器并使用以下命令调用控制器:://demo.htm


在开发过程中,如果启用Spring调试日志,这将是一件好事。至少在你掌握框架之前。他们提供了宝贵的信息

感谢您的回复。但我认为错误不在于url模式。因为使用“/”意味着,它处理所有类型的url模式,而不仅仅是特定的.htm或.jsp。关于调试日志,我的控制器本身没有被调用,那么我怎样才能得到特定功能的日志呢?我从来没有说过它不工作。向URL模式提供/使所有请求都通过RequestDispatcher。包括静态资源。因此,在Spring框架中遵循的一个强大惯例是要么提供前缀(.htm或其他内容),要么像/demo/create这样深入定义URL,而不是仅仅定义/。请记住,即使在调用到达控制器之前,在Spring中也会调用一堆过滤器、拦截器和类,并且这些组件中的每一个都有一些有用的信息要记录。顺便说一句,我所说的请求调度器是指DispatcherServlet至少,您可以将控制器定义为@Controller@RequestMapping(“/home”)公共类HomeController并调用它http://:///home导致404的url是什么
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html lang="en">
 <head>
 </head>
<body>
<h1>Gradle - Spring MVC Hello World</h1>
 <h2>Hello ${name}</h2>
 </body>
 </html>
 package com.Demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;

@Controller
@RequestMapping("/")
public class HomeController{

@RequestMapping(method = RequestMethod.GET)
public String printHello(ModelMap model) {
   model.addAttribute("name", "Hello Spring MVC Framework!");
   return "hello";
 }
}
<servlet-mapping>
    <servlet-name>Demo</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
@Controller
@RequestMapping("/demo")
public class HomeController