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

在名为“HelloWeb”[duplicate]的DispatcherServlet中找不到URI为[/HelloWeb/]的HTTP请求的映射

松博耘
2023-03-14

我在tomcat上部署我的项目,然后我得到这个错误没有找到HTTP请求与URI[/HelloWeb/]在DispatcherServlet名称'HelloWeb'映射。

这是我的web xml文件web。xml

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

<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>

我的HelloWebservlet。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.controller" />

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

</beans>

我的控制器是Hello控制器。JAVA

package com.tutorialspoint.controller;

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
public class HelloController {

    @RequestMapping(value = "/hello", 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>

有谁能告诉我代码有什么问题吗?

共有3个答案

公孙栋
2023-03-14

您没有/HelloWorld/的映射,只有/hello/

转到基本应用程序位置localhost:8080/myApp/,然后转到/hellojsp应该会返回。所以localhost:8080/myApp/hello其中myApp是您的war文件名(假设它不是root)。

劳华灿
2023-03-14

你查过那个Hello控制器了吗。类是否在[PROJECT\u NAME]\target\classes\com\tutorialspoint\controller文件夹中生成。如果不是,由于一些编译错误,您的java代码没有被编译。

请检查HelloController中使用的所有相应java类。JAVA

丌官嘉勋
2023-03-14

我相信您正在遵循针对Spring MVC的教程spoorialspoint-HelloWorld的教程。我也有同样的问题,因为DispatcherServlet试图解决。

http://localhost:8080/HelloWeb/

应该是:

http://localhost:8080/HelloWeb/hello

(把这个放在你的网络浏览器中)

或者可以用另一种方式(如该教程所建议的)

您应该注意,在给定的URL中,HelloWeb是应用程序名,hello是我们在控制器中使用@RequestMapping(“/hello”)提到的虚拟子文件夹。在使用@RequestMapping(“/”)映射URL时,可以使用direct root,在这种情况下,可以使用短URLhttp://localhost:8080/HelloWeb/但建议在不同的文件夹下使用不同的功能。

在HelloWorldController类中,您可以更改以下内容:

@RequestMapping("/hello")

对此:

@RequestMapping("/")

结果是你可以毫无问题地调用http://localhost:8080/HelloWeb/

希望有帮助!

 类似资料: