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

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

a4aea900c268014ed20cf7132b675e82.png

配置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

26c249f136378522c07d4320de6cbb8b.png

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文件。

49900f7a3a037c1a3c3e58de5a9ab975.png

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问题。

8fc4de999237baedeff4fb00781a4717.png

原因就在于我们在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路径下的静态资源文件了。

8c7e5a53fa4a7a8aa86b98ff1b5d1786.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php设置cookie 域名,php如何设置cookie对整个域名有效?

php设置cookie对整个域名有效的方法:由setcookie函数让cookie对整个域名有效,代码为【setcookie("cookie_test", this is cookie test, time()3600,"/",“】。php设置cookie对整个域名有效的方法:默认情况下的cookie仅对…

php 配置 gd2,配置PHP对gd库的支持

搭建zabbix的时候遇到有对PHP的需求检测,发现没有对gd的支持,记录下。。。GD库是php处理图形的扩展库,它提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。1、安装zl…

我的世界一个程序导致JAVA,Java地位无可动摇的12个原因

如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上或许会成为下一个COBOL。有关JAVA的技术卖出多少本书已经是一个很久远的记忆了。现处中年…

php 自定义格式化,PHP自定义函数格式化json数据示例

本文实例讲述了PHP自定义函数格式化json数据的方法。分享给大家供大家参考,具体如下:/*** Formats a JSON string for pretty printing** param string $json The JSON to make pretty* param bool $html Insert nonbreaking spaces and s for tabs and …

php 单选框选中事件,html中的checkbox和radio事件选择用法详解

radio注册了click事件以后,神奇的是用键盘上的上下左右选择时,居然会触发鼠标事件,滚轮也会触发,这种神奇的事情在mousedown下面是不会发生的。(webkit不能使用上下左右选择)checkbox注册click事件后,奇迹再次上演&…

java水文模型,分布式水文模型.ppt

分布式水文模型ppt课件第九章分布式水文模拟技术 第九章 分布式水文模拟技术 9.1 分布式水文模型的发展 9.1.1 分布式水文模型的研究进展 9.1.1.2 几点讨论 9.1.2 分布式水文模型的发展 9.2 基于DEM的流域分布式水文模型 9.2.1 流域水文过程及其数学模拟 流域水循环过程示意图 …

php 实现的n,php 实现数据N等分。

本例给出实现3等分的代码和运行结果。在保证&#xff0c;每一个部分都不会宕机的情况下&#xff0c;这种算法是最简单的。否则就用一致性哈希算法。公式原理&#xff1a;求余算法: hash(object)%Nfor($i 1;$i<100;$i){$result crc32($i) % 3;echo "i:".$i . &qu…

ccf json解析 java,【求助】e4a json解析 求助大佬帮忙老看下怎么取?

[PHP] 纯文本查看 复制代码[{"title":"\u4e1c\u98ce\u7834","url":"\/tv\/QrRobH7kTGTqNX.html","star":"\u4e3b\u6f14\uff1a\u5f20\u7b11\u541b \u5f20\u94ce \u725b\u4e3d\u71d5 \u5218\u5c0f\u950b \u68a6\u6960&qu…

java 场景处理,将黄瓜场景示例作为一个场景处理

我遇到了Cucumber的问题 - 现在我正在进行移动自动化&#xff0c;并且我有使用场景轮廓的功能 - 我在场景中有一些变量&#xff1a;场景大纲&#xff1a;菜单项Given the user is on the hamburger menuAnd the language is Then menu item is Examples:| menu item | language…

mysql 5.5.23 winx64,win10下mysql 5.7.23 winx64安装配置方法图文教程

本文记录了mysql 5.7.23 winx64安装教程&#xff0c;具体内容如下Step1选择手动下载版本解压到自己指定的路径上图中的my.ini及data文件夹在压缩包里是没有的&#xff0c;后面需要自己添加my.ini如下&#xff0c;直接copy~然后在目录下创建一个data文件夹Step2设置环境变量电脑…

php if !=,php If else 用法

PHP的&#xff0c;如果声明是非常类似于其他编程语言使用if语句&#xff0c;但对于那些谁不熟悉它&#xff0c;图片如下&#xff1a;想想你的决定作出之前&#xff0c;你去睡觉。如果你有这样做的第二天&#xff0c;说去上班&#xff0c;上学&#xff0c;或任用&#xff0c;那么…

matlab生成均匀部分散点图,应用halton序列生成均匀散点图

前言一门课的作业要用RBF-DQ方法计算流场。简单来讲就是要在无网格的条件下用高精度格式实现流场的仿真计算。生成散点图时&#xff0c;用蒙特卡洛的方法得到的散点图分布不是很均匀&#xff0c;于是想到一种叫做halton的序列。本篇将运用halton序列生成均匀的散点图。halton序…

php分页页数过多隐藏,织梦DEDE中内容页分页数目太多时隐藏方法

在dede程序的文章或图集模型&#xff0c;内容页分页过多&#xff0c;假如分页80页&#xff0c;那么dede默认的内容分页标签{dede:pagebreak/}会把所有的分页都显示出来&#xff0c;这样会撑破网页模板&#xff0c;即使使用css控制可以解决这个撑破模板问题&#xff0c;用overfl…

nginx php 跨域访问权限,nginx + php 实现跨域请求填坑笔记

最近自己构建了一个轻量级的 MVC 框架&#xff0c;现在将该MVC用于生产环境的项目中&#xff0c;目前因为项目中有跨域的请求&#xff0c;所以需要做一些CORS授权&#xff0c;但在实际使用出现了一些问题&#xff0c;目前已解决&#xff0c;故做下记录。服务器&#xff1a;cent…

python 内存溢出能捕获吗,Python——写自己的异常(形成强大的捕捉和处理能力)...

"""1、编写自己的异常时&#xff0c;通常是继承Exception2、如果继承的是BaseException&#xff0c;那么就不会被通用的except Exception捕捉到3、自己定义的异常Python不会自动触发&#xff0c;需要自己触发&#xff0c;用raise进行触发4、python只会自动触发它…

解决动态规划问题4步曲

概述 &#xff08;确定状态&#xff09;确定问题状态 提炼最后一步子问题转化 &#xff08;求得方程&#xff09;转移方程&#xff0c;把问题方程化&#xff08;设初置界&#xff09;按照实际逻辑设置初始条件和边界情况&#xff08;确序再解&#xff09;确定计算顺序并求解 …

php ajax队列,AJAX请求队列实现

这篇文章主要为大家详细介绍了AJAX请求队列的实现代码,具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下AJAX在使用的过程中会遇到一个问题&#xff0c;当用户短时间内执行了多个异步请求的时候&#xff0c;如果前一个请求没完成&#xff0c;将会被取消执行最新的一…

php Spreadsheet 导出,PhpSpreadsheet 导出Excel

/*** Excel 助手* sudo composer require phpoffice/phpspreadsheet*/namespace CommonUtil;use PhpOfficePhpSpreadsheetSpreadsheet;use PhpOfficePhpSpreadsheetWriterXlsx;use PhpOfficePhpSpreadsheetStyleAlignment;use PhpOfficePhpSpreadsheetStyleColor;class ExcelUt…

php 不同时区时间转换,在PHP中将DateTime字符串转换为不同的时区

好吧,我有以下代码$from "Asia/Manila";$to "UTC";$org_time new DateTime("2012-05-15 10:50:00");$org_time $org_time->format("Y-m-d H:i:s");$conv_time NULL;$userTimezone new DateTimeZone($from);$gmtTimezone new…

php iis ajax 无效,IIS7中Ajax.AjaxMethod无效的原因及解决方法

最近做用Ajax.AjaxMethod方法的时候&#xff0c;在asp.net的服务器下一切正常&#xff0c;用iis的时候&#xff0c;js中总是cs类找不到&#xff0c;我就郁闷了&#xff0c;折腾了大半天&#xff0c;终于找到错误原因了。因为我发布网站用的是iis7&#xff0c;所以在web.config位…