想要做一个完整的Javaweb项目需要掌握哪些技能

近期,刚刚完整的接触了一个Javaweb的项目,综合自己在做项目的过程,列举了一些所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习。

在前端没有那么火的前几年,或者说在经典的Java Web的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端。当然只懂得Jsp是不够的还需要懂html,css,js,ajax等一些前端的基础技术,Jsp技术在其中扮演外层包装的角色。那么后端呢?后端是由于一些实现了业务逻辑Java代码和数据库组成。

说到这,就可以推出Web开发中经典的MVC模式,Model-View-Controller。View,,就是指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。

有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。在更加大型的网站中,会出现更加复杂的架构,比如dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,但在这里,我们就不深入讨论复杂架构了。

所以以上我们看到,一个Web 项目前端需要表现层,后端有controller层,service层,dao层,持久层。在表现层,除了刚才提到的html,css,js,ajax,jsp等基础知识,在实际开发中,我们还会用到许多框架技术,比如tiles,velocity,freemarker等模板技术来简化表现层的开发。在持久层,除了jdbc外,还有Mybatis,Hibernate等框架来提高开发效率。

除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库,MongoDB,Redis。

上面说了好多,可能很多小伙伴看起来比较杂乱,我整理了一些知识点,大家可以参考一下。

知识点列表:

开发:

视图层技术——

HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker

持久层技术——MyBatis,Hibernate

Spring , Spring MVC

项目构建工具Maven

日志Log4j

版本控制 Git

数据库技术:

SQL语句

参数调优

操作系统:

熟练掌握一种Linux系统,原理,Shell命令

服务器技术:

熟练使用并理解一个应用服务器技术的原理(Tomcat)

熟练使用并理解一个Web服务器技术的原理(Nginx)

附加

缓存技术:

熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)

非关系型数据库

熟练使用并理解一种非关系型数据库(MongoDB)

中间件技术:

JMS:activeMQ和kafka

RPC: Dubbo

设计模式:

了解并能够使用几种最主要的设计模式

网络:

熟练使用并理解一个网络开发技术(Netty)

熟悉http,TCP协议

Java虚拟机:

熟悉jvm运行原理,内存分布

jvm参数调优

掌握了以上知识点,恭喜你,你已经可以开始写Java Web项目了。

原文地址:https://www.cnblogs.com/qf-dd/p/10180700.html

时间: 2024-10-04 15:35:34

想要做一个完整的Javaweb项目需要掌握哪些技能的相关文章

做一个完整的Hadoop项目

 1. 完整的数据流图 由同ip访问的次数: SQL查询 select ip,count(ip) from tablename Group by ip; 基于Hadoop分析 使用Hadoop分析,需要两轮的Mapreduce处理 Hive不支持对数据的更改和添加 原文地址:https://www.cnblogs.com/zhichun/p/11355777.html

react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redux-saga的核心配置会加以讲解,通过这个项目,可以系统的了解react技术栈的主要知识,避免搭建一次后面就忘记的情况. 从webpack开始 思考一下webpack到底做了什么事情?其实简单来说,就是从入口文件开始,不断寻找依赖,同时为了解析各种不同的文件加载相应的loader,最后生成我们希望的

自己想要做一个网站应该怎么做

软件开发和网站开发完全是两个不同的,两个地方侧重的是不一样的.软件开发是属于手机端的开发,主要面向是安卓,ios开发,网站开发是电脑端的开发,语言分很多种:常用的有java.php..net,每个语言都有自己的特点和风格.软件开发主要分两种安卓开发和ios开发,安卓开发学习书籍书的话建议买 精通Android2 ,或者 Android2高级编程 这两本书,讲解的细致,但是一定要结合sdk来看.看完之后就可以自己动手做做项目了.对于java基础,我现在的感觉是 如果要深入学习android平台,j

做一个完整的人

一个完整的人首先要接纳自己的不足和缺点. 每一个人都有缺点,都有犯错误的时候,要承认自己的平凡,做一个真实的自己,这样你才会拥有快乐. 如果有一天,别人说你已经如此完美,如此优秀了,这并不是什么好事,那个时候你会发现人生其实也就这样,生无可恋,没有动力,就好像玩游戏开挂一样,世界无敌了之后只有一个想法就是想死. 我们要获取欢愉的途径只有承认自己的不足,接纳自己的消极,接纳自己的真实的想法. 没有谁是永远积极的,也没有人永远充满激情.包括那些侃侃而谈的大师,包括那些痴迷研究的教授,包括马云,包括拿

突发奇想想学习做一个HTML5小游戏

前言: 最近一期文化馆轮到我分享了,分享了两个,一个是关于童年教科书的回忆,一个是关于免费电子书的.最后我觉得应该会不敌web,只能说是自己在这中间回忆了一下那个只是会学习的年代,那个充满梦想的年代.有人说如果一个人开始回忆童年的时候,那么他开始变老了,不知道是不是这样一个原因,我突然想起了很多以前的老朋友,开始想起了一些童年时期的玩伴.也就想做这样一款简单的游戏,也只是单纯的想回忆一下童年. 计划: 游戏其实很简单,我们把它叫着裤裆棋,又叫什么狗卵坨还是什么的,有些记忆模糊了,反正大致是这样子

做一个完整的Java Web项目需要掌握的技能

原文链接:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看

做一个完整的Java Web项目需要掌握的技能[转]

转自:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看了.

《从零开始做一个MEAN全栈项目》(2)

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习.   上一节简单介绍了什么是MEAN全栈项目,这一节将简要介绍三个内容:(1)一个通用的MEAN项目的技术架构,(2)为什么我们要打造单页应用,(3)本系列项目的技术架构和开发计划.希望通过这三个问题,我们能够对本项目产生一个全局视角. 实现一个常见的MEAN全栈项目的核心就是RESTful API.这个接口通常是用MongoDB, Express, Node.js实现的,而单页应用(SPA)由AngularJ

(原创)一个完整的机器学习项目是怎么建立起来的

在这篇文章中,将介绍机器学习项目的流程 明确问题 首先,我们需要预览这个项目.项目的目的是什么,以房价预测为例,数据为StatLib的加州房产数据,那么目的就是预测街区的房产价格中位数. 划定问题及分析 要知道商业目的是什么,毕竟建立模型不是最终目的.比如说,目的是输出一个价格传给另一套系统来判断是否值得投资以及利润是多少. 要知道现在的解决方案效果怎么样,比如会给出一个现解决方案的误差率是alpha. 现在我们可以进一步研究问题,明确这个问题是监督/非监督,还是强化模型?是分类/回归,还是聚类