Java Web开发技术方案

Java Web开发分前端、后端:
Java Web前端:
—就是在Web应用中用户可以看得见碰得着的东西。包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
—前端开发主要使用ajax/jQuery/js/html/css等, 使用JS,应用JQuery/html/CSS等,进行交互效果的开发
Java Web后端:
—后端更多的是与数据库进行交互以处理相应的业务逻辑。需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等
—后端开发主要使用java/MySQL/Oracle等, 使用Java、SQL语句开发.

Java web前端开发框架:
前端工程化的框架nodejs,React,router,react,redux,webpack

Java web后端开发框架:
SSM & SSH: spring + springmvc/struts + spring jdbc/hibernate/mybatis等

大多数项目在java后端都是分了三层:
控制层(controller/action),业务层(service/manage),持久层(dao)。
控制层
负责接收参数,调用相关业务层,封装数据,以及路由到jsp页面。然后jsp页面上使用各种标签(jstl/el)或者手写java(<%=%>)将后台的数据展现出来
业务层
负责实现业务逻辑
持久层
数据访问、存储

Java web应用运行机制:
使用maven或者eclipse等工具把你的代码打成一个war包,把这个war包发布到你的生产环境下的web容器(tomcat/jboss/weblogic/websphere/jetty/resin)里。
发布完了之后,启动你web容器,开始提供服务,然后通过配置域名,dns等,设计的网站就可以访问了
1、在浏览器中输入你的网站域名(www.xxx.com),之后发生了什么?
浏览器在通过ip路由到你的服务,在tcp3次握手之后,通过tcp协议开始访问你的web服务器,
你的web服务器得到请求后,开始提供服务,接收请求,之后通过response返回你的应答给浏览器

2、上面的执行过程在实现上分为两种:
传统的Java web项目开发:
1、客户端发送请求
2、服务端的servlet或controller接收请求(路由规则由后端制定,项目开发的重心在后端,web后端的权重很大,UI,前端只是附属)
3、调用service,dao代码完成业务逻辑
4、返回jsp
5、jsp展现一些动态的代码

新的Java web项目开发方式
1、浏览器发送请求
2、直接到达html页面(路由规则由前端制定,项目开发重心在前移)
3、html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据)
4、填充html,展现动态效果,在页面上进行解析并操作DOM

前端不仅仅是css,js那么简单,前端在使用了一些框架和工具形成前端项目,在项目层面拆开,前端也需要有MVC框架,也需要编译,打包,部署,是很复杂的,
越是大型互联网公司,前端项目越是工程化的项目,包括前端项目的版本管理,运维等。

java web项目都尽量要避免使用jsp,越是大中型的web应用,越是要搞前后台解耦,玩分布式架构,这样的web应用架构才更强:
正常的分布式架构,是都要拆开的:
web服务器集群(nginx) + 应用服务器集群(tomcat) + 文件服务器集群 + 数据库服务器集群 + 消息队列集群 + 缓存集群等等

新的Java web项目开发方式的请求步骤:
大量并发浏览器请求—>web服务器集群(nginx)—>应用服务器集群(tomcat)—>文件/数据库/缓存/消息队列服务器集群
同时又可以玩分模块,还可以按业务拆成一个个的小集群,把核心的业务封装成一个业务中心,玩远程业务调用,玩rpc,玩soa,使用springboot+Docker玩微服务,这样才是一个弹性的分布式架构

特点:
1、实现真正的前后端解耦,前端服务器使用nginx。
前端服务器放的是css、js、图片等等一系列静态资源(甚至还可以把css、js、图片等资源放到特定的文件服务器,例如阿里云的oss,并使用cdn加速),
前端服务器负责控制页面引用、跳转、调用后端的接口
后端服务器使用tomcat(把应用服务器tomcat想象成一个数据提供者),加快整体响应速度,后端服务暂时超时或者机,前端页面也会正常访问,只不过数据刷不出来而已
2、Java web项目开发分工明确:
前端工程师:负责页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题。
后端工程师:负责接口数据出错,数据没有提交成功,应答超时等问题的处理。
3、大并发情况下,可以同时水平扩展前后端服务器,通过部署服务器集群。减少后端服务器的并发压力,除了接口以外的其他所有http请求全部转移到前端nginx上。
前端框架解决类似于页面嵌套,分页,页面跳转控制等功能,而调用接口就是调用controler里的方法,如果页面上有一些权限等等相关的校验,那么这些相关的数据也可以通过ajax从接口里拿
4、也许你也需要有微信相关的轻应用,那样你的接口完全可以共用,如果也有app相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率。
5、页面显示的东西再多也不怕,因为是异步加载

Java Web开发中前后端分离的技术方案:
1、前端使用AngularJS编写SPA(Single Page Application)应用,后端服务器只提供RESTful接口且完全无状态化。
特点:
前后完全分离,前端开发者完全不需要关心服务端用了什么技术,只需要一份接口说明文档即可。
移动端app与PC端网站可以共用同一套接口。
如果”页面”过多,SPA应用第一次加载速度会稍慢。

