码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc中的几个问题

时间:2015-08-14 21:24:21      阅读:596      评论:0      收藏:0      [点我收藏+]

标签:

一   url-pattern的问题:

  <!-- No mapping found for HTTP request with URI [/WEB-INF/jsp/homePage.jsp] in DispatcherServlet with name ‘dispatcher‘
    其中/和/*的区别:
    <url-pattern> / </url-pattern>   不会匹配到*.jsp,即:*.jsp不会进入spring的 DispatcherServlet类.
    <url-pattern> /* </url-pattern>  会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错

    -->
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

 

 

 

二  访问静态资源的三种方式

(1)最后匹配,此处理器允许当dispatcherServlet的mapping为"/"时利用容器加载静态资源,会处理所有其它请求没有匹配后指向的缺省 servlet.比如的webapp下有一个1.jpg,不写这句无法加载.因为DispatcherServlet拦截“/”,拦截了所有的请求,同时 对*.js,*.jpg的访问也就被拦截了

  <mvc:default-servlet-handler/>

(2)

  <mvc:resources location="/img/" mapping="/img/**"/> 
  <mvc:resources location="/js/" mapping="/js/**"/>  
  <mvc:resources location="/css/" mapping="/css/**"/

(3)web.xml里添加如下的配置

<servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.css</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>

</servlet-mapping>
   
<servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
   
<servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.js</url-pattern>
</servlet-mapping>

 

 

 

 

三  <mvc:annotation-driven/>

这个标签不写的话,404,识别不了@controller标签.<mvc:annotation-driven/>相当于注册了AnnotationMethodHandlerAdapter的bean,里面有很多预先处理,即解决了@Controller注解的解析使用

 

 

 

四 重复打印各种无用日志

tomcat部署springmvc(什么也没配置的..)显示启动成功,但一直在重复打印下面几句话.浏览器访问可以:

19:49:07.507 [http-bio-8080-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - Successfully completed request
19:49:07.510 [http-bio-8080-exec-10] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name ‘dispatcher‘ processing HEAD request for [/]
19:49:07.510 [http-bio-8080-exec-10] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /
19:49:07.511 [http-bio-8080-exec-10] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Did not find handler method for [/]
19:49:07.511 [http-bio-8080-exec-10] WARN  o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/] in DispatcherServlet with name ‘dispatcher‘


网上查了不少原因,什么jar包冲突,配置错误,dispatcher路径等,均不管用. 最后多次尝试得到这个结论:
如果配置了tomcat after launch且并没有index.jsp首页就会发生这个情况.若是没有勾选after launch,则有无index.jsp都无所谓,都能正常启动不刷info 和 debug

 

 

 

五  全局异常处理器模板

   <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <!-- 定义默认的异常处理页面 -->
        <property name="defaultErrorView" value="errorPage"/>
        <!-- 定义异常处理页面用来获取异常信息的变量名,如果不添加exceptionAttribute属性,则默认为exception -->
        <property name="exceptionAttribute" value="exception"/>
        <!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常页面名作为值 -->
        <property name="exceptionMappings">
            <props>
                <!--<prop key="IOException">errorIOPage</prop>-->
                <!--<prop key="java.sql.SQLException">error/sql.jsp</prop>-->
            </props>
        </property>
    </bean>

 

 

 

六  读取配置文件

<util:properties id="properties" location="classpath:properties/authority.properties"/>

 

springmvc中的几个问题

标签:

原文地址:http://www.cnblogs.com/balfish/p/4731170.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!