为什么在表现层需要配springmvc 跨域配置 mvc

基于SpringMVC的充值网站代理商平台的设计与实现--《哈尔滨商业大学》2013年硕士论文
基于SpringMVC的充值网站代理商平台的设计与实现
【摘要】:充值商务网站打破了传统的缴费方式,使得仅需一台电脑即可通过互联网实现不限制地域的话费缴纳业务。充值商务网站是运营商,代理商和实体运营商户的基石。
代理商平台是为加盟至充值商务平台网站的地区级代理商所构建。具有配置各地区级代理商系统信息、制定充值商务网站统一话费充值产品、整合优质话费资源、处理话费业务及管理旗下实体商户等功能。代理商平台为充值商务网站的开发实施提供一个统一的、高效的、健壮的、有序化管理支撑。
论文通过对代理商平台进行清晰的角色划分,采用具有灵活配置功能的SpringMVC框架,结合半自动的iBATIS框架技术实现了松耦合轻量级J2EE开发应用平台。iBATIS框架提供的ORM机制可以设计和实现良好的应用程序持久化层,有效解决数据访问与业务逻辑混杂、程序复用程度低等问题。Spring MVC框架为控制器、模型和视图提供了清晰的分界,并且容易与Spring的IOC、AOP及其他特性糅合在一起,可以实现系统安全、稳定并且具有良好健壮性的web应用。集成SpringMVC、iBATIS框架技术实现了移植性高、可靠性强以及容易扩展的应用系统。达到降低系统的开发工作量、提高开发效率、系统复用率及软件质量的目的。
论文在对充值商务网站的代理商平台进行需求分析的基础上,应用面向对象技术及UML建模技术,设计代理商应用平台并实现了平台的主要功能。此外,概述介绍构建代理商平台所应用的表现层框架SpringMVC、业务层框架Spring、持久层框架iBATIS以及其他项目相关理论和技术。
最后对开发的基于SpringMVC、iBATIS框架技术的代理商平台进行了测试,对系统的各个功能模块实现的功能进行了验证,表明开发系统满足了设计要求。
【关键词】:
【学位授予单位】:哈尔滨商业大学【学位级别】:硕士【学位授予年份】:2013【分类号】:TP311.52【目录】:
摘要5-6Abstract6-91 绪论9-14 1.1 课题来源及背景9
1.1.1 课题来源9
1.1.2 课题背景9 1.2 项目介绍9-11 1.3 课题内容概述11-12 1.4 论文工作与章节安排12-142 系统核心技术及框架介绍14-20 2.1 B/S架构14 2.2 MVC模式14-15 2.3 Spring框架15-17 2.4 iBATIS框架17-18 2.5 其他相关技术介绍18-19
2.5.1 JSP技术介绍18
2.5.2 jQuery技术介绍18
2.5.3 Log4j技术介绍18
2.5.4 Oracle 11g数据库介绍18-19 2.6 本章小结19-203 代理商平台需求分析20-31 3.1 总体需求分析20 3.2 代理商平台系统功能分析20-29
3.2.1 系统配置功能分析21-22
3.2.2 权限策略功能分析22-24
3.2.3 业务管理功能分析24-25
3.2.4 资金管理功能分析25-27
3.2.5 商户管理功能分析27-28
3.2.6 公告与增值服务功能分析28-29 3.3 系统的非功能性需求分析29-30 3.4 本章小结30-314 代理商平台系统设计31-41 4.1 系统总体设计31-32 4.2 体系结构设计32-35 4.3 数据库设计35-40
4.3.1 外部设计35
4.3.2 结构设计35-40 4.4 本章小结40-415 代理商平台系统实现41-61 5.1 搭建Spring MVC+Spring+iBATIS环境41-45
5.1.1 运行环境及开发工具41
5.1.2 系统工程结构41-45 5.2 整合Spring MVC与iBATIS框架45-48 5.3 主要功能实现48-60
5.3.1 系统配置模块实现48-50
5.3.2 话费策略与策略类型管理实现50-53
5.3.3 话费业务处理模块实现53-55
5.3.4 误存款处理模块实现55-57
5.3.5 商户认证模块实现57-59
5.3.6 增值服务管理模块实现59-60 5.4 本章小结60-616 代理商平台运行测试及综合评价61-71 6.1 登录、平台首页运行测试61-62 6.2 主要功能模块效果测试62-69 6.3 代理商平台综合评价69-70 6.4 本章小结70-71结论71-72参考文献72-75攻读学位期间发表的学术论文75-76致谢76
欢迎:、、)
支持CAJ、PDF文件格式
【相似文献】
中国期刊全文数据库
;[J];电子设计技术;1998年11期
;[J];计算机与网络;1998年07期
文禾;;[J];互联网周刊;1999年07期
高凌;;[J];每周电脑报;1999年10期
;[J];每周电脑报;2000年08期
林观苞;[J];河南图书馆学刊;2001年04期
张晓楠;;[J];每周电脑报;2001年25期
禇巍;[J];软件工程师;2002年07期
谢涛;;[J];信息产业报道;2002年10期
;[J];电脑应用文萃;2003年03期
中国重要会议论文全文数据库
;[A];中国工程机械第四届营销高峰论坛暨2006年中国工程机械工业协会代理商工作委员会年会论文集[C];2006年
张俊红;;[A];武汉市第二届学术年会、通信学会2006年学术年会论文集[C];2006年
舒慧林;;[A];武汉市首届学术年会通信学会2004年学术年会论文集[C];2004年
崔浩;陈晓剑;;[A];2002年中国管理科学学术会议论文集[C];2002年
凌云;陈毓芬;;[A];全国地图学与GIS学术会议论文集[C];2004年
丁士才;张秋菊;管仁伟;刘小武;李国良;;[A];先进制造技术论坛暨第三届制造业自动化与信息化技术交流会论文集[C];2004年
;[A];2009第三届中国民用炉具研讨会暨产品展示会、2009生物质成型燃料加工设备及技术交流会会刊[C];2009年
唐明风;秦洁;文素芳;何春红;;[A];全国第12届手术室护理学术交流暨专题讲座会议论文汇编(下册)[C];2008年
;[A];2006年度中国汽车摩托车配件用品行业年度报告[C];2006年
江晓林;李海军;王秀琴;;[A];第6届全国高等学校电气工程及其自动化专业教学改革研讨会论文集(上册)[C];2009年
中国重要报纸全文数据库
文/宋钊;[N];计算机世界;2005年
陈庆春;[N];中国电子报;2006年
陈蕾;[N];机电商报;2006年
本报记者  徐志强;[N];21世纪经济报道;2006年
本报记者  郎朗;[N];21世纪经济报道;2006年
本报特约撰稿人
赵郑;[N];医药经济报;2007年
闫冰;[N];网络世界;2007年
陈泥;[N];厦门日报;2009年
张艳蕊;[N];中国企业报;2005年
吴清功;[N];中国医药报;2005年
中国博士学位论文全文数据库
杨潇潇;[D];西安电子科技大学;2009年
徐战亚;[D];中国地质大学;2010年
李湘蓉;[D];西南财经大学;2007年
廖刚;[D];上海交通大学;2007年
陈文豪;[D];中国科学技术大学;2006年
杨华;[D];天津大学;2009年
贾晓亮;[D];西北工业大学;2004年
韩冰;[D];华北电力大学(北京);2008年
李勇军;[D];中国科学技术大学;2008年
杨荣山;[D];华南理工大学;2009年
中国硕士学位论文全文数据库
郭延香;[D];哈尔滨商业大学;2013年
沙小红;[D];兰州大学;2011年
董立燕;[D];东北财经大学;2010年
陈晓琴;[D];电子科技大学;2012年
丁栋梁;[D];山东大学;2005年
梁明;[D];同济大学;2007年
杨敬君;[D];大连海事大学;2009年
王永华;[D];南京理工大学;2011年
过洁红;[D];北京邮电大学;2010年
欧阳任海;[D];四川大学;2004年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号19:11 提问
Spring mvc和spring的区别
在书里看到的例子,业务层和持久层用的spring框架,而表现层由Spring mvc 实现
spring mvc和spring的区别在哪里?应用的地方不同吗?
这样的话只有表现层用了MVC的设计模式?其它层可以用spring mvc框架吗?
spring可以整合其他的框架,意思说三层可以由不同的框架实现?
刚学spring,问题比较多,先谢了
按赞数排序
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)
spring mvc是spring的一个部分。spring除了mvc框架,还有ioc依赖注入,数据库访问等。
其它层可以整合spring mvc,但是不能直接用上。
可以搭配别的框架用,比如很多人不用spring mvc,用 struts+spring(ioc部分)
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!
它不是一个东西,不能说区别;spring mvc是spring的一个部分;spring mvc是一个三层框架的概念,它用来实现三层架构,并不是说三层可以由不同的框架实现
其他相关推荐
其他相似问题将整个项目自下而上的分为:数据持久(数据访问)层,逻辑(业务)层,UI(展现)层。数据访问层:负责将数据持久化响应的数据存储设备上,如DataBase,Txt,Excel等。业务逻辑层:负责处理为满足软件需求而订制的一...
在书里看到的例子,业务层和持久层用的spring框架,而表现层由Spring mvc 实现 spring mvc和spring的区别在哪里?应用的地方不同吗?这样的话只有表现层用了MVC的设计模式?其它层可以用spring mvc框架吗?spring...
全部\n网站(0)\n帮助中心(1)\n产品文档(0)\n论坛(2)\n云市场(1)
这篇文章的想法来自于过去的两篇文章:《设计自己的MVC框架》《设计模式之事务处理》链接: http://www.javaresearch.org/article/59935.htm
http://www.javaresearch.org/article/59043.htm 代码下载同样在...
全部\n网站(0)\n帮助中心(1)\n产品文档(0)\n论坛(1)\n云市场(0)
全部\n网站(0)\n帮助中心(2)\n产品文档(0)\n论坛(2)\n云市场(1)
全部\n网站(0)\n帮助中心(1)\n产品文档(0)\n论坛(2)\n云市场(1)
在MVP里,应用程序的逻辑主要在Presenter来实现,其中的view是很薄的一层。MVVM MVVM,Model-View-ViewModel,最初是由微软在使用Windows Presentation Foundation和SilverLight时定义的,2005年John Grossman在一篇...
将领域逻辑与底层的持久化框架解耦;尽可能使用实际的对象,例如操作FirstName类而不是操作String。DDD所涉及的内容远不止上述的规则:实体(Entity)、值类型(value type)、通用语言(Ubiquitous Language)、...
全部\n网站(0)\n帮助中心(1)\n产品文档(0)\n论坛(2)\n云市场(1)
全部\n网站(0)\n帮助中心(1)\n产品文档(0)\n论坛(1)\n云市场(0)
持久化和获取其数据的方式是与反应型流程无关的,所以,它理所应当地“不应该由前端工程师来编写”。不必因此而感到歉意。再次强调,Action 是纯函数,没有状态和其他的副作用(例如,对于 Model,不会包含计数的...
林开雄著,更多章节内容可以访问云栖社区“异步社区”公众号查看#1.6 展现层 业务层和持久层的开发任务已经完成,该是为程序提供界面的时候了。Struts MVC框架由于抢尽天时地利,成为当下最流行的展现层框架。但也有...
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...
登录模块麻雀虽小,五脏俱全,它涵盖了持久层数据访问操作、业务层事务管理以及展现层MVC等企业应用常见的功能。本书希望通过一个景区网站贯穿始终,以便能够由点及面,使读者在单纯技术性学习的酣战中深刻理解应用...
现在的项目都会把M分层两层即DAO层(持久层)和Service层(业务层)。由于业务的发展,Service层里面的业务会越来越复杂,这个时候为了保持Service层方法的抽象层次一致性,一般我们都会写成堆成堆的private方法,举个例子...
本节书摘来自异步社区《Spring MVC学习指南(第2版)》一书中的第2章,第2.3节,作者:【美】Paul Deck著,更多章节内容可以访问云栖社区“异步社区”公众号查看#2.3 模型2之Servlet控制器 为了便于对模型2有一个...
MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。Struts框架是2000年就开始起步了,到目前已经发展了5年,技术相当成熟,目前全球Java开发...
2、如果使用Hibernate做持久层,是不是可以很轻松的更换数据库,比如MySQL、PostgreSQL、Oracle 3、数据库相互的关系是使用外键建立联系还是用代码控制比较好 4、如果需要同时提供json接口,接口一般怎么进行处理...
未解决问题?到论坛提问试试吧!
你可能感兴趣SpringMVC和JSP 登录实例 相关配置 - 笑的很天真 - ITeye博客
博客分类:
SpringMVC + Jsp
需要的jar包:
web.xml配置文件
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.5"
xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"&
&servlet-name&dispatcher&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/myConfig.xml&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&dispatcher&/servlet-name&
&url-pattern&*.do&/url-pattern&
&/servlet-mapping&
&/web-app&
如果没有指定 init-param参数,默认为src路径下dispatcher-servlet.xml文件,即(servlet-name)-servlet.xml配置。
myConfig.xml配置
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:drools="http://drools.org/schema/drools-spring"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://drools.org/schema/drools-spring classpath:org/drools/container/spring/drools-spring-1.0.0.xsd"&
&bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&property name="viewClass"&
&value&org.springframework.web.servlet.view.JstlView&/value&
&/property&
&property name="prefix"&
&value&/WEB-INF/view/&/value&
&/property&
&property name="suffix"&
&value&.jsp&/value&
&/property&
&bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"&
&property name="mappings"&
&prop key="/login.do"&LoginAction&/prop&
&/property&
&bean id="LoginAction" class="com.hammer.login.LoginAction"&
&property name="commandClass"&
&value&com.hammer.login.LoginInfo&/value&
&/property&
&property name="fail_view"&
&value&loginFail&/value&
&/property&
&property name="success_view"&
&value&main&/value&
&/property&
LoginAction.java
package com.hammer.
import java.util.ArrayL
import java.util.HashM
import java.util.L
import org.springframework.validation.BindE
import org.springframework.web.servlet.ModelAndV
import org.springframework.web.servlet.mvc.SimpleFormC
@SuppressWarnings("deprecation")
public class LoginAction extends SimpleFormController{
private String fail_
private String success_
protected ModelAndView onSubmit(Object command, BindException errors)
throws Exception {
LoginInfo loginInfo = (LoginInfo)
if(login(loginInfo) == 0){
HashMap&String,Object& result = new HashMap&String,Object&();
result.put("loginInfo", loginInfo);
List&String& list = new ArrayList&String&();
list.add("msg1");
list.add("msg2");
list.add("msg3");
result.put("messages", list);
return new ModelAndView(this.getSuccess_view(),result);
return new ModelAndView(this.getFail_view());
private int login(LoginInfo info){
if("hammer".equals(info.getUsername()) && "hammer".equals(info.getPassword())){
public String getFail_view() {
return fail_
public void setFail_view(String fail_view) {
this.fail_view = fail_
public String getSuccess_view() {
return success_
public void setSuccess_view(String success_view) {
this.success_view = success_
LoginInfo.java
package com.hammer.
public class LoginInfo {
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
&h1&login success!&/h1&
&p&Current User:&c:out value="${loginInfo.username}"/&&/p&
&p&Your current messages:&/p&
&c:forEach items="${messages}" var="item" begin="0" end="9" step="1" varStatus="var"&
&c:if test="${var.index % 2 == 0}"&*&/c:if&${item}&br/&
&/c:forEach&
注意:JSTL的使用 Spring3.0以上的SimpleFormController 过时
1、Resolver设定
Resolver将输出结果和输出界面相融合,为表现层提供呈现资源。
2、View Resolver的viewClass参数
使用JSP页面作为输出,因此,设定为:
org.springframework.web.servlet.view.JstlView
如果是FreeMarker模板表现层:
org.springframework.web.servlet.view.freemarker.FreeMarkerView
如果是Velocity模板表现层
org.springframework.web.servlet.view.velocity.VelocityView
3、View Resolver的prefix前缀参数
运行时,Spring将为指定的页面资源自动追加前缀
4、View Resolver的suffi前缀x参数
运行时,Spring将为指定的页面资源自动追加后缀
5、“请求/处理单元”关系映射
将“login.do”映射到处理单元 LoginAction
&props&节点下可以有多个映射关系存在
6、LoginAction定义具体实现类
7、LoginAction的请求数据参数
commandClass参数源于LoginAction的基类BaseCommandController包含了请求数据的封装和验证方法BaseCommandController.bindAndValidate,将传入的HttpServletRequest构造请求数据对象,LoginInfo这是一个简单的JavaBean,对Http请求的参数进行遍历,于LoginInfo存在相同名称的属性,如果找到,则将此参数复制到LoginInfo对象的同名属性中,后作为参数传递给LoginAction.
8、返回视图定义
返回结果对应我们配置了fail_view、success_view两个自定义参数。参数值将由Resolver进行处理,为其加上前缀后缀,如对于fail_view对应的页面路径/WEB-INF/view/loginFail.jsp之后,Resolver会将LoginAction的返回数据与视图相融合,返回最终的显示界面。
探讨: BindException 的数据绑定错误的跟踪机制,错误描述的工具,用于向上层反馈的错误信息。
统一异常处理
修改myConfig.xml增加exceptionResolver定义
&bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"&
&property name="defaultErrorView"&
&value&showFailure&/value&
&/property&
&property name="exceptionMappings"&
&prop key="com.hammer.exception.HammerException"&showHammerError&/prop&
&prop key="com.hammer.exception.SQLException"&showSQLError&/prop&
&/property&
处理单元抛出异常代码:
public void throwException(LoginInfo info) throws Exception{
if("sql".equals(info.getUsername())){
throw new SQLException();
}else if("ham".equals(info.getUsername())){
throw new HammerException();
throw new Exception();
映射到对应的处理页面,抛出SQLException,跳转到showSQLError.jsp(页面可以展示Exception的message信息等)页面 根据exceptionMappings关系。
思考针对业务异常分类,以弹出框的形式展示 业务信息需求,后台怎么统一搞(编写异常处理工具类,信息通过Ajax异步结果集传递)
国际化支持
在myConfig.xml增加messageSource配置
&!-- 国际化 --&
&bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"&
&property name="basename"&&value&messages&/value&&/property&
使用时候:&spring:message code="username" /&使用在JSP页面中
属性文件名的写法:
_zh_CN.properties
_en_US.properties
(英文)配置这个(注意:一定是不是这是规定的)
Locale的切换:
1、根据语言种类,部署时候手动替换*.properties文件
2、根据当前系统的Locale设置,自动匹配(上列默认)
3、根据客户浏览器语言设定,自动切换界面语种,最灵活
注意:AcceptHeaderLocaleResolver、SessionLocaleResolver、CookieLocaleResolver使用
在myConfig.xml中增加localeResolver配置,即是:
&bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"&
本国际化实例中 报严重: No WebApplicationContext found: no ContextLoaderListener registered?
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
浏览: 2127 次
来自: 上海struts2获取页面参数的方式。
转自:/o-andy-o/archive//2635537.html
1. 用Action的属性:
在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致,并不用做数据类型的转换。
相应提交方式可以用get 和post,如:testAction? name=admin
&form action=&login& method=&post& name=&form1&&
用户名:&s:textfield name=&username&/&&br/&
密 码:&s:password name=&password&/&&br/&
&s:submit value=&提交&/&
public class TestAction extends ActionSupport{
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
2. 使用DomainModel:
在Action 里面不用很多的属性,而是用Model 层用到的模型,保存它的一个对象。相应提交方式可以用get 和post,
如:testAction? resBananRc.name=admin
&form action=&login& method=&post& name=&form1&&
用户名:&s:textfield name=&users.username&/&&br/&
密 码:&s:password name=&users.password&/&&br/&
&s:submit value=&提交&/&
public class TestAction extends ActionSupport{
//错误的写法,不能自己实例化,struts会自动实例化 private Users users = new Users();
public Users getUsers(){
public void setUsers(Users users){
this.users=
public class Users{
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
3. 使用DTO--数据传输对象
它的作用是接收参数,传递参数,并不是项目中的实体类。如用户注册时,会用到确认密码,所以要先把参数接收过
来,做处理后,再传递给相应方法去创建User 对象。提交参数的方式的Domain Model 方式的相同。
1 public class UserDTO {
public String getName() {
public void setName(String name) {
this.name =
public String getPassword() {
public void setPassword(String password) {
this.password =
public String getConfirm() {
public void setConfirm(String confirm) {
this.confirm =
4.使用ModelDriven:
在创建Action 的时候,Action 实现了ModelDriven 接口,去调用接口的getModel()方法,取到了相关对象。
相应提交方式可以用get 和post,如:testAction? name=admin
&form action=&login& method=&post& name=&form1&&
用户名:&s:textfield name=&username&/&&br/&
密 码:&s:password name=&password&/&&br/&
&s:submit value=&提交&/&
public class sysAction extends ActionSupport implements ModelDriven&User&{
private User user = new User();
//手动实例化
public User getModel() {
//返回实例
5.使用request对象:
此方法与与传统的JSP 等传接参数一样,即使用request. getParameter(“”)方法
public class TestAction extends ActionSupport{
private static final long serialVersionUID = -0893325L;
public void execeute() {
String name = super.getRequest().getParameter(&paraName&);
System.out.println(&姓名:& + name);
SpringMVC获取页面参数的方式。
转自:http://blog.csdn.net/wxwzy738/article/details/9832705
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:26983次
排名:千里之外
原创:37篇
转载:34篇
(5)(5)(10)(6)(11)(4)(1)(3)(1)(14)(4)(1)(3)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 springmvc xml配置 的文章

 

随机推荐