【SpringMVC】SpringMVC入门实例及遇到的问题汇总

文章目录

    • SpringMVC入门实例
    • 404错误:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
    • 控制台提示错误:通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 、 'context:component-scan' 的声明
    • 控制台提示错误:org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI
    • 关于静态页面JSP、HTML等文件放置路径

SpringMVC入门实例

使用Intellij IDEA作为开发工具的童鞋可以参考下面的文章进行学习。在这里我主要讲我遇到的问题及解决方法。

参考文章: Intellij IDEA创建spring MVC项目

404错误:The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第1张图片
这个错误的意思是找不到文件。
对于我的问题,导致的原因是两个:

  1. 路径名有问题
  2. Tomcat的启动方式不对

对于上述两个原因的解决方法如下:

路径名有问题的解决方法:

在上面的Springmvc实例中,作者告诉我们访问的路径是: "http://localhost:8080/项目名/mvc/hello" 。而实际上这个项目名并不是意义上的你命名的这个项目的名字,而是你在Intellij IDEA里配置Tomcat Server时设置的项目名:

【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第2张图片
由于我在Application context设置的项目名是springmvcdemo_war_exploded,而我用springmvcdemo访问,所以就无法找到文件,修改了网址后就成功访问了:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第3张图片

Tomcat启动方式不对的解决方法:

对于SpringMVC 不能通过独立部署Tomcat来访问,即不能直接用tomcat\bin\startup.bat 来启动Tomcat然后键入网址访问,这样也是会提示404错误的。应该在IntelliJ IDEA里配置Tomcat服务器,然后通过IntelliJ IDEA的Run来启动服务。

【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第4张图片
运行的项目的名字是和你在Tomcat Server设置的项目一样的:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第5张图片
如果没有设置Tomcat Server的话,就无法启动项目。并且需要在这里设置好你要访问的网址,在启动的时候就会自己访问这个网址:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第6张图片
Tomcat Server的配置很关键,如果配置错了的话就无法正常运行,而且这个还不容易被注意到。
注:项目可以不用放在tomcat/webapps文件夹下,也能正常访问

控制台提示错误:通配符的匹配很全面, 但无法找到元素 ‘mvc:annotation-driven’ 、 ‘context:component-scan’ 的声明

如果你使用的是注解式配置,那么这个就是因为xxx-servlet.xml(xxx为你设置的名字,一般情况下是dispatcher)配置文件里少了东西导致的。一般是因为少了:
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
只需要进行如下配置就可以了:


控制台提示错误:org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI

这是因为dispatcher-servlet.xml文件里少了一句
早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置中需要使用 *.do 、 *.xhtml等方式捕获请求,如果需要截获所有的URL请求(即在web.xml里设置/),就需要加入

关于静态页面JSP、HTML等文件放置路径

如果你想把JSP、HTML文件放在别的位置,而不是WEB-INF/jsp下。
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第7张图片
对于文件路径,不能使用/../这样的格式,而是要用绝对路径名,否则会出现如下错误:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第8张图片
服务器不知道这是什么地址。
比如我将文件放在了web目录下,则直接使用/就可以访问了:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第9张图片

而且可以通过旁边的绿点可以查看自己设置的控制器和文件路径有没有问题,如果没有问题的话会出现:
【SpringMVC】SpringMVC入门实例及遇到的问题汇总_第10张图片
点击它就可以跳转到指定的文件,如果没有出现,就证明配置文件有问题,这样的话你也是无法正常访问网址的。

你可能感兴趣的:(SpringMVC)