SpringMVC使用中遇到的问题总结

 

使用的IDE工具是MyEclipse2014, spring版本为3.1.1

在使用Spring MVC时需要修改web.xml配置文件,web.xml默认放在WEB-INF目录下。

1.web.xml约束文档

  用MyEclipse生成的约束文档有时不对,可以使用下面的模版

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
3         xmlns="http://java.sun.com/xml/ns/javaee" 
4         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
5         id="WebApp_ID" version="3.0">
6 
7 </web-app>

 

2.配置DispatcherServlet

  Spring MVC工作时其核心的部分是DispatcherServlet,这个servlet就是个门户,所有的请求和相应都需要经过它,我们需要在web.xml来指明它。

<servlet>
      <servlet-name>spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
     <servlet-name>spring</servlet-name>
     <url-pattern>/</url-pattern>
 </servlet-mapping>

配置它就像配置一个我们自己写的Servlet一样,这里不做说明。主要是这个Servlet在加载时需要读取关于Sring的配置信息文档(如:Spring-serlvet.xml)。这个文档的位置放在不对就会导致该Servlet加载失败。

2.1 使用默认配置路径

使用默认配置路径时,Spring-servlet.xml应该放在WEB-INF/下,这个而且这个文件的文件名不能随便命名。命名方式为

 <servlet-name>name</servlet-name>中的name连接 -servlet.xml,   如 <servlet-name>SpringTest</servlet-name>时那么配置文件名为SpringTest-servlet.xml

2.2 指定路径名

  上面的配置文件中就是使用的是指定路径名方式。

  <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
  </init-param>

  其中的classpath为/WEB-INF/classes目录,所以我们应该把配置文件放在这个目录下。也可以直接放在工程的src目录下,Myeclipse会自动将其放在classes目录中。当然我们也可以指定放在别的目录下,比如我们在WEB-INF下新建config目录,将配置文件放在其中,那我们也应该设置相应的参数。

 <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/spring-servlet.xml</param-value>
 </init-param>

2.3 特殊情况

  如果我们的web.xml只是用了一个servlet的话可以用上面的方式来指定spring-servlet.xml,如果定义了多个servlet的话,该文件只能通过<context-param></context-param>来配置,因为多个servlet可以共享context中的内容。配置方式如下

1 <context-param>
2        <param-name>contextConfigLocation</param-name>
3      <param-value>/WEB-INF/transport-servlet.xml</param-value>
4   </context-param>

 

3. Spring MVC框架的配置

3.1约束文档的引入

我们继续沿用sping-servlet.xml配置文档,下面的也一样。MyEclipse生成的配置文档引入的约束并不全,我们可以使用下面的约束。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd">
</beans>

 

 4.SpringMVC + Maven

  1.MyEclipse中配置maven

    这里不使用MyEclipse自带的maven,通过官网下载进行配置。配置教程 链接地址1 该教程只需看前面配置maven这一部分。

  2. 建立工程

    链接地址2

posted @ 2016-03-29 17:52  被罚站的树  阅读(2772)  评论(0编辑  收藏  举报