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

时间: 2024-10-07 05:45:47

SpringMVC入门示例教程(二)的相关文章

SpringMVC入门示例教程(一)

其实之前刚刚学习框架的时候就已经听说过SpringMVC了,那个时候还不知道SpringMVC是干嘛的,感觉作用应该类似于Spring啥的,然后工作当中也很少用到SpringMVC,当然,工作经验本身就蛮少,也就没怎么去了解SpringMVC了,这几天突然想了解一下SpringMVC,然后就是各种度娘了,貌似学习所有的框架技术基本上都是先从一个简单的demo示例开始,例如hello world,像之前了解过的SSH框架,SSI框架.jFinal框架等等,,至少我是这样的,先把一个简单的Demo框

OpenCV 入门示例之二:播放 AVI 视频

前言 本文展示一个播放 AVI 视频的程序.( 呵呵是 AVI 视频不是 AV 视频噢! ) 代码示例 OpenCV 入门示例之二:播放 AVI 视频,布布扣,bubuko.com

SpringMVC 入门示例讲解

首先要了解什么是MVC,MVC全称是Model View Controller,是模型(Model)-视图(View)和控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑·.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 伯乐在线-ImportNew:       http://www.importnew

MVC5+EF6 入门完整教程二

从前端的UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分. ASP.NET MVC抛弃了WebForm的一些特有的习惯,例如服务器端控件,ViewState这些东西,让Web回归原始的状态,Web是什么样子就是什么样子.而谈到一个Web Application的UI,涉及到的无非就是html.css. js这些东西. 文章提纲 概述 重要概念介绍 建立 注册/登录UI 步骤(静态页面àViewà功能) 概述 一般来说,有两块功能是每个系统都

SpringMVC入门学习(二)应用注解方式+注解优化

前篇已经介绍使用SpringMVC的方式进行环境搭建,以及一个简单的demo测试,下面我们再来介绍一下使用注解的方式,如何实现. 添加配置文件 springAnnotation-servlet.xml <!-- 注解扫描包 --> <context:component-scan base-package="com.tgb.web.controller.annotation" /> <!-- 开启注解,这两种方式通用 --> <!-- <b

DWR 3.0 入门示例教程(简单实例)

DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible. Dwr能让在服务器端的java代码和浏览器客户端的javascript代码尽可能简单的相互调用. DWR is Easy Ajax for Java! 官网:http://di

Android视频录制从不入门到入门系列教程(二)————显示视频图像

1.创建一个空的工程,注意声明下列权限: <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 2.布局文件 <?xml version="1.0" encoding="utf-8"

ASP.NET + MVC5 入门完整教程二

原文链接:https://blog.csdn.net/qq_21419015/article/details/80318046 从前端UI开始 MVC分离的比较好,开发顺序没有特别要求,先开发哪一部分都可以,这次我们主要讲解前端UI的部分.而谈到一个Web Application的UI,涉及到的无非就是html.css. js这些东西.有兴趣的同学可以看看EsayUI. 任务建立 注册/登录UI 步骤(静态页面功能实现) 借助bootstrap加入页面样式,补充其他功能,将前面的代码扩展成一个开

Android视频录制从不入门到入门系列教程(三)————视频方向

运行Android视频录制从不入门到入门系列教程(二)————显示视频图像中的Demo后,我们应该能发现视频的方向是错误的. 由于Android中,Camera给我们的视频图片的原始方向是下图这个样子的: 就是说,即使你是竖着拿手机的,Camera提供给你的视频图像的方向还是上图那样横着的图片. 我们可以通过下述方向改变Camera提供的视频图像的方法: camera.setDisplayOrientation(90); 让图像顺时针旋转90度,视频图像的方向就正常的. 本篇文章DEMO下载.