桌面应用程序与web应用程序的对比
对两者的理解:
桌面应用程序主要为C/S型模式(客户机 / 服务器),像我们电脑上的程序:office、QQ、chrome属于此类;
web应用程序主要为B/S型模式(浏览器 / 服务器),简单来说,web程序是通过web(简单理解为浏览器)的应用程序,像淘宝网、QQ邮箱属于此类。
开发中两者的比较:
桌面应用程序:缺少共享、以windows窗口的形式存在,开发过程中需要开发服务器端和客户端,需要考虑不同OS的兼容,需要考虑注册表等;
web应用程序:维护成本低,以网页的形式存在,只需要开发服务器端,需要考虑不同浏览器的兼容;
两者都需要考虑PC端和移动端平台的兼容性。
web应用工作原理:
web开发:
web开发又分为前端和后端。前端主要负责页面的展示,后端则是业务逻辑的实现,简单理解:我们能看到的界面就是前端所产生的,后端是与数据打交道,数据处理完后交由前端以符合人审美的方式显现出。
以下内容来源于做一个完整的Java Web项目需要掌握的技能的笔记
Web开发中经典的MVC模式(Model-View-Controller。View,就是指表现层,存在于前端代码中;Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁,Controller,Model存在与后端代码中;在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道))
由此可知:一个Web 项目前端需要表现层,后端有controller层,service层,dao层,持久层。
需要用到的技术:
在表现层,除了html,css,js,ajax,jsp等基础知识,在实际开发中,我们还会用到许多框架技术,比如tiles,velocity,freemarker等模板技术来简化表现层的开发。
在持久层,除了jdbc外,还有Mybatis,Hibernate等框架来提高开发效率。
在Java Web中最耀眼的当属Spring了,Spring作为一个贯穿整个项目的框架,为项目开发带来依赖注入,面向切面编程的功能。
除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库,MongoDB,Redis。