输入网址后我收到此错误 本地主机: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
tutorialspoint.com/spring/spring_mvc_hello_world_example.htm
答案 0 :(得分:0)
您使用的是错误的网址。正确的URL是localhost:8080 / hello或localhost:8080 / HelloWeb / hello,具体取决于您的部署方式。
答案 1 :(得分:0)
当您点击网址localhost:8080/HelloWeb/
时,它需要一个目标网页来显示您可以在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)