SpringMVC入门示例教程(二)

上一篇博客简单地介绍了下SpringMVC框架的搭建,然后也都是采用的默认的方式,即需要将SpringMVC的核心配置文件放在/WEB-INF/目录下,由工程自动去加载,但是在我们实际的项目开发过程中,一般都不会这样去处理,很少使用这样的默认配置,而且这样的默认方式看起来比较杂乱,所以通常情况下我们都会将配置文件独立出来,单独去管理。

一、手动指定SpringMVC的核心配置文件加载位置

解决方法:

1、在src目录下建一个包,专门放置配置文件的

2、将原来WEB-INF目录下的springMVC的配置文件移到这个配置包路径下面。

3、在web.xml文件中使用<init-param> 配置一下加载路径。

<init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:com/feizi/config/springmvc-servlet.xml</param-value>
    </init-param>

整个web.xml文件的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc_demo_04</display-name>

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>

    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:com/feizi/config/springmvc-servlet.xml</param-value>
    </init-param>
  </servlet>

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

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

工程结构:

这里写图片描述

然后后续操作和示例教程(一)中的demo一样。配置好之后,运行一下,在浏览器中看看效果。

这里写图片描述

这里写图片描述

二、使用SpringMVC的注解方式

1、在SpringMVC的核心配置文件[servlet-name]-servlet.xml文件中启用注解映射支持:

<?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!--  配置注解的支持    -->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!--  启用自动扫描   -->
    <context:component-scan base-package="com.feizi.controller"></context:component-scan>

    <!--  配置视图解析器  -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- <property name="prefix" value="/"></property> -->
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <!--  配置视图类型为jsp类型  -->
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

2、然后就可以在控制器类中使用注解方式了

/**
  * 文件说明
  * @Description:扩展说明
  * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved
  * @Version: V6.0
  */
package com.feizi.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**  
 * @Author: feizi
 * @Date: 2015年5月7日 下午4:00:23 
 * @ModifyUser: feizi
 * @ModifyDate: 2015年5月7日 下午4:00:23 
 * @Version:V6.0
 */
//通过@Controller注解标识HelloController这个类是一个控制器
@Controller
public class HelloController {

    @RequestMapping(value="/hello",method=RequestMethod.GET)
    public String sayHello(){
        System.out.println("======================Hello World!!!================");
        return "hello";
    }
}

然后这里需要注意一下:可能我们在启动tomcat的时候会报错,如果是用的tomcat6.0的话,启动的时候可能会报如下异常:

这里写图片描述

问题描述:spring3.2的架构在tomcat6.0中无法正常启动,抛出java.lang.NoClassDefFoundError: javax/servlet/AsyncListener错误

异常原因:

1:org.springframework.web.servlet-3.2支持Servlet3.0的版本。

2:tomcat6.0只支持Servlet2.5,而tomcat7.0支持Servlet3.0。

从而造成需求方和供应方对Servlet版本的不兼容。

解决方案:

将tomcat6.0/lib文件夹下的servlet-api.jar文件替换为tomcat7.0的。

注意:一定要替换tomcat/lib下的jar,如果放到WEB-INF/lib中同样会报错。原因:tomcat6.0是提供servlet-api.jar的,且在启动时加载jar文件的顺序是先从tomcat6.0/lib开始,然后再加载WEB-INF/lib。所以只放在WEB-INF/lib中,jar文件是无效的。

我们将tomcat7.0安装目录的lib目录中的servlet-api.jar包拷贝到tomcat6.0安装目录的lib目录中进行替换。

这里写图片描述

之后,再启动tomcat6.0就会正常启动了

这里写图片描述

然后运行一下,在浏览器中看看效果:

这里写图片描述

这里写图片描述

ok,到这里关于SpringMVC的初级入门就已经完成了,当然了,入门是很简单,但是关于这个SpringMVC其中的缘由、和为什么这样去设计以及什么情况下去选择这种框架技术还是有待一番研究的。SpringMVC框架如此受欢迎肯定也是有一定的原因的,然而这个也不是说一天两天的事情,冰冻三尺非一日之寒,骚年,继续努力吧!!!

关于这两篇博客的所有demo示例都已经打包上传至csdn:
http://download.csdn.net/detail/hu1991die/8673299

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值