mui,Spring的MVC结构,一世独尊

频道:天天彩票官网下载 日期: 浏览:282

第一章 Spring的MVC结构

6.1 Spring MVC概要

Spring的web结构是环绕DispatcherServlet来进行规划的。DispatcherServlet的作用是将恳求分发到不同的处理器。Spring的web结构包含可装备的处理器(handler)映射、视图(view)解析、本地化(local)解析、主题(theme)解析以及对上传文件解析。处理器是对Controller接口的完成,该接口只是界说了ModelAndView handleRequest(request, respomui,Spring的MVC结构,一世独尊nse)办法。你能够通过完成这个接口来生成自己的控制器(也能够称之为处理器),可是从Spring供给的一系列控制器承继会更省劲,比方AbstractController、AbstractCommandController和SimpleFormController。留意,你需求挑选正确的基类:假如你没有表单,你就不需求一个FormController。这是和Structs的一个首要差异。Spring的视图解析适当灵敏。一个控制器乃至能够直接向response输出一个视图(此刻控制器回来ModelAndView的值有必要是null)。在一般的状况下,一个ModelAndView实例包含一个视图姓名和一个类型为Map的model,一个model是一些以bean的姓名为key,以bean目标(能够是指令或form,也能够是其他的JavaBean)为value的名值对。对视图称号的解析处理也是高度可装备的,能够通过bean的姓名、特点文件或许自界说的ViewResolver完成来进行解析。实际上依据Map的model(也便是MVC中的M))是高度笼统的,适用于各种体现层技能。也便是说,任何体现层都能够直接和Spring集成,无论是JSP、Velocity仍是其它体现层技能。Map model能够被转换成适宜的格局,比方JSP request attribute或许Velocity template model。

Spring Web MVC结构供给了很多共同的功用,包含:

1) 明晰的人物区分:控制器(controller)、验证器(validator)、指令目标(command object)、表单目标(form object)、模型目标(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resolver)等等。 每一个人物都能够由一个专门的目标来完成。

2)强壮而直接的装备办法:将结构类和运用类都作为JavaB归纳色图ean装备,支撑在一个context中引证其他context的中JavaBean,例如,在web控制器中对事务目标和验证器(validator)的引证。

3) 可适配、非侵入的controller:你能够依据不同的运用场景,挑选适宜的控制器子类(simple型、command型、form型、wizard型、multi-action型或许自界说),而不是从单一控制器(比方Action/ActionForm)承继。爱情的滋味

4)可重用的事务代码:你能够运用现有的事务目标作为指令或表单目标,而不需求在相似ActionForm的子类中重复它们的界说。

5)可定制的绑定(binding) 和验证(validation):比方将类型不匹配作为运用track级的验证过错,这能够保存过错的值。再比方本地化的日期和数字绑定等等。在其他某些结构中,你只能运用字符串表单目标,需求手动解析它并转换到事务目标。

6) 可定制的handler mapping和view resolution:曾世杰Spring供给从最简略的的URL映射,到杂乱的、专用的定制战略。与某些MVC结构强制开发人员运用单一特定技能比较,Sprin蒲熠星刘一戈秀恩爱g显得愈加灵敏。灵敏。

7) 灵敏的model转上海元玥集团换: 在Springweb结构中,运用依据Map的名/值对来到达轻易地与各种视图技能的集成。

8) 可定制的本地化和主题(theme)解析:支撑在JSP中可挑选地运用Spring标签库、支撑JSTL、支撑Velocity(不石斛怎样吃需求额定的中间层)等等。

9)Spring Bean的生命周期能够被约束在当时的HTTP Request或许HTTP Session。精确的说,这并非Spring MVC结构自身特性,而应归属于Sping MVC运用的WebApplicationContext容器。

6.2 将恳求映射到控制器

和其它web结构相同,Spring的web结构是一个恳求驱动的web结构,其规划环绕一个中心的servlet进行,它能将恳求分发给控制器,并供给其它功用协助web运用开发。可是,Spring的DispatcherServlet所做的不只是是这些,它和Spring的IoC容器彻底集成在一起,然后答应你运用Spring的其它功用。

