到目前为止,身为一个java后端开发人员的我,

在工作期间,无非就是ui设计页面,前端开发html,之后将做好的页面交给我,我负责后台逻辑一件html的页面渲染。

好好滴一个后台开发人员,莫名其妙的做起了前端的活,很是心累啊。

一直不明白前后端分离是啥情况,今天看了一篇博客,说的真到位。

偏头痛杨 看就对了,到位。

先前一件公司使用jsp,效率着实够低。

jsp必须要在支持java的web服务器里运行

  1. .第一次请求jsp,必须要在web服务器中编译成servlet,第一次运行会较慢。
  2.  
  3. .每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高(是每次哟,亲~)。
  4.  
  5. .jsp内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到很多痛点。
  6.  
  7. .如果jsp中的内容很多,页面响应会很慢,因为是同步加载。
  1. web服务器:一般指像nginxapache这类的服务器,他们一般只能解析静态资源。
  2. 应用服务器:一般指像tomcatjettyresin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。
    一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。
  1. 对于后端java工程师:
  2. 把精力放在java基础,设计模式,jvm原理,spring+springmvc原理及源码,linuxmysql事务隔离与锁机制,mongodbhttp/tcp,多线程,分布式架构(dubbodubboxspring cloud),弹性计算架构,微服务架构(springboot+zookeeper+docker+jenkins),java性能优化,以及相关的项目管理等等。
  3. 后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。
  4.  
  5. 对于前端工程师:
  6. 把精力放在html5css3jqueryangularjsbootstrapreactjsvuejswebpackless/sassgulpnodejsGoogle V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。
  7. 前端追求的是:页面表现,速度流畅,兼容性,用户体验等等。

之前讲师说做一个全战的程序员,前后端通吃,我发现,入门很容易,深入真的很难

  1. 正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。
  1. 开发模式
  2.  
  3. 以前老的方式是:
  4. .产品经历/领导/客户提出需求
  5. .UI做出设计图
  6. .前端工程师做html页面
  7. .后端工程师将html页面套成jsp页面(前后端强依赖,后端必须要等前端的html做好才能套jsp。如果html发生变更,就更痛了,开发效率低)
  8. .集成出现问题
  9. .前端返工
  10. .后端返工
  11. .二次集成
  12. .集成成功
  13. .交付
  14.  
  15. 新的方式是:
  16. .产品经历/领导/客户提出需求
  17. .UI做出设计图
  18. .前后端约定接口&数据&参数
  19. .前后端并行开发(无强依赖,可前后端并行开发,如果需求变更,只要接口&参数不变,就不用两边都修改代码,开发效率高)
  20. .前后端集成
  21. .前端页面调整
  22. .集成成功
  23. .交付
  1. 请求方式
  2.  
  3. 以前老的方式是:
  4. .客户端请求
  5. .服务端的servletcontroller接收请求(后端控制路由与渲染页面,整个项目开发的权重大部分在后端)
  6. .调用service,dao代码完成业务逻辑
  7. .返回jsp
  8. .jsp展现一些动态的代码
  9.  
  10. 新的方式是:
  11. .浏览器发送请求
  12. .直接到达html页面(前端控制路由与渲染页面,整个项目开发的权重前移)
  13. .html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据,json数据格式因为简洁高效而取代xml
  14. .填充html,展现动态效果,在页面上进行解析并操作DOM
  15. (有兴趣的童鞋可以访问一下阿里巴巴等大型网站,然后按一下F12,监控一下你刷新一次页面,他的http是怎么玩的,大多数都是单独请求后台数据,
  16. 使用json传输数据,而不是一个大而全的http请求把整个页面包括动+静全部返回过来)

