2020.10.14 收获

今天开始学习Javaweb相关内容

 

1、什么是Javaweb?

Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括: web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

2、Javaweb要学哪些东西?

(1)Java基础知识

要想学好javaweb,Java基本知识必须要扎实,像是面向对象基础、集合类、异常处理、IO流、多线程等技术都是经常会用到的

(2)前端知识

虽然目前前后端分离的趋势已经很明显,但作为一个学习者很多东西都需要掌握。

至少需要掌握 html,js,css,才能够看懂前端的代码

要懂得在浏览器上使用开发者工具排查请求问题

(3)HTTP和web基础知识

作为一个Javaweb工程师,打交道最多的就是http请求,Tomcat已经帮我们把HTTP报文请求和处理的问题解决了,我们只需要告诉tomcat,要返回什么内容给前端就好了。

关于http请求,需要了解的东西很多,包含计算机网络的基础知识、http协议的报文结构和常见方法,以及url和dns解析也需要我们理解

web应用里面还有两个常用的技术,叫做session和cookie

session一般存在于服务器上,用于记住用户状态,而cookie一般保存在浏览器上,用于记录个人的一些常用信息,比如登陆某个网站的账号密码

session和cookie一般用于解决应用问题,而网络通讯里还有一个重要的内容就是安全问题,防止不法分子盗取信息,诈骗盗刷。这里就涉及到https协议等

还有很多web相关的技术知识,需在实践中更好地进行学习和理解

 

(4)数据库
数据库作为一切web应用的基石,没有它就没有数据,应用就毫无价值。
几乎没有哪个web应用是不用数据库的,现在市面上最流行的仍然是MySQL数据库,想要做一个web应用,先学会sql的基本语法吧,懂得建表,懂得在sql里CRUD,这样你才能够回到代码里继续CRUD(增删改查)当然了,关于数据库要学习的知识远不止于此。

(5)servlet和jsp
以前我们用这两个东西是直接用,现在我们不直接用,框架会把servlet封装起来,我们只需要写一些喜闻乐见的controller就可以了,而jsp早就已经退出历史舞台了。
现在的Java Web其实就是spring全家桶+web相关技术,所以这两个东西可以用作入门级的知识了解,并不需要投入过多精力。

(6)spring系列
spring全系列主要包括spring、springmvc和springboot,当然还有springcloud,主要是用于分布式服务的,我们一个小小的Java Web就不请它出来了。对于前面三样技术,很多人早就已经不陌生了。


spring颠覆了Java中实例管理的方式,实例的管理被统一到spring的bean容器中,而很多切面型逻辑也被AOP这种处理方式给解放出来了,IOC和AOP是spring最令人称道的两个特点。


而到了springmvc时代,分层结构开始愈发流行,model层用于映射数据,view用于渲染数据和前端交互,controller则用来分发请求。而对于很多的Javaweb应用,他们的代码结构一般也是controller-service-dao这样的分层结构。springmvc制霸了Java Web应用很久了,直到它的进化版springboot的出现。


springboot横空出世,直接砍掉了复杂的spring配置,转而用注解的方式简化了开发流程,并且直接吃掉了tomcat了,一切从简,springboot的出现使得JavaWeb的学习成本更低了。

 

(7)Java Web实用工具和技术
接下来这些内容,都是Java Web周边的一些开源技术组件,它们有的是大工程,有的是小项目,总之,它们都是这个技术生态中不可缺少的一部分
1、Maven做一个成熟的构建工具,Maven不仅可以帮你管理依赖,还能帮你管理工程目录,比如我们的工程为什么目录格式都是一样的,有src包也有test包,这就是遵守了maven的规范,这种基于约定的管理方式,使得maven可以非常轻量化地帮你管理和构建项目。
2、Tomcat Tomcat自然是Java Web中的中坚力量,毕竟大部分的Java Web应用都运行在tomcat上,作为一个Java Web工程师,还是要尽量多了解Tomcat的实现原理和运行原理,这也有助于你理解web应用的运行模式,即使以后换了别的应用容器你也可以快速上手。
3、日志组件和单元测试组件日志组件和单元测试组件都是很实用的技术组件,平时自己搞项目的话可能不会太在意,但是在公司里的项目是一定要用好这两个东西的,打好了日志,才能够排查和监控问题,而单元测试组件,可以帮你检查代码的正确性,提高代码质量,把bug挡在门外。
4、orm框架 orm框架是什么,其实就是为了更好地进行对数据库的CRUD,而设计出来给Java使用的持久层映射框架,比如mybatis和hibernate,虽然本质上还是在写sql,但是我们可以直接通过对一个对象进行操作,并且把这个操作映射成一个sql语句,大大简化了我们操作数据库的流程。

 

(8)进阶后端技术

Java Web应用的技术范围很广,小项目可能用到上面这些东西就够了,而大项目,一些分布式应用,要涉及的东西就太多了。
1、缓存缓存可以帮助数据库缓解读写压力,一般用于数据库读写负载无法支撑业务场景的情况,像是Redis、memcache这类缓存,都是比较常用的,缓存在web应用中也经常使用。
2、消息队列消息队列用于处理多个应用的消息,负责在分布式应用之间进行通信,也适用于高并发大流量的场景,比如电商购物,下单消息太多,下游处理不来,通过消息队列先存储一些,处理另外一些,可以达到限流和削峰的目的
3、分布式服务分布式服务区别于本地服务,一般用于多个应用之间的服务调用,比如应用A有一个服务S1,应用B有一天个服务S2,S1要调用S2,只能通过网络传输才能实现,分布式服务解决的就是这个问题。
除此之外,还有像负载均衡、反向代理、分布式事务、分布式数据库等复杂的应用技术,这里不再——列举。

 

 

 

转载于知乎

 

posted @ 2020-10-14 20:31  第厘  阅读(66)  评论(0编辑  收藏  举报