代码清单1

dispatcher

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

/WEB-INF/spring-config-mvc.xml

1

dispatcher

*.do

代码清单1中咱们界说了DispatcherServlet取名dispatcher而且将一切以.do结束的恳求都交由dispatcher处理,而且为他指定了名为spring-config-mvc.xml 的Spring装备文件。假如咱们没有指定装备文件的称号Spring会在web运用的WEB-INF文件夹下寻觅名为[servlet-name]-servlet.xml的装备文件如dispatcher-servlet.xml

代码清单2

helloworldController

class="com.tony.web.controller.HelloworldController"/>

import javax.servlet.http.HttpServletRequest;

igrowmport javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

import org.sprimui,Spring的MVC结构,一世独尊ngframework.web.servlet.mvc.Controller;

public class HelloworldController implements Controller {

@Overri红烧茄子的家常做法de

public ModelAndView handleRequest(HttpServletRequest request,

HttpS刷赞渠道ervletResponse response) throws Exception {

//向HttpServletRequest中参加一个名为message值为一亩HelloWorld的目标

request.setAttribute("message", "HelloWorld");

//回来一个ModelAndView目标通过viewResolvmui,Spring的MVC结构,一世独尊er的处理

//页面跳转至/WEB-INF/jsp/helloworld.jsp

retumui,Spring的MVC结构,一世独尊rn new ModelAndView("helloworld");

}

}

代码清单1中装备 InternalResourceViewResolver,它是 jsp 烘托模板的丁汉白处理器。假如你通知 InternalResourceViewResolver 处理一个名为 helloworld的模板时,它会烘托 黄沐尔/WEB-INF/jsp/helloworld.jsp 文件。把 jsp 文件放到/WEB-INF/jsp/ 目录下是被鼓舞的,这样能够避免用户不通过 Controller 直接拜访 jsp 文件然后犯错720p。装备 SimpleUrlHandlerMapping, 在上面的装备文件中,/ helloworld.do 的恳求将被 helloworldController处理。 "/ helloworld.do"和"helloworldController" 是变量,你能够更改。可是你留意到了吗, hello.do 以 .do 作为后缀名。假如这儿(本文的条件下)你不运用.do 作为后缀名, 就没有程序来处理这个恳求了。 由于 DispatcherServlet 将收到的恳求转交给 SimpleUrlHanmui,Spring的MVC结构,一世独尊dlerMapping, Dis办结婚证需求什么证件patcherServlet 收不到的恳求,SimpleUrlHandlerMapping 当然也收不到了。咱们还界说了一个名为Hello宫颈癌能治好吗worldController的控制器来处理/helloworld.do的恳求。大多数Web运用都会遇到需求填写表单的页面,当表单提交成功后,表单的数据被传送到Web服务器中处理,遇到这种状况Spring为咱们供给了一个简略的类SimpleFormController。

代码清单2

import javax.servlet.http.HttpServlemui,Spring的MVC结构,一世独尊tRequest;

import javax.servlet.http.Httpmui,Spring的MVC结构,一世独尊ServletResponse;

import org.springframework.web.servlet.mvc.SimpleFormController;

public class HelloworldController bondikextends SimpleFormController{

public HelloworldController(){

//设置表单目标类型

this.setComma熊猫之萝莉巨星ndClass(User.class);

}

@Override

protected void doSubmitAction(Object command) throws Exception {

User user = (User)command;

//将User目标存入数据库

}

}

代码清单2中咱们将HelloworldController类承继SimpleFormController而且完成了doSubmitAction办法,在结构办法中咱们设置了表单目标的类型,当表单提交后Spring会主动调用doSubmitAction办法将表单目标安装好作为入参传递进很很鲁来,咱们将其类型转后就能够对其操作了。

热门
最新
推荐
标签

  到本陈述期末,

句子迷,济川药业2019年一季度净利5.10亿元 董事长曹龙祥持股4684万股,轻小说文库