从MVC到Ajax再到前后端分离的思考

  一位小妹去面试前端,前端leader问了"什么是ajax?",答:“接收后台的数据,然后然后自己填充和渲染样式”;一位小哥去面试后台,技术经理问了“什么是ajax?”,答:“在不需重新加载整个网页的情况下,发送异步请求,返回json数据给前端”。准确答案到底是什么?Ajax到底属于前端还是属于后端?前端(或者后端)到底需不需要懂得Ajax?Ajax请求与普通的http请求有什么区别?数据库中的数据通过Ajax请求和普通请求下分别是怎么传递到前台的...等等一些问题,似乎需要静下心来理一理。

  MVC篇

  最典型的MVC就是JSP + servlet + javabean的模式,不少人的web起点应该也是这个,记得当时看到最多的问题就是JSP和Servlet区别,后来随着Struts 、Spring MVC等框架出来,MVC被谈论的更多了,越来越多的人开始想要深入学习和理解它,同时也有越来越多的问题开始围绕MVC展开。基本的概念:MVC = Model View Controller = 模型-视图-控制器,太过于概念化的东西确实不太好理解,也许框架都用了好几年,一问MVC还是会懵。不过还是Talk is cheap,下面以Spring MVC + jsp的开发过程示例,同时也是数据在普通http请求后从数据库传递到前端的过程。

  背景:ssm项目中,将数据库中TBL_PERSON表的记录全部获取,在前端以表格呈现出来,即<table>标签下(因为自己写的样式实在太丑,重点关注过程吧)

  1.Controller层关键代码

package com.mmm.web; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.mmm.pojo.Person; import com.mmm.service.PersonService; @Controller @RequestMapping("person") public class PersonController { @Autowired PersonService personService; /** * 框架跳转页面默认是forward,也就是请求转发 * 这里的model设置的属性,在jsp页面也能直接通过el表达式获取 * */ @RequestMapping(value="httplist") public String httplist(Model model) { List<Person> list = personService.selectAll(); model.addAttribute("list", list); return "person/list"; } ...... }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdxfd.html