之前进公司就直接使用spring mvc做项目了,并没有系统学习过,后来再回头去总结的时候发现我只是在项目中会使用,但是有关spring mvc的配置,还有注解什么的想起来会感觉很混乱,趁着这几天不忙,好好地系统学习总结一下spring mvc。本文只是描述了如何创建一个简单spring mvc工程,有关spring mvc注解的内容请参看本人的另外一篇文章:

http://blog.csdn.net/lmb55/article/details/50879776

下面就以一个spring mvc小例子开始这次学习。

1、导入spring mvc相关的jar包;

2、在web.xml中加入如下有关spring mvc的配置:

<servlet><servlet-name>appServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>appServlet</servlet-name><url-pattern>/restservice/*</url-pattern></servlet-mapping>

注意:

(1)、DispatcherServlet是前端控制器,每一个请求最先访问的都是DispatcherServlet,配置在web.xml中,拦截匹配的请求,DispatcherServlet拦截匹配规则需要自己定义,把拦截下来的请求依据相应的规则分发给目标controller去处理。是配置spring mvc的第一步。

(2)、load-on-startup:表示启动容器时初始化该Servlet;

(3)、url-pattern:表示哪些请求交给Spring MVC处理, 本例配置中resetservice下的所有请求均交给spring mvc来处理。

自此请求已交给Spring MVC框架处理,因此我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB- INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件,因本配置给出了初始化参数init-param,所以会加载WEB-INF/spring/appServlet/servlet-context.xml。

3、配置spring的配置文件(在WEB-INF/spring/appServlet下配置名为servlet-context.xml的配置文件)

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:beans="http://www.springframework.org/schema/beans"xmlns:util="http://www.springframework.org/schema/util"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 该配置的功能为:启动包扫描功能;下面会有详细介绍 --><context:component-scan base-package="com.hollycrm.hollyuniproxy.server.http,com.hollycrm.**.mvc" /><!-- if you use annotation you must configure this setting--><mvc:annotation-driven /><!-- 拦截有关静态资源的访问,在访问静态资源的时候就可以不经过controller。所有的页面引用到的"/resources/**"资源都到/resources/目录下面去找 --><mvc:resources mapping="/resources/**" location="/resources/" /><mvc:resources mapping="/**" location="/" /><!-- 如果当前视图是"/",则交给相应的视图解析器直接解析为视图 --><mvc:view-controller path="/" view-name="login"/><mvc:view-controller path="/welcome" view-name="home"/><!-- 重定向:如果当前视图 是"/",则重定向到/admin/index--><mvc:view-controller path="/" view-name="redirect:/admin/index"/><!-- 视图名称解析器 --><beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><beans:property name="prefix" value="/" /><beans:property name="suffix" value=".jsp" /></beans:bean>

注意:

1、命名空间<context:component-scan />

首先,如果要使注解工作,则必须配置component-scan 。该配置的功能为:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean。例:

<context:component-scanbase-package="com.tgb.web"/>

base-package 属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。还允许定义过滤器将基包下的某些类纳入或排除。
  
Spring支持以下4种类型的过滤方式:
    
    1) 注解org.example.SomeAnnotation 将所有使用SomeAnnotation注解的类过滤出来;
    
    2) 类名指定org.example.SomeClass 过滤指定的类;
    
    3) 正则表达式com.kedacom.spring.annotation.web..* 通过正则表达式过滤一些类;
    
    4) AspectJ 表达式 org.example..*Service+ 通过AspectJ 表达式过滤一些类;
    
示例如下:

    <context:component-scan base-package="com.hollycrm.hollyuniproxy.server.http,com.hollycrm.**.mvc"><!-- 正则表达式的过滤方式 --><context:exclude-filter type="regex" expression="com.hollycrm.hollyuniproxy.server.http"/><!-- 注解的过滤方式 --><context:exclude-filter type="annotation" expression="com.hollycrm.Service"/><context:exclude-filter type="annotation" expression="com.hollycrm.Controller"/><context:exclude-filter type="annotation" expression="com.hollycrm.Repository"/></context:component-scan>

2、InternalResourceViewResolver:视图名称解析器,用于支持Servlet、JSP视图解析;prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;

今天先写到这儿,稍后新建一个spring mvc的工程传到资源页,再来补~

【Spring MVC学习】spring mvc入门示例相关推荐

  1. OpenCV-Python实战(18)——深度学习简介与入门示例

    OpenCV-Python实战(18)--深度学习简介与入门示例 0. 前言 1. 计算机视觉中的深度学习简介 1.1 深度学习的特点 1.2 深度学习大爆发 2. 用于图像分类的深度学习简介 3. ...

  2. Spring MVC 无XML配置入门示例

    Spring MVC 无XML(纯 Java)配置入门示例 本示例是从<Spring in Action, Fourth Edition>一书而来,涉及的是书中5.1节部分内容,书中其实说 ...

  3. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring

    spring框架mvc框架 Spring Framework is one of the most widely used Java EE Frameworks. It's an open sourc ...

  4. 如何学习 Spring ?学习 Spring 前要学习什么?

    学习完java核心技术卷一后该掌握什么知识才能学习spring? 学习完Java基础,想要继续学习JavaWeb的基础,我推荐的是下面这个路线(有帮助,记得点赞!): 一.学习Servlet和Tomc ...

  5. Spring框架学习-Spring和IOC概述

    一:什么是Spring框架? spring是一个分层的javase/EEfull-stack(一站式)轻量级的java开源框架.是为了解决企业开发的复杂性而创建的.框架的主要优势是分层架构,Sprin ...

  6. Spring框架学习【从入门到精通】

    文章目录 初识Spring框架 时代变迁 Spring的野心 官网 框架组成 核心概念 三大核心组件的关系 主要jar组成 Spring框架两大核心:IoC和DI 概念 IoC DI IoC的XML方 ...

  7. Spring Cloud Eureka 最简入门示例

    本篇演示 搭建Eureka注册服务器,Eureka客户端(服务提供方) 和服务消费方的示例. 环境 Windows 10 JDK 1.8 Eclipse Version: 2021-06 Mavan: ...

  8. Spring boot 学习二:入门

    1: 需要的环境: JDK:至少JDK7才支持Spring boot maven:至少3.2 spring-boot:1.2.5.RELEASE(在pom.xml中指定) 2: 创建一个maven工程 ...

  9. ASP.NET MVC学习:MVC 特性作用(二)

    [DataType(DataType.Url)] 将字段显示为超链接 默认会在当前页面打开链接 若想在新建窗口打开 则需要 1.在Views文件夹中的Shared文件夹中创建一个为Url的视图模型 2 ...

  10. Spring MVC学习(8)—HandlerInterceptor处理器拦截器机制全解

    基于最新Spring 5.x,详细介绍了Spring MVC的HandlerInterceptor处理器拦截器机制,以及它的一系列拦截方法. 本次我们来学习Sring MVC的HandlerInter ...

最新文章

  1. Activity的LaunchMode
  2. [转]英语口语面试问答大全
  3. 前端学习笔记(五)-JavaScript语法基本概念
  4. Java进阶:AtomicReference详解
  5. layui动态添加input_layer.prompt添加多个输入框
  6. Windows消息传递机制详解
  7. ubuntu 在vm中如何上网及注意问题
  8. 羽毛球 vs. 软件开发
  9. 锐捷显示认证服务器不可用,win10系统下锐捷客户端认证失败的解决方法
  10. ERP系统和ERP软件的介绍
  11. 计算机安全排名,电脑安全卫士排行榜
  12. Vue中v-model和checkbook的使用
  13. 小学期云效能训练营-Day04
  14. 海洋经济发展具体内容
  15. 1000w+条中国大陆企业工商注册信息数据集
  16. 如何在 Mac 上卸载 Java
  17. 计算机cpu配置,怎么看cpu配置?查看电脑cpu等硬件配置的操作
  18. 举个栗子!Tableau 技巧(142):花瓣玫瑰图
  19. 快手java商业化_快手-商业化-日常实习-一面-凉经+吐槽
  20. OSCS-软件供应链安全威胁与业界解决方案

热门文章

  1. firefox无法显示验证码
  2. ASP.NET MVC Action Filters
  3. oracleasm 建立时出错
  4. Android Studio:64K问题com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
  5. Android JNI_OnLoad()函数
  6. (三)Docker四种网络模式
  7. RobotFramework系列(二):Robot 如何编写自定义关键字
  8. spring中bean的两种注入方式
  9. Django的外键创建
  10. datetime模块及time模块