springMVC的dispatcherServlet访问路径映射问题

来源:互联网 发布:麦克海尔数据 编辑:程序博客网 时间:2024/05/23 20:46

一:文章前言

spingMVC是一款非常优秀的MVC框架,用好它可以为我们解决许多技术问题。然而并不是所有的问题都可以通过框架来解决,有可能框架还会带来问题,遇到问题的时候不要急躁,静下心来仔细分析也许问题就会迎刃而解。
话不多说,总之,勤奋学习才是积累知识解决问题的主要途径,希望所有正在学习途中的朋友们学习愉快,天天进步。

二:映射问题,tomcat打开但是出现404

问题描述:org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/favicon.ico] in DispatcherServlet with name 'dispatcher',红色字体很清楚的表示页面找不到,没有Control,这是为什么呢?
切入正题之前我先引入一个知识点,url-pattern的"/"和“/*”的区别,"/*"的意思是所有的请求都会经过当前的servlet拦截,比如.jsp、/action等,然而"/"是不会对.jsp这样的请求进行拦截的。
用spingMVC的人都知道需要在web.xml文件配置dispatcherServlet。
 <servlet>        <servlet-name>dispatcher</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:dispatcher-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcher</servlet-name>        <url-pattern>/*</url-pattern>    </servlet-mapping>

如果像这样配置url-pattern配置为/*就是说在打开tomcat的时候请求jsp页面,当页面返回视图的时候,会经过当前配置的这个dispatcherServlet,然而却没有当前这个页面的Control来返回,所以就出现找不到上面红色字所表现的错误。没有控制器。
    <servlet>        <servlet-name>dispatcher</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:dispatcher-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>dispatcher</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>
而如果像这样url-pattern配置为/就不会出现这样的情况了,/不会对.jsp请求进行拦截。


三:总结

在对技术的学习上,学习框架并且使用它是很重要的,但是理解它的工作原理才是更重要的。













阅读全文
2 0
原创粉丝点击