【学习路线图】JavaWeb学习必备知识点!!!搞起来

比特觅月使
• 阅读 1085

首先在详述Javaweb学习路线之前,先简单描述下JavaWeb应该了解和学习到的东西:什么是JavaWeb、JavaSE、JDBC、数据库基础、HTML+CSS和JS等Web前端内容、javaweb三大组件、Java三大框架等。

一、什么是JavaWeb

  Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。所以,总的来说JavaWeb主要服务器端的应用;在B/S架构中用Java语言来编写Server中的内容以及数据库的搭建和数据的存储,使Server能与browser进行通信。

B/S架构结构图:

【学习路线图】JavaWeb学习必备知识点!!!搞起来

二、JavaSE学习路线

  Java SE 是Java平台标准版的简称,其包括基础语法、面向对象、工具类、集合框架和框架底层原理。

  基础语法:包括基础数据类型,引用数据类型,流程控制,数组,类与方法,文档注释,面向对象概念,面向对象特性(封装、继承、多态、抽象),接口的概念(耦合问题),内部类,数据类型转换,字符串处理、数学运算、日期与时间处理,i/o流操作,多线程,文件操作,泛型,集合框架(List),枚举,反射机制。等。

在j2se阶段,重在熟练掌握if语句、for循环的运用,接口、继承、构造方法的理解和使用,学会查API文档。<br>这个阶段的难点在于集合、泛型、jdbc等内容,需要了解其基本的用法和意义。 

三、JDBC原理

  jdbc是Java数据库连接(java DataBase Connectivity)技术的简称,由一组使用java编写的类与接口组成,可以为多种关系数据库提供统一访问。Sun公司提供了JDBC的接口示范 ——JDBC API ,而数据库厂商或第三方中间厂商根据该接口规范提供针对不同数据库的具体实现——JDBC 驱动。 主要需要了解JDBC关于数据库的接口,包括JDBC原理,JDBC连接库,JDBC API。

四、数据库基础

  可使用SQLserver、MySql、Oracle,三种可任选一种,并且配合JDBC一起进行学习。须掌握Java链接数据库的语句和有关数据库的操作,比如增删改查。

数据库阶段可以说是从只会编一些没什么实际作用的死程序,到能够开发小型项目的转折点,以上三种数据库至少掌握其中一种,个人建议从Mysql入手。当然数据库的种类不止这三个,
这里所列的是行内使用最多的数据库。

五、Web前端内容

  包括HTML+CSS、JavaScript基础,jQuery、Bootstrap、UI框架,Ajax基础。

作为做后端的人,前端的基础也是必不可少的。如果以后想做前端的话,js是关键。如果想走前端,vuejs跟nodejs不可少。如果是后端,Ajax跟Bootstrap框架也是不可少的。

六、JavaWeb三大组件

  JavaWeb三大组件包括,Servlet组件(接受请求,响应数据),Filter组件(过滤,拦截请求),Listener组件(监听器),这三大组件构成了javaWeb核心内容,也是作为后端来说,JavaWeb最重要的内容。

Servlet组件:
     什么是Servlet组件:处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西。

整个过程为:

客户端发送请求至服务器端;
服务器将请求信息发送至 Servlet;
Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
服务器将响应返回给客户端。
   【学习路线图】JavaWeb学习必备知识点!!!搞起来

  

详细解释,见文章底部链接。

Filter组件:
  什么是Filter组件:Fileter又被通俗称为过滤网,它是为了把不符合规则的请求和加密文件在中途拦截或修改。

【学习路线图】JavaWeb学习必备知识点!!!搞起来

从上面的图,可以看出一个Filter的工作流程:

一个http请求过来之后

首先进入filter,执行相关业务逻辑
若判定通行,则进入Servlet逻辑,Servlet执行完毕之后,又返回Filter,最后在返回给请求方
判定失败,直接返回,不需要将请求发给Servlet
通过上面的流程,可以推算使用场景:

在filter层,来获取用户的身份
可以考虑在filter层做一些常规的校验(如参数校验,referer校验等)
可以在filter层做稳定性相关的工作(如全链路打点,可以在filter层分配一个traceId;也可以在这一层做限流等)、
Filter详解见文章底部链接。

Listener组件:
  Listener监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext、HttpSession和 ServletRequest这三大域对象的创建、销毁事件以及监听这些域对象中的属性发生修改的事件。Servlet规范针对这三个对象上的操作,又把多种类型的监听器划分为三种类型:

域对象的生命周期监听:监听域对象自身的创建和销毁。
域对象的属性监听:监听域对象中属性的增加和删除。
感知监听(都与HttpSession域对象有关):监听绑定到HttpSession域中的某个JavaBean对象的状态的监听器。
监听三大范围是:请求范围,会话范围,全局范围。

Listener详解见文章底部链接。

七、Java三大框架

  Java三大框架为:Struts+Hibernate+Spring。Java三大框架主要用来做WEB应用。俗称的SSH整合框架。

  现在主流框架为SpringMVC+Spring+Mybatis(ibatis),也是我们俗称的SSM(SSI)框架。

  首个mvc模式的开源框架Struts以及后来的Struts2推出至今已经盛行了14年了,随着Spring等框架的推出和发展,使得Struts2由于大量的配置文件和独家标签库而显得相对笨重许多。这些开源框架,到底哪个好用,哪个会被取代之类的问题都不重要,因为他们都是开发的工具,作为工具来说,被更好用的工具替代是必然的,只是时间问题,所以在学习的过程中,一定要掌握工具的用法熟悉实现流程就可以了,不要死磕其实现原理。不过如果你想成为技术大牛,或者想自己也能开发一套框架出来用就另当别论了。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
JavaWeb 调用接口
JavaWeb 如何调用接口CreateTime2018年4月2日19:04:29Author:Marydon1.所需jar包!(https://oscimg.oschina.net/oscnet/0f139
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
比特觅月使
比特觅月使
Lv1
几度思归还把酒,拂云堆上祝明妃。
文章
3
粉丝
0
获赞
0