项目总结-SpringMVC细节问题

1  只是因为SQL结束时多写了一个分号

       使用SpringMVC+iBatis开发,编写iBatis的SQL映射文件时,可能会习惯性地在语句结束时打一个分号,结果项目的DAO执行过程中出现了SQL异常:Cause: java.sql.SQLException: ORA-00911: 无效字符。还有一些类似的无效的数字等错误,是因为SQL语句的列类型和传入的参数类型不匹配,可能原因是列名称拼写错误。这是一个同事在开发过程中出现的错误,引以为鉴。

2 web项目的目录结构

       java web项目部署到Tomcate服务器后,解压后的文件目录就是项目的WebContent的内容(除了WEB-INF外)。WEB-INF目录中的内容,用户不能访问到,而其他资源则是对用户开放的。我接触过的比较好的一个目录结构是这样的,它是Maven项目的结构。一个清晰的目录结构有助于开发人员快速了解一个项目,这点我欣赏Maven统一的目录风格。而项目中资源的引用可以直接是相对WebContent目录的,也可以是通过basePath拼接的绝对路径。

项目总结-SpringMVC细节问题_第1张图片

3 SpringMVC拦截静态资源问题 

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

       通常我们使用SpringMVC时会这样配置拦截路径,这将导致一些静态资源如js、css、img等不能被正常访问,解决方式有两种,一种是在web.xml中配置这类资源使用默认拦截器进行处理。如:不拦截js文件的配置:

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

       另外一种通知SpringMVC不拦截静态资源的方式是在spring-servlet.xml配置中添加<mvc:resource>标签,放过所有对静态资源目录的访问请求。

<!--放过/resource下的静态文件-->
<mvc:resources mapping="/resource/**" location="/resource/"/>

          结论:以往参与项目都是别人搭好的框架,没有特别留意过各个配置项真正的作用。最近自己搭建Web项目时,使用的Web目录结构类似Maven,Spring配置暂时没有。结果一个简单的首页一直无法访问jQuery.js文件,下午不停百度终于找到这个问题的根源了。被忽略的细节,最终还是逃不掉的!

你可能感兴趣的:(springMVC)