Spring MVC 404错误提示

jhkqcmku  于 2022-11-14  发布在  Spring
关注(0)|答案(9)|浏览(210)

我在键入URL localhost: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你好程序

您好控制器.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";
    }
}

您好.jsp

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

网页.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>

您好Web服务小程序.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>

这是我的项目层次结构
您好Web
源代码
com.tutorialspoint
网站内容
jsp语言
hello.jsp
元干扰素
MANIFEST.MF
网页_INF
自由
HelloWeb-servlet.xml
index.jsp
web.xml
对不起,我忘了包括我下面的这个Spring MVC示例


q0qdq0h2

q0qdq0h21#

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

qvtsj1bj

qvtsj1bj2#

当您点击url 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

7vhp5slm

7vhp5slm3#

这是晚了,但我也有同样的问题,因为我也采取了代码从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>
pwuypxnk

pwuypxnk4#

我也遇到了同样的问题,发现我的JSP名称中有一个空格。来自Tutorialspoint的示例可以完美地工作。

dsf9zpds

dsf9zpds5#

我知道这个帖子很老了,这是为了其他可能面临同样挑战的人。您的urlMap没有正确Map。使用这个作为您的控制器。注意,更改只是'hello'到'helloWeb'您的控制器中的名称(@RequestMapping(“/hello”))应该与您的web应用程序中的名称(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";
        }
    }
uqjltbpv

uqjltbpv6#

这是你的密码...

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

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

但是,通过查看项目层次结构,您并没有在那里找到文件夹。
因此,请将您的代码更改为以下代码:

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

dldeef677#

正如@SparkOn所指出的,该演示缺少<mvc:annotation-driven/>
我在github上做了一个工作版本,所以任何引用此页面的人都可以 checkout 它,并使用maven运行它,如下所示:
使用Maven构建

mvn clean package jetty:run-war

进入浏览器,输入http://localhost:8080/hello
你会看到

Hello Spring MVC Framework!
uemypmqf

uemypmqf8#

我遇到了类似的问题,并遵循了几个步骤来解决这个问题。虽然它很老的职位,解决方案可能会帮助其他人:-)
我解决问题所遵循的步骤
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.不要忘记将部署路径设置为Web应用程序
4.右侧clich项目-〉运行方式-〉运行在服务器上
5.进入浏览器,输入http://localhost:8080/yourApplicationName/yourPath

pinkon5k

pinkon5k9#

您尚未在此处提供请求Map

@RequestMapping(method = RequestMethod.GET)

相关问题