对java前后端分离的理解的更多相关文章

  1. java前后端分离是否会成为趋势

    现在项目当中使用的是springboot+springcloud,这套框架也用了半年了,springboot是spring4.0的升级版,简化了springmvc的xml配置,是spring家族中目前 ...

  2. Java 前后端分离项目:微人事

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行项目,本示例是在 Windows 操作系统下演示. 本文作者:HelloGitHub-秦人 大家好!这里是 HelloGitHub 推出 ...

  3. JNPF.java前后端分离框架,SpringBoot+SpringCloud开发微服务平台

    JNPF.java版本采用全新的前后端分离架构模式.前后端分离已成为互联网项目开发的业界标准开发方式,通过 nginx+tomcat 等方式有效的进行解耦合,并且前后端分离会为以后的大型分布式架构.弹 ...

  4. Java前后端分离的认识

    1.原由 在网上查了关于前后端分离的资料,有所粗浅认识.记录下来,方便以后使用.以下均是个人看法,仅做参考.如有错误请指教,共同进步. 2.为什么前后端分离? ①.一个后台,可以让多种前台系统使用.后 ...

  5. Java 前后端分离研究

    https://github.com/ulyn/eos https://github.com/lenbo-ma/jfinal-api-scaffold/

  6. vue+Java 前后端分离,多次请求Session不一致的问题(网络上找的)

    在vue main.js中增加以下配置: import axios from 'axios'; axios.defaults.withCredentials=true; 请求时:设置 withCred ...

  7. (转)也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

    原文链接:http://ued.taobao.org/blog/2014/04/full-stack-development-with-nodejs/ 随着不同终端(pad/mobile/pc)的兴起 ...

  8. 也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

    前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图 ...

  9. 从 MVC 到前后端分离

    从 MVC 到前后端分离 1 理解 MVC MVC 是一种经典的设计模式,全名为 Model-View-Controller,即 模型-视图-控制器. 其中,模型 是用于封装数据的载体,例如,在 Ja ...

随机推荐

  1. Error creating bean with name 'transactionManager' defined in ServletContext resource XXX

    spring & hibernate整合时候 ,并且使用hibernate.cfg.xml文件时回报这个错误, 解决办法,在hibernate.cfg.xml中加入 <property ...

  2. Atcoder #017 agc017 A.Biscuits 简单数学

    LINK 题意:水题 求取数,使得和为奇数或偶数的方案数. 思路:统计奇数和偶数,组合求一下发现结果就是$2^{odd-1} + 2^{eve-1}$ 注意特殊情况,即奇数个为0又要求和为奇数的方案数 ...

  3. CF760 C. Pavel and barbecue 简单DFS

    LINK 题意:给出n个数,\(a_i\)代表下一步会移动到第\(a_i\)个位置,并继续进行操作,\(b_i\)1代表进行一次翻面操作,要求不管以哪个位置上开始,最后都能满足 1.到达过所有位置 2 ...

  4. 不用注解添加controller抛出No adapter for handler异常

    不用注解添加controller时会抛出No adapter for handler异常. 解决方法:在DispatcherServlet的配置文件(***-servlet.xml)中加入如下两行: ...

  5. linux内核文件系统:proc、tmpfs、devfs、sysfs简要介绍

    linux内核文件系统:proc.tmpfs.devfs.sysfs proc:虚拟文件系统,在linux系统中被挂载与/proc目录下.里面的文件包含了很多系统信息,比如cpu负载. 内存.网络配置 ...

  6. IE6+IE7+IE8+IE9+FF兼容性调试

    HACK原理:不同浏览器对各中字符的识别不同 (读完文章你会发现,FF和IE8对以下字符的识别能力完全相同) 在 CSS中常用特殊字符识别表: (1)*:  IE6+IE7都能识别*,而标准浏览器FF ...

  7. 【不能继续浪啦】BZ做题记录[7.01~7.06]

    距离上次提交..><居然已经过去一个半月了... 然后再去看看人家RXDoi.. 差距越来越大啦... 最后更新时间:7.06 19:06 [07.03 21:02]夏令营自修课逃逃真爽. ...

  8. 【洛谷P2676】超级书架

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= N & ...

  9. webpack中的静态资源处理

    你可能已经注意到,在我们的项目结构里,有两个静态文件的路径,分别是:src/assets 和 static/.那这两个到底有什么区别呢? Webpacked 资源 为了回答这个问题,我们首先需要理解w ...

  10. [MySQL] AUTO_INCREMENT lock Handing in InnoDB

    MySQL AUTO_INCREMENT lock Handing in InnoDB 在MySQL的表设计中很普遍的使用自增长字段作为表主键, 实际生产中我们也是这样约束业务开发同学的, 其中的优势 ...