找不到HTTP请求的映射


问题内容

我回来在斯普林斯工作。我曾经在Springs工作,但盲目地了解得并不多。我曾经遇到过很多错误,非常基本的错误,而我又得到了它们。

我的问题是,我不知道如何配置Spring-MVC工作。
当我从STS运行项目时会发生什么?
我正在STS的spring模板项目中工作。

我在运行项目时得到了这个。
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/common/] in DispatcherServlet with name 'appServlet'

我完全受够了,坏了。
刚休息两个月,我又回到了起跑线上。

我不想发布我的代码并使问题具体化。

我想要一个解释服务器执行spring项目的方式的答案。从运行应用程序(基本hello world应用程序)到显示主页。
这将对所有初学者有所帮助。
我尝试在网上搜索这样的解释,但没有得到任何适当的 解释 ,但是有很多基本示例。这些样本很容易理解,但是并不能解释服务器的运行方式。

注意: 我正在寻找一个解释Springs概念的答案。从运行应用程序到显示主页。在此过程中会发生什么?服务器从哪里开始?如何进行?


问题答案:

这是最初servlet容器加载web.xml文件的流程。在web.xml中,我们将指定所有请求均由Spring FrontController
DispatcherServlet处理。我们通过添加以下代码来包含它

<servlet>
        <servlet-name>dispatcher</servlet-name>
         <servletclass>org.springframework.web.servlet.DispatcherServlet</servletclass>
         <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

在这里,它指示url请求是否为* .htm,由dispatcherServlet处理,然后由dispatcherServlet加载dispatcher-
servlet.xml进行处理。我们需要通过编写特定的url请求来提及到控制器的映射,例如

<bean name="/insert.htm" class="com.controller.MyController"></bean>

因此在bean中我们提到要对其进行请求,/insert.htm它告诉servlet在所提到的类中进行查找。您需要在方法上方使用@RequestMapping的Annotation

@RequestMapping("/insert.htm")
public ModelAndView insert(HttpServletRequest req,Student student)
{
   String name=req.getParameter("name");
    int id=Integer.parseInt(req.getParameter("id"));
    student.setId(id);

    return new ModelAndView("display","Student",student);//It returns a view named        display with modelclass name as `Student` and model object student
    }

因此,当/insert.htm出现一个请求URL时,它执行上述方法,它返回一个ModelAndView对象,只返回一个视图。它再次转到dispatcher-
servlet.xml并查找视图解析器,要添加的普通代码是

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/jsp/"
      p:suffix=".jsp" />

因此,它从中获取逻辑视图名称并在其后附加前缀和后缀。最后,它在视图中显示内容。因此,它在视图解析器前缀中查找显示并为后缀添加东西,最后返回/ WEB-INF
/ jsp / display.jsp。显示哪个jsp内容