1.

SpringMVC框架认识

Spring MVC是一个基于MVC模式的Web框架,SpringMVC作为Spring中的一个模块,它与Spring能够无缝集成,主要用于解决企业Web开发中常见的问题:如参数接收、文件上传、表单验证、国际化等等。

2.

SpringMVC HelloWorld模式使用

2.1.

导入Spring与SpringMVC的依赖jar包

配置Spring的环境

准备Spring的环境——SpringMVC以Spring为核心,而Spring最核心的模块是DI/IOC容器,也就是SpringMVC的核心类和控制器要交给Spring管理。所以使用SpringMVC必须先保证Spring容器初始化,也就是让项目拥有Spring的运行环境。

基于Spring的初始化环境需要导入Spring的核心包与beans包(使用spring-framework-4.1.2.RELEASE),jar包目录位置在spring-framework-4.1.2.RELEASElibs文件中:

需要导入:

com.springsource.org.apache.commons.logging-1.1.1.jar

spring-beans-4.1.2.RELEASE.jar

spring-context-4.1.2.RELEASE.jar

spring-core-4.1.2.RELEASE.jar

spring-expression-4.1.2.RELEASE.jar

配置applicationContext.xml,具体配置参照如下:

http://www.springframework.org/schema/beans/spring-beans.xsd">

创建Junit4测试类查看是否获取到配置的Bean对象:

importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;public classSpringEnvTest {

@org.junit.Testpublic voidGetBeanTest(){//读取资源文件applicationContext.xml//拿到ApplicationContext核心对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

System.out.println("-------------实例化分割线--------------------");//获取Bean同样具有三种方式:这里不再一一列出

Object myDate = applicationContext.getBean("myDate");

System.out.println(myDate);

}

}

②配置SpringMVC的环境

SpringMVC作为Spring中的一个模块存在,无需单独下载,Spring的lib文件中就包含了SpringMVC的jar包。

jar包目录位置也是在spring-framework-4.1.2.RELEASElibs中,需要导入的jar包:

spring-web-4.1.2.RELEASE.jar

spring-webmvc-4.1.2.RELEASE.jar

2.2.在web.xml中配置核心控制器DispatcherServlet

在SpringMvc框架中使用的是DispatcherServlet作为核心控制器,DispatcherServlet核心控制器会拦截匹配的请求,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。

所以,我们要在web.xml中配置SpringMVC的核心控制器DispatcherServlet,具体配置如下:

web.xml配置:

dispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:applicationContext-mvc.xml

1

dispatcherServlet

/

2.2.配置SpringMVC的配置文件

SpringMVC的配置文件和Spring的配置差不多,在resources目录中新建一个applicationContext-mvc.xml文件即可,需要配置映射Controller类的映射路径及class:

http://www.springframework.org/schema/beans/spring-beans.xsd">

2.3.准备Controller控制器并配置

这里需要创建一个HelloController类来实现Controller接口,实现handleRequest()方法:

importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class HelloController implementsController {/***

* 控制层业务处理:①参数的接收;②调用Service层的业务逻辑;③返回一个视图

*@paramequest

*@paramresponse

*@return*@throwsException*/@Overridepublic ModelAndView handleRequest(HttpServletRequest equest, HttpServletResponse response) throwsException {

System.out.println("进入Springmvc Controller视图模型控制器......");

String view= "/WEB-INF/views/hello.jsp"; //视图

String modelName = "msg"; //模型名字

Object modelObject = "helloObj"; //模型对象

ModelAndView modelAndView = newModelAndView(view, modelName, modelObject);returnmodelAndView;

}

}

2.4.根据applicationContext-mvc.xml访问映射路径

运行Tomcat并启动web项目,访问配置的url路径,即可访问到对应的/hello映射的/WEB-INF/views/hello.jsp文件。

3.   SpringMVC入门Demo的执行流程分析

从上面的使用配置过程我们可以分析得出SpringMVC的执行流程:

首先,我们通过浏览器客户端发起请求(localhost:8080/hello),这个请求会被web.xml中配置的核心控制器DispatcherServlet所拦截,拦截到的请求地址会交由配置在classpath下的applicationContext-mvc.xml SpringMVC的配置文件中去找到对应的bean的请求url,并且找到对应的Bean class,通过Bean class配置再找到对应的Controller,通过Controller中的handleRequest()方法返回的对应的ModelAndView视图,返回对应的hello.jsp页面,通过页面hello.jsp去呈现页面上的内容。

4.   静态资源文件访问放行

通过上面的配置,我们如果在Webapp路径下存在静态资源(.html与css/js)文件时,我们通过浏览器直接去访问是访问不了的,会出现404 not find问题。

原因就在于我们在web.xml中默认配置了拦截所有的请求,我们需要在SpringMVC的配置文件applicationContext-mvc.xml中去开启对静态资源的访问:

applicationContext-mvc.xml具体配置如下:

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd">

配置之后,通过浏览器页面就能访问到webapp路径下的静态资源文件了。

java mvc 菜鸟_【java框架】SpringMVC(1)--SpringMVC入门相关推荐

  1. java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)

    作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...

  2. java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  3. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩

    import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...

  4. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

    笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...

  5. java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  6. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  7. java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)

    [Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...

  8. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

  9. java mvc学习_史上最全的SpringMVC学习笔记

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 springmvc o ...

最新文章

  1. 基于android的天气预报的设计与实现
  2. SQL Server 2008 的CDC功能
  3. Linux第十一周作业
  4. python画树叶-使用Python turtle画分形树叶图
  5. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第7节 内部类_14_匿名内部类的注意事项...
  6. 【opencv】3.在一个opencv窗口中显示多个视频界面、画箭头、画掉头箭头
  7. .net standard 2.0与 .net4.0之间的关系?
  8. 外点惩处函数法·约束优化问题
  9. 现在很多公司都在辞退年龄超过35岁以上的员工,原因到底为什么?
  10. Android学习(十三) BroadcastReceiver组件(广播)
  11. 【图论】用链式前向星(邻接表)存有向图(图文代码逐句分析)
  12. c语言约瑟夫环分析报告,约瑟夫环C语言实现验证报告.doc
  13. 视频直播技术大全、直播架构、技术原理和实现思路方案整理
  14. 谷歌浏览器---日常使用设置
  15. 判断布尔值的一些规则
  16. 利用H5SVG实现线性动画效果
  17. matlab绘制收益率曲线并计算风险收益率VaR(Value At Risk)
  18. 编写一个 SQL 查询来实现分数排名
  19. 已知两角及其夹边,解三角形
  20. 新机框ATCA配置过程(视图部分)

热门文章

  1. view类不响应自定义消息_安卓平台如何给控件添加自定义操作?
  2. 【转】Azure应用部署方式对比
  3. 【转】WPF PRISM开发入门一( 初始化PRISM WPF程序)
  4. Sharepoint学习笔记—Ribbon系列
  5. 【转】c# 协变与抗变
  6. 一步步编写操作系统 17 显存,显卡,显示器 上
  7. 【JS 逆向百例】元素ID定位加密位置,某麻将数据逆向
  8. REVERSE-PRACTICE-BUUCTF-27
  9. 永远年轻,永远热泪盈眶----致所有奋斗的ACMer
  10. 【nyoj 270】数的分解(统计因子模板)