做一个完整的Java Web项目需要掌握的技能
一、网站的架构
一般来说,我们将网站分为前端和后端。
1.前端:负责页面的展示
由于html5的兴起,前端领域已经越来越火热,前端技术发展极快,主要使用设置好的框架配上展示的内容就可以实现一个基本的web网页,也可以完全从头开始,设计自己想要的web网页。主要涉及到HTML、CSS、JS、ajax,还有现在很流行的H5、HTML5……很多编程语言都可以用来编写基本的web网页,不过呢,现在谈的话题是围绕Java,那我们以Java的角度去看待网页项目。?
对于现在的互联网公司,前端工程师和Java工程师是完全不同的两种技术岗位。在前端没有那么火的前几年,或者说在经典的Java Web的开发模式中,我们使用JSP技术来作为展示层的实现,其实也就是所谓的前端。当然只懂得JSP是不够的还需要懂HTML、CSS、JS、ajax等一些前端的基础技术,JSP技术在其中扮演外层包装的角色。
2.后端:业务逻辑的实现
那么后端呢?后端是由于一些实现了业务逻辑Java代码和数据库组成。说到这,就可以推出Web开发中经典的MVC模式,Model-View-Controller。View,,就是指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。在更加大型的网站中,会出现更加复杂的架构,比如dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,但在这里,我们就不深入讨论复杂架构了。
3.制作Java Web项目需要掌握的技能
3.1 开发
- 视图层技术——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker
- 持久层技术——MyBatis,Hibernate
- Spring , Spring MVC
- 项目构建工具Maven
- 日志Log4j
- 版本控制 Git
3.2数据库技术
- SQL语句
- 参数调优
3.3 操作系统
- 熟练掌握一种Linux系统,原理,Shell命令
3.4 服务器技术
- 熟练使用并理解一个应用服务器技术的原理(Tomcat)
- 熟练使用并理解一个Web服务器技术的原理(Nginx)
3.5 缓存技术
- 熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)
非关系型数据库 - 熟练使用并理解一种非关系型数据库(MongoDB)
3.6 中间件技术
- JMS:activeMQ和kafka
- RPC: Dubbo
3.7 设计模式
- 了解并能够使用几种最主要的设计模式
3.8 网络
- 熟练使用并理解一个网络开发技术(Netty)
- 熟悉http协议(短连接),TCP协议(长连接)
3.9 Java虚拟机
- 熟悉jvm运行原理,内存分布
- jvm参数调优