适合JavaWeb入门小白必备储备知识

 前言

最近已经工作的小伙伴在和明哥闲聊的时候说自己公司在做Java Web项目,说一些知识点不是很清楚,需要我帮忙梳理一下学习的路径,这里明哥记录一下写了这篇文章做总结,列举出在做项目的整个过程中,所需要用到的技能和知识点,给没有完整接触过完整Java Web项目的小伙伴一个比较完整的“大局观”,也以便于以后的学生有针对性地学习,本篇文章讲解内容比较初级适合小白,并不适合有经验的开发者。

一、理论知识介绍

大家应该都知道现在的互联网公司前端工程师和Java工程师是完全不同的两种技术岗位,首先我们从网站架构谈起,常规来说,我们将网站分为前端和后端,前端主要负责页面的展示,后端则是业务逻辑的实现,但是由于HTML5的兴起,前端领域已经越来越火热,前端技术发展极快,这里明哥先不细讲前端的内容,那么我们还是不要脱离主题以Java的角度去讲解这篇文章。在很早的Java Web的开发模式中,我们使用JSP技术来作为展现层的实现,其实也就是我们常说的前端,当然如果你只懂得JSP那还是远远不够的,你还需要懂HTML、CSS、JavaScript、AJAX等一些前端的基础技术,那么JSP的技术在其中扮演的就是外层包装的角色,那么后端是什么呢?后端其实就是由于一些实现了业务逻辑Java代码和数据库组成的一部分。

那么我们讲到这里其实就可以来讲解一下,Web开发中最经典的MVC设计模式,MVC设计模式分为这三类(Model----View----Controller)Model 是用来承载数据的抽象结构,View表示的是指表现层,Controller则是View和Model的桥梁。View存在与前端代码中,Controller 与 Model存在与后端代码中,在后端代码中为了保证代码的整洁,易读性,一般会采用分层的操作,自顶向下分为Controller层,Servlet层,Dao层,数据层或者叫持久层(直接与数据库交互的),那么有的时候为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离,在更加大型的网站中,会出现更加复杂的架构,比如Dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,那么在本片文章中我们就不深入讨论复杂架构的问题。由此可见,一个Web 项目前端需要表现层,后端有Controller层、Servlet层、Dao层、持久层、在表现层里除了刚才提到的HTML、CSS、JavaScript、AJAX、JSP等基础知识,在实际开发中,我们还会用到许多框架技术,比如 Tiles、Velocity 、Freemarker等模板技术来简化表现层的开发、在持久层除了现有的JDBC外,还有Mybatis、Hibernate等框架来提高开发效率。在Java Web中最耀眼的框架当属Spring了,Spring作为一个贯穿整个项目的框架,为项目开发带来依赖注入,面向切面编程的功能,除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库MongoDB、Redis。

我们来说说服务器这个概念,我们应该在没有真正接触计算机专业领域之前早就听说过,比如以前打游戏觉得卡的时候大家都时不时会用到服务器这个词汇。但是我真正理解并研究服务器是在学习Tomcat、Jetty、Nginx、Apache之后才开始的,那么服务器到底什么呢?服务器这个概念其实很简单,就是一台电脑,那它和我们日常用的电脑有什么区别?

第一、它一般没有显示器它只有主机。

第二、它的操作系统不同于我们常用的Windows 、MacOS更多的是Linux系统。

第三、它运行了服务器端软件

比如我们刚刚提到的Tomcat , Jetty , Nginx,Apache其实这些都是服务器软件。只是主机运行了这些软件,所以有时候大家就混淆了叫法。所以所谓的数据库服务器,小伙伴们应该也就明白了,其实就是运行了数据库的主机、说到服务器,我们所需要掌握的重点知识就是服务器操作系统、也就是Linux系统,比如CentOS 、Ubuntu等。

那么讲解到这里如果你已经掌握上述内容,其实现在的你已经可以开始写Java Web项目,但是你可能会遇见一个问题只会写而不会部署,我们的项目仍然不能拿出来用,那么我们的项目代码已经写好,那接下来我们应该怎么办?这个时候我需要找一个容器来运行我们的代码,这里的容器可不是指Java里的数据类型,而是指应用服务器,此处要特别注意区分应用服务器与Web服务器,至于Web服务器是什么?那么请继续看下去,很多人会问我们为什么需要应用服务器?顾名思义,应用服务器就是用来运行我们的应用代码的,这里需要特别提到的是,Java Web用到的是JSP,Servlet这样的动态Web技术,而这些技术的代码是必须运行在应用服务器中的,所以当我们写好应用代码后,需要把自己的应用部署到应用服务器上,应用部署好后,那么用户们该怎么访问呢?直接访问应用服务器吗?这个时候就需要我们的Web服务器出场了。

 

 

在互联网上,最强大的应用层协议当属HTTP协议,人们在访问网站就是通过HTTP协议来进行访问,而Web服务器就是支持HTTP协议的服务器,所以就叫HTTP服务器,Web服务器接收HTTP请求,然后再将请求转交给应用服务器。有人会问用户直接访问应用服务器不好吗?为什么要给Web服务器,然后再到应用服务器?从功能实现上来说,是可以的,许多应用服务器,比如Tomcat是具有web服务器的功能,所以直接访问也可以。但是由于在实际的生产环境中,由于负载均衡,CDN加速等原因,我们还是需要在应用服务器的前端再加一个Web服务器来提高访问效率,常用的有Nginx,Apache这样的服务器。 

讲解到这里我们就把一个简单的完整的Java Web项目所需要具备的过了一边,我们可以来简单回顾一下,首先我们需要利用各种框架和开发技术写出应用代码,那么接下来,我们需要一个台安装了Linux系统的主机,在上面安装好Web服务器软件,应用服务器软件,再把我们的应用代码部署到应用服务器上。现在我们只需要获取到主机的IP地址,就能够远程访问应用了。

二、所需要具备的知识点列表:

JavaWeb需要具备的知识点列表
开发
1、视图层技术

HTML、CSS、JavaScript、AJAX、Tiles、Velocity、FreeMarke

2、持久层技术MyBatis、Hibernate、(Spring 、Spring MVC)
3、项目构建工具Maven
4、日志Log4j
5、版本控制 Git
                                                                数据库技术
1、SQL语句2、参数调优

                                                                操作系统

                                          熟练掌握一种Linux系统于原理同时掌握Shell命令
服务器技术
1、熟练使用并理解一个应用服务器技术的原理(Tomcat)
2、熟练使用并理解一个Web服务器技术的原理(Nginx)

                                                                   附加技术

缓存技术
1、熟练使用并理解一种缓存技术(Redis、Memcache、EhCache)
2、熟练使用并理解一种非关系型数据库(MongoDB)
3、非关系型数据库
中间件技术
1、JMS:activeMQ和kafka2、RPC: Dubbo
设计模式
1、了解并能够使用几种最主要的设计模式
网络
1、熟练使用并理解一个网络开发技术(Netty)
2、熟悉HTTP/TCP协议
Java虚拟机
1、熟悉JVM运行原理,内存分布
2、JVM参数调优

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈老说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值