2、使用NodeJS渲染Web页面,然后调用后端RESTful接口。
特点:
前后完全分离, 后端开发者可以专注于业务逻辑开发。
NodeJS代码如果异常处理不好容易直接挂掉进程。
增加了一层NodeJS,提高了网络传输的开销,增加了部署和维护成本

Java Web开发技术方案相关推荐

  1. java web 开发技术大全 代码_Java Web开发技术大全

    资深程序员全力打造,深入剖析SSH框架整合开发的精髓 全方位解读Java Web开发的基础知识.高级技术及应用案例 内容全面,讲解详细,全面覆盖JSP.Se rvlet.AJAX及SSH框架整合开发 ...

  2. Java Web开发技术教程入门-初识动态网页

    这段时间学校搞了一个"阅战阅勇"的阅读活动,奖品还是挺丰富的~于是,奔着这些奖品,我去图书馆借了这本<Java Web开发技术教程>.一是为了那些丰富的奖品,二是为了回 ...

  3. 【渝粤题库】广东开放大学 java web开发技术 形成性考核

    题库查询系统 选择题 题目:当多个用户请求同一个JSP页面时,Tomcat服务器为每个客户启动一个_____. 题目:以下_____不是JSP运行所必须的条件. 题目:Tomcat服务器的默认端口为_ ...

  4. 读《Tomcat与Java Web开发技术详解》

    作 者: 孙卫琴, 李洪成 编著 出 版 社: 电子工业出版社 出版时间: 2004-4-1 字 数: 723200 版 次: 1 页 数: 438 印刷时间: 2004/04/01 开 本: 印 次 ...

  5. Java Web开发技术教程入门-Model1和Model2

    今天我们聊聊JSP开发中的Model1和Model2. Model1采用了JSP+JavaBean技术开发Web应用.其中,JSP实现页面显示,业务逻辑和流程控制,数据处理由JavaBean完成.在J ...

  6. java web开发技术大_2021年六大javaweb开发主流技术

    作为历史最为悠久的编程语言--java,历经数十年依然盘踞在编程榜最前面的位置,这与它的技术和应用范围是分不开的,同时呢,javaweb开发主流技术更是java开发者时时刻刻关注的问题,接下来我们一起 ...

  7. Java Web开发技术教程入门-JavaBean组件与Servlet

    补更:阅战阅勇第7/8/9Days笔记 昨天我们了解了JDBC技术的一些日常操作,对于数据库而言,不仅仅的只有"增,删,改,查".博主觉得最重要的是SQL语句的优化,一个" ...

  8. Java Web开发技术详解~Web的概念

    Web 是一种分布式应用架构,旨在共享分布在网络上的各个Web服务器中的所有互相链接的信息. Web 采用客户/服务器通信模式,客户与服务器之间用HTTP协议通信. Web 使用超级文本技术(HTML ...

  9. Tomcat与Java Web开发技术详解 总结(1)

    1.tomcat组件架构图 2.startup和shutdown Startup.bat 执行的是catalina.bat文件.与命令catalina start 一样 Shutdown.bat执行的 ...

最新文章

  1. 如何让老Mac机支持USB安装Windows
  2. 作为SEO老人不轻易建议客户进行动态网页优化设置
  3. 严苛模式(StrictMode)
  4. session机制和cookie机制
  5. lasso回归和岭回归_如何计划新产品和服务机会的回归
  6. 羽毛球 机器人 Robocon 2015 泰国预选赛(全国大学生机器人竞赛)
  7. python中字符串大小写转换常用操作
  8. java8的stream流操作的数据结构
  9. c语言比两个人年龄大小,c语言结构体
  10. Centos 6.5 Tengine 安装流程
  11. just help me
  12. centos检测不到磁盘_linux – Centos 7服务器看不到磁盘阵列磁盘
  13. stm32 iic 从机模式 时钟低电平问题
  14. 第16章 SQL BETWEEN 操作符教程
  15. 《The Zen of Python, Explained》Posted by Al Sweigart in python - 中译版
  16. 快速找出两个Word文档之间的差别
  17. 如何在C++里面加快运行速度
  18. Hadoop 实战之分析专利引用数据集(一)
  19. java中List Stream的简单使用
  20. OUC课程评价小程序(测试报告)

热门文章

  1. 7月HCIP Datacom认证考试通过
  2. jQuery实现左右完美滑动的轮播图效果
  3. 墙裂推荐好文:编程初学者如何缓解迷茫和焦虑?
  4. 地处国际金融中心,却「不走寻常路」的牛津和剑桥
  5. 开心自己的“冒泡排序”被百度百科收录 每一个人都会有梦想,或许不是每一个人,都可以实现自己的梦想,但要永远记得,在我们心里,曾经做过的梦。——To:Hygh
  6. 4. css实现水平或垂直居中
  7. 百度2022校园招聘量子研究员
  8. 华夏常春藤_我如何在没有常春藤大学学位的情况下从微软,亚马逊和Twitter获取报价...
  9. 专业铃声制作软件Adobe Audition使用教程
  10. E680I通过蓝牙串口传送图像