第35卷 第2期 福 建 电 脑 Vol. 35 No.2
2019年2月
Journal of Fujian Computer
Feb. 2019
———————————————
魏钢(通信作者),男,1978年生,主要研究领域为Java Web 开发.E-mail: weigangweiyiwen@163.
Web 前后端分离模式下Spring MVC 在 高职Java Web 教学中的研究
魏钢
(锦州师范高等专科学校计算机系 辽宁 锦州 121000)
摘 要 随着移动互联网技术的广泛应用,Web 前后端分离模式开发逐渐成为首选方式。高职计算机软件专业Java Web 课程需要进一步改进,通过引入Spring MVC 技术,在遵守REST 规范的基础上,采用JSON 数据格式,实现前后端分离模式下的数据交换。
关键词 Spring MVC ;REST ;JSON 中图法分类号 TP311
Research on the Role of Spring MVC in Java Web Teaching in Higher Vocational Colleges Based on Web front-end and back-end separation patter
WEI Gang
(Department of Computer, Jinzhou Teachers College, Jinzhou, China, 121000)
1 前言
当今的社会已经全面进入信息时代,移动通信技术和互联网技术的不断融合,催生出全新的移动互联网。随着移动互联网技术的不断发展和广泛应用,手机取代了PC 成为人们上网的首选工具,真正实现获取信息随时化、随地化。为了避免前端差异导致后端的重复开发,Web 前后端分离模式的开发逐渐成为首选方式。通过前后端分离模式的选择,在降低了后端重复开发的同时,又可以避免前后端功能的互相依赖,从而可以实现前后端工程师并行进行开发,降低了程序的开发周期,提高了程序的开发效率。企业的人才需求是我们制定人才培养方案的主要依据,为了培养高质量的人才,高职计算机软件专业必须进调整,核心Java Web 课程需进一步改进,在掌握Servlet/JSP 基础上引入SSM(Spring+ Spring MVC+MyBatis)框架,为后续研究Spring Boot 和Spring Cloud 技术奠定基础,对于Spring MVC 是实现前端和后端接口实现的主要框架,对于前后端分离模式开发研究具有重要意义。
2 Spring MVC 框架的优势
Java Web 基础课的教学重点是Servlet 、JSP 和JavaBean 三大技术[1],Servlet 作为控制器,JSP 作为视图,JavaBean 作为模型,三种组件结合实现MVC 开发模式[2]。但随着前后端分离模式开发的不断应用,JSP 作为视图部分功能逐步被Html5所取代,其根本原因在于JSP 页面中Java 代码与Html 大量耦合,增加了代码维护的难度。此外JSP 页面在被访问时需要被服务器翻译成Servlet ,也增加了服务器的开销和响应时间。前后端分离模式下的web 开发前端和后端主要使用JSON 数据进行数据交换,采用原生的Servlet 作为控制部分,开发者必须自己实现JSON 数据的接受和响应,并且只能使用Http 协议默认的get 和post 方式提交数据,这些弊端也增加了开发复杂度[3]。Spring MVC 框架完全支持REST 开发规范,通过@RestController 注解的使用即可实现控制器的声明和响应数据格式自动转化为JSON 格式,一个注解实现了@Controller 和@ResponseBody 两个注解的功能。通过
108 福建电脑2019年
@GetMapping、@PostMapping、@PutMapping和@DeleteMapping四个注解的使用,能够完成前端对应的get、post、put和delete四种请求方式,极大地降低了前后端分离开发的复杂度[4]。
3 Spring MVC框架的使用和常见问题处理方法
对于前端访问后端接口localhost:8080/user/userlist时,请求被Spring MVC核心DispatcherServlet拦截,通过内部初始化流程映射到getUserList方法去执行,通过调用用户服务接口获取模型中的数据放到集合中返回给前端,由于使用了@RestController注解,集合中的数据会被Spring MVC框架进行转换成JSON 格式返回给前端进行数据渲染。部分参考代码如下:
@RestController
public class UserController{
@Autowired
private UserService userService=null;
@GetMapping("/user/userlist")
public List<User> getUserList( ){ List<user>
userList=userService.findUsers();
return userList;
}
}
常见问题一:响应数据对象类型或集合类型不能自动转换成JSON数据。
解决办法:项目中引入jackson-core、jackson-databind和jackson-annotations三个jar包,在l进行如下配置即可[5]。
<bean id="messageConvert"
class="org.verter.json.Mappi ngJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value> </list>
</property>
</bean>
常见问题二:浏览器禁止跨域访问
由于前后端实现分离模式开发,导致前端页面资源和后端接口资源不在同一域名下,如果前端使用AJAX异步请求技术访问后端接口就会被浏览器禁止跨域访问。
解决办法:对于单个控制器或方法的访问可使用@CrossOrigin注解,设置属性origins = "*"即可实现任意域名跨域访问后端接口。但是对于多个控制器或方法进行跨域访问时,这种方式就显示出代码的冗余了,此时最好使用全局配置方式,即在l进行跨域配置即可,配置代码如下:
<mvc:cors>
<mvc:mapping path="/**"/>
</mvc:cors>
4 结语
Spring MVC框架的引入是对高职Java Web基础教学的一个提高,适应Java Web技术发展方向,易于
学生日后研究Spring Boot和Spring Cloud框架,对于高职院校计算机软件专业人才的培养和提升社会影响力具有深远意义。
致谢通过自身的不懈努力,在前人研究的成果基础上,我经过半年的时间,顺利的完成本次科研任务,撰写了这篇论文,为此献出了大量的时间和精力。论文中研究内容和所提出的观点得到了北京联创教育、兄弟连、一灯学堂、中软卓越科技等多家行业专家的指导和帮助,在此表示真诚的谢意,同时也感谢我的家人对我的支持和鼓励!
参考文献
[1] 张孝祥,徐明华. JSP基础与案例开发详解. 北京: 清华大学出版社,
jsp用什么前端框架2009.
[2] 刘乃琪,王冲. JSP应用开发与实践. 北京: 人民邮电出版社, 2012.
[3] 丁振凡. Spring REST风格Web服务的Json消息封装及解析研究. 智
能计算机与应用, 2012, 2(2): 9-10.
[4] 杨开振. 深入浅出Spring 北京: 清华大学出版社, 2018.
[5] 杨开振. Java EE互联网轻量级框架整合开发. 北京: 电子工业出版
社, 2017.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论