Spring MVC http状态404错误

时间:2014-08-31 07:54:57

标签: spring-mvc

输入网址后我收到此错误 本地主机:8080 /的HelloWeb

HTTP Status 404 - /HelloWeb

type Status report

message /HelloWeb

description The requested resource is not available.
Apache Tomcat/7.0.30

我无法解决,请帮助别人  这是我执行此SPRING MVC hello程序所需的文件

HelloController.java

package com.tutorialspoint;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/hello")
public class HelloController {
    @RequestMapping(method = RequestMethod.GET)
    public String printHello(ModelMap model) {
        model.addAttribute("message", "Hello Spring MVC Framework!");

        return "hello";
    }
}

的hello.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
   <h2>${message}</h2>
</body>
</html>

的web.xml

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

   <display-name>Spring MVC Application</display-name>

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

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

</web-app>

的HelloWeb-servlet.xml中

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:component-scan base-package="com.tutorialspoint" />

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

</beans>

这是我的项目层次结构

HelloWeb
SRC
com.tutorialspoint
的WebContent
JSP
为hello.jsp
META-INF
MANIFEST.MF
WEB_INF
LIB
的HelloWeb-servlet.xml中
index.jsp的
的web.xml

抱歉,我忘了在

中跟随这个Spring MVC示例

tutorialspoint.com/spring/spring_mvc_hello_world_example.htm

9 个答案:

答案 0 :(得分:0)

您使用的是错误的网址。正确的URL是localhost:8080 / hello或localhost:8080 / HelloWeb / hello,具体取决于您的部署方式。

答案 1 :(得分:0)

当您点击网址localhost:8080/HelloWeb/时,它需要一个目标网页来显示您可以在web.xml中指定的内容。将其添加到

下的web.xml中
<welcome-file-list>
  <welcome-file>/WEB-INF/index.jsp</welcome-file>
</welcome-file-list>

但如果您需要访问servlet,则需要将url指定为 localhost:8080/HelloWeb/hello

答案 2 :(得分:0)

这已经很晚了,但是我也有同样的问题,因为我也从tutorialspoint.com获取代码

尝试在HelloWeb-servlet.xml

中添加此内容
<context:annotation-config />

这将启用注释

并在web.xml

中包含此内容
 <welcome-file-list>
 <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
 </welcome-file-list>

答案 3 :(得分:0)

我遇到了同样的问题,发现我的jsp名称有空格。 tutorialspoint中的示例完美无瑕。

答案 4 :(得分:0)

我知道这篇文章很老,这是为了其他可能面临同样挑战的人。 您的网址映射未正确映射。用它作为你的控制器。注意改变只是'hello'到'helloWeb'你的Controoler中的名字(@RequestMapping(“/ hello”))应该与你的web-app中的名字相同(       的HelloWeb       /    )

 package com.tutorialspoint;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    @Controller
    @RequestMapping("/HelloWeb")
    public class HelloController {
        @RequestMapping(method = RequestMethod.GET)
        public String printHello(ModelMap model) {
            model.addAttribute("message", "Hello Spring MVC Framework!");

            return "hello";
        }
    }

答案 5 :(得分:0)

这是你的代码......

`<property name="prefix" value="/WEB-INF/jsp/" />`

it shows that you have folder 'jsp' inside the 'WEB-INF' . 

但是,通过查看项目层次结构,您没有文件夹。

因此,请将您的代码更改为:

`<property name="prefix" value="/WEB-INF/" />.`

答案 6 :(得分:0)

正如@SparkOn所指出的,该演示缺少<mvc:annotation-driven/>

我在github上制作了一个有效的版本,因此任何引用此页面的人都可以检出并使用maven运行它,如下所示:

使用Maven构建

mvn clean package jetty:run-war

并转到浏览器,输入http://localhost:8080/hello

您将会看到

 Hello Spring MVC Framework!

答案 7 :(得分:0)

我遇到了类似的问题,并按照一些步骤解决了该问题。尽管它的帖子很旧,但该解决方案可能会对其他人有所帮助:-)

我要解决的步骤

1。检查服务器配置    您应该获得http://localhost:8080/的Tomcat主页,否则请点击以下链接
Tomcat started in Eclipse but unable to connect to http://localhost:8085/

2。Why tomcat server location property is greyed in Eclipse

3。别忘了将Deploypath设置为webapps

4。正确的老项目-> RunAs-> RunOnServer

5.go进入浏览器,输入http://localhost:8080/yourApplicationName/yourPath

答案 8 :(得分:0)

您尚未在此处提供请求映射

@RequestMapping(method = RequestMethod.GET)