Spring_MVC+ Flex
- 格式:doc
- 大小:88.00 KB
- 文档页数:10
spring mvc 框架介绍
Spring MVC 简介
Spring MVC 框架是有一个MVC 框架,通过实现Model-View- Controller 模式来很好地将数据、业务与展现进行分离。
从这样一个角度来
说,Spring MVC 和Struts、Struts2 非常类似。
Spring MVC 的设计是围绕DispatcherServlet 展开的,DispatcherServlet 负责将请求派发到特定的handler。
通过可配置的handler mappings、view resoluTIon、locale 以及theme resoluTIon 来处理请求并且转到对应的视图。
Spring MVC 请求处理的整体流
程如图:
Spring3.x 中定义一个控制器类,必须以@Controller 注解标记。
当控
制器类接收到一个请求时,它会在自己内部寻找一个合适的处理方法来处理
请求。
使用@RequestMapping 注解将方法映射到一些请求上,以便让该方法
处理那些请求。
这种方法就像一般的类中的方法,方法名参数列表和返回值
并不像Struts2 之类的框架有很强的限制。
方法参数列表具体以及返回值具体
都有哪些,这里先不细说。
这篇博客的目的在于简单介绍如何快速上手使用Spring MVC 框架。
简述spring mvc的执行流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!Spring MVC执行流程详解Spring MVC是Spring框架的一个核心模块,它为构建基于Java的Web应用程序提供了一个模型-视图-控制器(MVC)架构。
spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。
Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。
并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。
org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。
后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。
SpringMVC框架详解随着Web应用程序变得越来越复杂,使用适当的框架变得越来越重要。
SpringMVC是一个流行的Java Web框架,它提供了许多功能,使开发Web应用程序更容易和更快速。
本文将对SpringMVC框架进行详细介绍,包括其架构、工作流程、控制器、视图和模型等方面的内容。
1. SpringMVC架构SpringMVC框架基于Model-View-Controller(MVC)架构。
在这种架构中,应用程序被分为三个组件,分别是:1. Model:负责管理数据的处理和存储。
2. View:负责呈现数据给用户的界面。
3. Controller:负责接收用户的请求和处理数据,控制应用程序的行为。
SpringMVC通过DispatcherServlet实现了这种MVC架构。
DispatcherServlet是一个前端控制器(Front Controller),它接收所有的客户端请求并将其分配给相应的处理程序。
2. SpringMVC的工作流程SpringMVC框架具有以下的工作流程:1. 用户发送请求到DispatcherServlet。
2. DispatcherServlet收到请求后,根据配置文件中的URL映射找到相应的Controller。
3. Controller接收请求,并将数据传递给Service层。
4. Service层对数据进行处理,并将处理结果返回给Controller。
5. Controller根据视图解析器的配置选择相应的视图,将处理结果传递给视图并渲染。
6. 视图呈现处理结果,并将其返回给客户端。
3. SpringMVC的控制器控制器是SpringMVC架构中最重要的组件之一。
它负责接收客户端请求,并根据请求的类型执行相应的逻辑。
SpringMVC提供了以下几种类型的控制器:1. @Controller:该注解标注的类被SpringMVC视为控制器。
2. @RestController:可以理解为@Controller和@ResponseBody的组合注解。
什么是SpringMVC?⼀、什么是SpringMVC?1.SpringMVC 是⼀种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 中。
2.SpringMVC = Spring +MVCspring mvc类似于struts的⼀个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为⽀撑才能跑起来.spring是⼀个⼀站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(springdata)的全套解决⽅案;spring的两⼤核⼼IOC(控制反转)和AOP(⾯向切⾯编程)更是给我们的程序解耦和代码的简介提供了⽀持。
Spring框架图:从Spring的结构图可以看出,springMVC位于spring web端的⼀个框架,是⼀种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使⽤了MVC架构模式的思想,将web层进⾏职责解耦。
附:基于请求驱动指的就是使⽤请求-响应模型。
从名字上就可以窥探出,Spring>SpringMVC,那么事实上,spring和SpringMVC是⼀种⽗⼦关系。
SpringMVC是spring扩展出的⼀个应⽤于web端的框架。
在这⾥需要注意的⼀点,就是到底什么是⽗⼦容器关系:spring主要的作⽤是黏合其他模块组件,进⾏统⼀管理,springmvc则主要是负责web端。
那么,我们都知道,我们在应⽤spring的时候,可以使⽤注⼊。
这个时候,如果我们的web端是⽤的SpringMVC,这个时候,controller理论上是通过SpringMVC去注⼊,但是,使⽤spring注⼊,同样是可⾏的。
同理,service等层,使⽤SpringMVC配置的统⼀扫描装配也是可以的。
基于Flex和Spring的应用开发架构研究摘要:传统的java ee应用程序使用采用某种mvc框架作为前端用户界面,随着技术的发展,使用者对用户体验方面有了更高的要求,flex作为富客户端技术在web技术中的应用,在一定程度上提升了用户交互性和用户体验度,为使用者提供了更酷的界面,更短的响应时间及接近于桌面程序的体验。
本文主要讨论如何将flex 技术集成至一个现有的基于spring的java ee应用程序中,阐述了flex技术在java ee应用程序中的实现解决方案。
关键词:java ee;flex;web应用程序;开发框架中图分类号:tp311.52 文献标识码:a 文章编号:1007-9599 (2012) 17-0000-021 引言flex 是一个高效、免费的开源框架,可用于构建具有表现力的web 应用程序,这些应用程序利用 adobe flash player和 adobe air,运行时跨浏览器、桌面和操作系统实现一致的部署。
java ee 是基于组件模型的、分层的、可用于分布式环境下的开发与部署企业级应用程序的一系列服务和规范的集合。
本文结合已有的基于spring的java ee框架应用程序的基础上,对flex开发环境进行配置,使用flex进行程序开发。
2 java ee应用程序加入flex支持现有一个现有的java ee应用程序,程序结构如图1所示此web应用程序是典型的java ee应用的程序。
传统程序交互界面一般采用html的形式,用户在进行操作时,每次点击相应该的链接都需要重新的刷新界面。
如采用flex作为与用户交互的界面,将会给用户带来更好的体验。
本文以系统中权限管理模块中的“资源查询”为例,对现有的框架整合flex应用进行阐述。
2.1 ssh框架概述如图1中所示,按照分层架构的形式对资源进行划分, action 包中存放控制器类,service中存放业务接口类,在impl中存放业务实现类,utils包中存放实用程序类,在vo包中存放实体类;其中,applicationcontext-dao.xml为spring的配置文件,struts.xml为struts2的配置文件。
springmvc流程通俗理解1. SpringMVC是一个基于Java的Web框架,它以模块化的方式提供了Web开发所需的基本功能。
SpringMVC is a Java-based web framework that provides the basic functionality required for web development in a modularized way.2.它提供了基于MVC模式的体系结构,通过将模型、视图和控制器分离,使得开发和维护变得更加容易。
It provides an architecture based on the MVC pattern, which separates the model, view, and controller, making development and maintenance easier.3.在SpringMVC中,控制器负责处理请求,并决定如何响应,它使用注解或配置来映射URL到相应的方法上。
In SpringMVC, the controller is responsible for handling requests and deciding how to respond, it uses annotations or configuration to map URLs to corresponding methods.4.视图负责呈现数据给用户,并与用户进行交互,通常是通过JSP、Thymeleaf等模板引擎来实现。
The view is responsible for presenting data to the user and interacting with the user, usually implemented through template engines such as JSP, Thymeleaf, etc.5.模型用于封装业务逻辑和数据,它与数据库交互并存储应用程序的状态。
SpringMVC基础及应用springMVC概述和基础配置SpringMVC和Struts一样是一个MVC框架,和Spring无缝连接。
和Struts2有点相似。
Spring MVC属于SpringFrameWork的后续产品,Spring 框架提供了构建Web 应用程序的全功能MVC 模块。
使用Spring 可插入的MVC 架构,可以选择是使用内置的Spring Web 框架还可以是Struts 这样的Web 框架。
1.第一个示例web.xml,spring-mvc入口DispatcherServlet,在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- 配置文件路径 --><param-name>contextConfigLocation</param-name><!-- *表示目录下所有文件 --><param-value>classpath:config*/spring-servlet.xml</param-value><!-- <param-value>classpath:config/spring-servlet.xml</param-value> --> </init-param><!—何时启动,1:容器启动时初始化 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>controllerpublic class HelloWorldController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {String hello = "lsh hello 提高班";Map<String,Object> map = new HashMap<String,Object>();map.put("map1", "提高班1");map.put("map2", "提高班2");map.put("map3", "提高班3");//可以返回任何类型//传递string类型// return new ModelAndView("/welcome","result","abc看看");//传递map类型return new ModelAndView("/welcome","map",map);}}<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:p="/schema/p"xmlns:mvc="/schema/mvc"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.0.xsd/schema/context/schema/context/spring-context.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd"> <bean name="/test1/helloworld"class="com.tgb.web.controller.HelloWorldController"/><!-- 视图分解解析器 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"value="/"></property><property name="suffix"value=".jsp"></property></bean></beans><body><h>传递数据:</h>${result }<div><c:forEach items="${map }" var="m">${m.key } -----> ${m.value }</c:forEach></div></body>2. 加载非默认路径配置文件,红色部分<servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param><param-name>contextConfigLocation</param-name><!-- 配置文件的名称也修改成非默认方式了 --><param-value>classpath*:config/spring-servlet.xml</param-value> </init-param><load-on-startup>1</load-on-startup></servlet>2.1. ModelAndView:model是数据,view是视图2.2 jsp调试,<% java代码,可以设置断点 %>2.2.1 spring中配置bean的id和name区别本质上没有区别,id比较标准,不能存在重复,name取名比较随意可以重复,如果没有设置name属性那么,取实例用【包名.类名】:getBean("test.Abc")2.2. *多方法请求,现实业务一个类肯定会有多个方法来应对请求方法1:继承,耦合性大,不建议<bean name="/test1/multi"class="com.tgb.web.controller.MultiController"> <property name="methodNameResolver"><ref bean="paramMethodResolver"/></property></bean><bean id="paramMethodResolver"class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResol ver"><!-- 请求的方法名参数http://localhost:8080/springMVC01/multi?action=add --> <property name="paramName"value="action"></property></bean>public class MultiController extends MultiActionController {//spring会根据请求解析成: add(HttpServletRequest,HttpServletResponse)public ModelAndView add(HttpServletRequest request,HttpServletResponse response){System.out.println("----add----");return new ModelAndView("/multi","method","add");}public ModelAndView update(HttpServletRequest request,HttpServletResponse response){System.out.println("----update----");return new ModelAndView("/multi","method","update");}}http://localhost:8080/springMVC2/test1/multi?abc=add方法2:委托对象,建议这种方式MultiActionController有两种使用方式:一是创建MultiActionController的子类,并指定将被MethodNameResolver解析的方法(这种情况下不需要这个delegate参数);二是定义一个委托对象,MethodNameResolver解析出目标方法后将调用该对象的相应方法。
Flex整合Spring
一个完好的flex与Java工程,加入spring相关的包后,先在web.xml中启动spring,即在web.xml 文件中加入一下代码:
如果我们想让flex前端调用的Java类是通过flex自身的配置文件获得的,那么我们只需要在remoting-config.xml中配置好需要的Java类即可,具体添加如下类似代码:
启动了spring后,如果我们想让容器中的Java类的实例通过spring来管理,则需要先自己写一个类冲当factory,使flex调用java类的时候从spring配置好的容器中去取,当然仍需要给出相关的配置具体步骤如下:
手写Factory类
该类实现FlexFactory接口,并按照图片中的方式覆写其中的两个方法,接着在services-config.xml 中加入以下代码(最好加在末尾):
以上配好了好,我们就可以按常规的方式在spring中配置我们需要的Java类了,如:
注意我们到此为止,只是实现了让Java类的实例的管理归结于spring,而在flex前端调用Java的类,只能识别在remoting-config.xml中进行配置的类,因此我们仍需要在remoting-config.xml进行配置,只不过此时配置的类,最终指向的是spring中类,即在remoting-config.xml中加入如下代码:
到此为止,个完整的flex和spring的整合已经完成,很有成就感吧···。
一、环境:MyEclipse7.0Felx Builder3.0JDK1.6Flex sdk3.2Tomcat6.0二、创建JAVA We b在MyEclipse中创建Web Project:TestProject将相关JAR包拷贝到WEB-INF/lib下,并引入到项目的Build Path中三、创建FLEX工程在Flex Builder中创建Flex Project :TestProject四、配置web.xml配置JAVA Web工程中WebRoot/WEB-INF/web.xml<!--添加模式文件--><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><!--指定欢迎页--><welcome-file-list><welcome-file>index.jsp</welcome-file>1.</welcome-file-list>2.<!--指定初始化文件-->3.<context-param>4.<param-name>contextConfigLocation</param-name>5.<param-value>6.classpath:ApplicationContext.xml, classpath:Application-Flex.xml7.</param-value>8.</context-param>9.<!--添加监听器-->10.<listener>11.<listener-class>.springframework.web.context.ContextLoaderListener13.</listener-class>14.</listener>15.<listener>16.<listener-class>.springframework.security.ui.session.HttpSessionEventPublisher18.</listener-class>19.</listener>20.<!--添加servlet配置-->21.<servlet>22.<servlet-name>flex</servlet-name>23.<servlet-class>org.springframework.web.servlet.DispatcherServlet24.</servlet-class>25.<load-on-startup>1</load-on-startup>26.</servlet>27.<servlet-mapping>28.<servlet-name>flex</servlet-name>29.<url-pattern>/messagebroker/*</url-pattern>30.</servlet-mapping>31.<!--添加session配置-->32.<session-config>33.<session-timeout>30</session-timeout>34.</session-config>35.<!--添加模式文件-->36.<web-app version="2.4"37.xmlns="/xml/ns/j2ee"38.xmlns:xsi="/2001/XMLSchema-instance"39.xsi:schemaLocation="/xml/ns/j2ee40./xml/ns/j2ee/web-app_2_4.xsd">41.<!--指定欢迎页-->42.<welcome-file-list>43.<welcome-file>index.jsp</welcome-file>44.</welcome-file-list>45.<!--指定初始化文件-->46.<context-param>47.<param-name>contextConfigLocation</param-name>48.<param-value>49.classpath:ApplicationContext.xml, classpath:Application-Flex.xml50.</param-value>51.</context-param>52.<!--添加监听器-->53.<listener>54.<listener-class>.springframework.web.context.ContextLoaderListener56.</listener-class>57.</listener>58.<listener>59.<listener-class>.springframework.security.ui.session.HttpSessionEventPublisher61.</listener-class>62.</listener>63.<!--添加servlet配置-->64.<servlet>65.<servlet-name>flex</servlet-name>66.<servlet-class>org.springframework.web.servlet.DispatcherServlet67.</servlet-class>68.<load-on-startup>1</load-on-startup>69.</servlet>70.<servlet-mapping>71.<servlet-name>flex</servlet-name>72.<url-pattern>/messagebroker/*</url-pattern>73.</servlet-mapping>74.<!--添加session配置-->75.<session-config>76.<session-timeout>30</session-timeout>77.</session-config>五、创建ApplicationContext.xml、Application-Flex.xml<!-- [if gte mso 10]> 在web.xml里配置了初始化配置文件(ApplicationContext.xml、Application-Flex.xml),因此需要在src目录下创建相应的xml文件(文件名需要与web.xml中设置的配置文件名相同,否则加载时将会报错)。
六、配置ApplicationContext.xml1.<beans2. xmlns="/schema/beans"3. xmlns:xsi="/2001/XMLSchema-instance"4. xmlns:flex="/schema/flex"5. xmlns:aop="/schema/aop"6. xsi:schemaLocation="/schema/beans7. /schema/beans/spring-beans-2.0.xsd8. /schema/aop9. /schema/aop/spring-aop-2.0.xsd10. /schema/flex11. /schema/flex/spring-flex-1.0.xsd">12. <aop:aspectj-autoproxy />13. <bean id="timingAspect" class="org.perf4j.log4j.aop.TimingAspect"/>14.</beans>七、Spring MVC配置使用Spring MVC框架,将使用到两个配置文件ApplicationContext.xml、[servlet-name]-servlet.xmlWEB-INF/[servlet-name]-servlet.xml, 它被用于配置Web层、视图解析器、控制器、校验器以及其他所有MVC框架中必需的Bean。
[servlet-name]指的是在web.xml部署描述符中定义的Spring dispatcher servlet的名称。
根据在web.xml中定义的名称,我们的配置文件应该为flex-servlet.xml。
在WEB-INF下创建flex-servlet.xml。
配置flex-servlet.xml1.<?xml version="1.0" encoding="UTF-8"?>2.<beans xmlns="/schema/beans" xmlns:flex="/schema/flex"3.xmlns:xsi="/2001/XMLSchema-instance"4.xsi:schemaLocation="5./schema/beans6./schema/beans/spring-beans-2.5.xsd7./schema/flex8./schema/flex/spring-flex-1.0.xsd">9.</beans>八、Spring+BlazeDS配置BlazeDS是一种服务端使用java进行web通信的技术,其可以使开发人员方便地连接到后端分布式数据,推送数据到Flex或AIR应用,为RIA(rich Internet application)提供更好的体验。