文档章节

JavaWeb学习路线

o
 osc_8q50i7hp
发布于 2019/04/21 22:07
字数 1841
阅读 12
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

 

  • 首先在详述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架构结构图:

  二、JavaSE学习路线

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

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

  在j2se阶段,重在熟练掌握if语句、for循环的运用,接口、继承、构造方法的理解和使用,学会查API文档。
这个阶段的难点在于集合、泛型、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是为了解决实现动态页面而衍生的东西。

整个过程为:

  1. 客户端发送请求至服务器端;
  2. 服务器将请求信息发送至 Servlet;
  3. Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
  4. 服务器将响应返回给客户端。

  

  

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

  • Filter组件:

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

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

一个http请求过来之后

  1. 首先进入filter,执行相关业务逻辑
  2. 若判定通行,则进入Servlet逻辑,Servlet执行完毕之后,又返回Filter,最后在返回给请求方
  3. 判定失败,直接返回,不需要将请求发给Servlet

通过上面的流程,可以推算使用场景:

  1. 在filter层,来获取用户的身份
  2. 可以考虑在filter层做一些常规的校验(如参数校验,referer校验等)
  3. 可以在filter层做稳定性相关的工作(如全链路打点,可以在filter层分配一个traceId;也可以在这一层做限流等)、

Filter详解见文章底部链接。

  • Listener组件:

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

  1. 域对象的生命周期监听:监听域对象自身的创建和销毁。
  2. 域对象的属性监听:监听域对象中属性的增加和删除。
  3. 感知监听(都与HttpSession域对象有关):监听绑定到HttpSession域中的某个JavaBean对象的状态的监听器。

监听三大范围是:请求范围,会话范围,全局范围。

Listener详解见文章底部链接。

  七、Java三大框架:

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

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

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

 

 

注:

  1. 推荐使用软件:Intellij IDEA 下载及破解教程地址:https://www.cnblogs.com/jajian/p/7989032.html              注册码申请地址:http://idea.lanyus.com
  2. 推荐菜鸟教程:http://www.runoob.com配合学习
  3. 参考文章:https://blog.csdn.net/qq_35827280/article/details/80390526
  4. Servlet讲解参考文章:https://www.cnblogs.com/whgk/p/6399262.html
  5. Filter讲解参考文章:https://blog.csdn.net/liuyueyi25/article/details/79189405
  6. Listener讲解参考文章:https://www.jianshu.com/p/b85c535dc5fd
  7. SSM考文章:https://blog.csdn.net/qq_41701956/article/details/81215309                           SSH参考文章:https://www.cnblogs.com/MrzhangKk/p/5206356.html
  8. JavaWeb学习路线参考文章:https://blog.csdn.net/qq_35827280/article/details/80390526
o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0
TBB学习:并行循环

http://www.cppprog.com/2009/0325/92.html

Waiting4you
2009/05/12
674
0
SmartGWT学习整理 2、理解核心中的核心DataSource

SmartGWT学习整理 2、理解核心中的核心DataSource DataSource之所以重要,是因为它负责所有的与服务器的数据交互,几乎所有的控件都离不开它。 可以这样说,理解了DataSource就掌握了SmartGW...

st97
2010/11/16
2K
2
NGUI学习基于NGUI的序列帧动画制作

首先导入NGUI包,由于我是在NGUI的基础上进行了简单的扩展。所以还要额外加上几个需要用到的类。我就从新把自己新加的方法放在NGUI中打包。 导入NGUI包以后可以看到有这一个菜单。 创建一个序...

orientalfashion
2013/05/28
5.2K
1
MyBatis学习手记(二)MyBatis缓存机制

MyBatis学习手记二 前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html 一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包 链接:https://github.com...

xiaolei123
2015/09/15
2K
4

没有更多内容

加载失败,请刷新页面

加载更多

旋转子段 (思维stl)

题目: 大概意思就是给你一个序列,你可以选择一段区间使它左右翻折一遍,然后呢,从1到n找一遍,看a[i]==i的数最多是多少。 其实刚才我已经把暴力思路说出来了,枚举每一个区间长度,枚举每...

osc_npw5uz1o
13分钟前
0
0
回忆录

前言? 果然退役的蒟蒻不仅没有留下有价值的学习资料,甚至连能看的颓废资料都没有。 其实这一年时间里一直想写一篇像样的回忆录。 想把高三也写进去?现在高三结束了。没时间写?现在有了。...

osc_z9ptnny9
14分钟前
9
0
mysql启动失败,unit not found

1 mysql启动 Failed to start mysqld.service: Unit not found. 2 查询/etc/init.d/下是否存在mysqld ll /etc/init.d/ | grep mysqld 发现该目录下并没有mysqld的文件,若存在,请备份一下 ...

osc_um3gbrdm
16分钟前
5
0
域名解析到底应该肿么破——详解域名解析类型

原文地址:https://www.wjcms.net/archives/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E5%88%B0%E5%BA%95%E5%BA%94%E8%AF%A5%E8%82%BF%E4%B9%88%E7%A0%B4%E8%AF%A6%E8%A7%A3%E5%9F%9F%E5%90%8D%......

神兵小将
16分钟前
0
0
Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

osc_3r4js8qy
18分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部