自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 JavaWeb服务器字符集与Oracle数据库字符集不相同的解决方案

1、项目环境: JavaWeb项目,字符集UTF-8,框架Spring、SpringMVC、Hibernate、JPA、SpringData、Shrio; 连接数据库使用阿里巴巴的Druid连接池; 数据库Oracle11g,字符集US7ASCII; 2、数据库驱动: 数据库驱动是解决这...

2019-05-29 22:33:00 253 0

原创 网络基础知识——计算机网络出现的背景

1、从独立模式到网络互联模式: 起初,计算机以单机模式被广泛使用(这种方式也叫独立模式)。然而随着计算机的不断发展,人们已不再局限于单机模式,而是将一个个计算机连接在一起,形成一个计算机网络。连接多台计算机可以实现信息共享,同时还能在两台物理位置较远的机器之间即时传递信息。 ...

2020-04-07 21:27:40 38 0

原创 探索服务器内部——服务器程序解释请求消息并做出响应

1、将请求的URI转换为实际的文件名: 服务器程序会根据收到的请求消息中的内容进行相应的处理,并生成响应消息,再通过write返回给客户端。请求消息包括一个称为“方法”的命令,以及表示数据源的URI(文件路径名),服务器程序会根据这些内容向客户端返回数据,但对于不同的方法和URI,服务器内部的工...

2020-02-27 21:22:17 102 0

原创 探索服务器内部——服务器的接收操作

1、网卡将接收到的信号转换为数字信号: 到达服务器的网络包其本质是电信号或者光信号,接收信号的过程和客户端其实是一样的。具体过程在之前的文章中已经介绍过,这里简单回顾一下。 接收操作的第一步是网卡接收到信号,然后将其还原成数字信息。局域网中传输的网络包信号是由1和0组成的数字信息与用来同步的时...

2020-02-23 14:25:46 62 0

原创 探索服务器内部——服务器概览

1、服务器程序的结构: 服务器和客户端在网络相关的部分,如网卡、协议栈、Socket库等功能都是差不多的。无论硬件和OS如何变化,TCP和IP的功能都是一样的,或者说这些功能规格都是统一的。 服务器需要同时和多个客户端通信,所以服务器必须把握每一个客户端的操作状态。因此一般每有一个客户端连接进...

2020-02-22 23:42:27 24 0

原创 探索服务器端的局域网——内容分发服务

1、利用内容分发服务分担负载: 缓存服务器部署在服务器端还是客户端,其效果是有差别的(如下图所示)。 当缓存服务器放在服务器端时,可以减轻Web服务器的负载,但无法减少互联网中的流量(如上图a)。这一点上,将缓存服务器放在客户端更有效(如上图b)。互联网中会存在一些拥塞点,通过这些地方会比...

2020-02-12 18:07:39 43 0

原创 探索服务器端的局域网——使用缓存服务器分担负载

1、如何使用缓存服务器: 缓存服务器是一台通过代理机制对数据进行缓存的服务器。当进行中转时,它可以将Web服务器返回的数据保存在磁盘中,并可以代替Web服务器将磁盘中的数据返回给客户端。这种保存的数据称为缓存,缓存服务器指的也就是这样的功能。 Web服务器需要执行检查网址和访问权限,以及在页面...

2020-02-10 23:38:56 51 0

原创 探索服务器端的局域网——通过分配请求来平衡负载

1、性能不足时需要负载均衡: 当服务器的访问量上升时,增加服务器线路的带宽是有效的,但并不是网络变快了就可以解决所有问题。高速线路会传输大量的网络包,这会导致服务器的性能跟不上。尤其是CGI等应用程序动态生成数据的情况下,对服务器CPU的负担更重,服务器性能的问题也会表现得越明显。 在这种情况...

2020-02-02 18:55:36 30 0

原创 探索服务器端的局域网——防火墙的结构和原理

1、主流的包过滤方式: 防火墙可以分为包过滤、应用层网关、电路层网关等几种方式,其中任何一种方式都可以实现防火墙的目的,但出于性能、价格、易用性等因素,现在最为普及的是包过滤方式。 2、如何设置包过滤的规则: 网络包的头部包含了用于控制通信操作的控制信息,只要检查这些信息,就可以获得很多有用...

2020-01-26 17:35:28 38 0

原创 探索服务器端的局域网——Web服务器的部署地点

1、在公司里部署Web服务器: 网络包从互联网到达服务器的过程,根据服务器部署地点的不同而不同,主要有下面三种情况(如下图)。 第一种方式是最简单的,服务器直接部署在公司网络上,并且可以从互联网直接访问。这种情况下,网络包通过最近的POP中的路由器、接入网以及服务器端路由器之后,就直接到达...

2020-01-15 21:16:37 80 0

原创 探索接入网和网络运营商——跨越运营商的网络包

1、运营商之间的连接: 前面解释了什么是POP和NOC,让我们再回到运营商内部,看一看网络包到达POP路由器之后,是如何前往下一站的。 第一种情况,最终目的地Web服务器和客户端是连接在同一个运营商中的,那么POP路由器的路由表中应该有相应的转发目标。运营商的路由器可以和其他路由器交换路由信息...

2020-01-07 21:58:25 63 0

原创 探索接入网和网络运营商——网络运营商的内部

1、POP和NOC: 通过之前的文章可以知道,网络包通过一系列的运输,已经到达了网络运营商的路由器。这里就是互联网的入口,网络包会从这里进入互联网内部(简单来说,此后网络包的传输轨迹就是通过路由器的不断转发向目的地前进)。 互联网的实体并不是由一个组织运营管理的单一网络,而是由多个运营商网络相...

2019-12-24 21:51:25 100 0

原创 探索接入网和网络运营商——接入网中使用的PPP和隧道

1、用户认证和配置下发: ADSL和FTTH接入网中,都需要先输入用户名和密码(运行商分配给用户的),登录之后才能访问互联网,而BAS就是登录操作的窗口。BAS使用PPPoE(Point-to-Point Protocol over Ethernet,以太网的点对点协议)方式来实现这个功能(也有...

2019-11-26 22:32:25 67 0

原创 探索接入网和网络运营商——光纤接入网(FTTH)

1、光纤的基本知识: FTTH是一种基于光纤的接入网技术,它的关键点在于对光纤的使用。光纤的结构如下图所示: 它是由一种双层结构的纤维状透明材质(玻璃和塑料)构成的,通过在里面的纤芯中传导光信号来传输数字信息。亮表示1,暗表示0(如下图所示)。 2、单模与多模: 不同材质的光纤其透...

2019-09-16 20:49:04 108 0

原创 探索接入网和网络运营商——ADSL接入网的结构和工作方式

1、互联网的基本机构和家庭、公司网络是相同的: 互联网的基本工作方式和家庭、公司网络一样,互联网也是通过路由器来转发包的,而且路由器的基本结构和工作方式也并没有什么不同。 当然也有不同之处,其中之一就是与转发设备间的距离。在家庭、公司网络中,与转发设备之间的距离不过几十米到几百米,在这种情况下...

2019-08-27 21:52:17 99 0

原创 探索集线器、交换机和路由器——路由器的附加功能

1、通过地址转换有效利用IP地址: 地址转换功能的出现背景是在进入20世纪90年代之后,互联网逐渐向公众普及,接入互联网的设备数量也快速增长。如此一来,如果为每台设备都分配IP地址,过不了多久,可分配的IP地址就用光了。 解决这个问题的关键在于固定地址的分配方式。这个时候就出现了我们现在常说的...

2019-08-11 20:52:19 32 0

原创 探索集线器、交换机和路由器——路由器的包转发操作

1、路由器的基本知识: 路由器的工作原理和交换机类似,都是通过查表判断包转发的目标,但是在具体的操作过程上还是有区别的。因为路由器是基于IP设计的,而交换机是基于以太网设计的。路由器的内部结构如下图所示: 通过更换网卡,计算机不仅可以支持以太网,也可以支持无线局域网,路由器也是一样,只要端...

2019-08-07 23:01:08 88 0

原创 探索集线器、交换机和路由器——交换机的包转发操作

1、交换机根据地址表进行转发: 在研究交换机是如何将网络包转发到目的地之前,先来看一下交换机的内部结构: 大家可以认为交换机的每个网线接口后面都是一块网卡,网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。但交换机的工作方式和网卡有一点不同。...

2019-07-30 21:06:13 47 0

原创 探索集线器、交换机和路由器——信号在网线和集线器中传输

1、每个包都是独立传输的: 网络包的收发其实非常类似邮递员在送信,只看信封不看里面的内容,同样地,转发设备在进行转发时也是不看数据的内容的。换句话说,HTTP请求的方法,TCP的确认响应和序号,客户端和服务器之间的关系,这一切都与包的传输无关。因此,所有的包在传输到目的地的过程中都是独立的,相互...

2019-07-21 23:29:42 50 0

原创 探索协议栈和网卡——UDP协议的收发操作

1、不需要重发的数据用UDP发送更高效: 之前文章中所提到的都是TCP协议,但是有些应用程序不使用TCP协议,而是使用UDP协议来收发数据。像DNS服务器查询IP地址的时候就是UDP协议。 TCP协议是为了将数据高效且可靠地发送给对方。为了实现可靠性就需要确认对方是否收到了我们发送的数据,如果...

2019-07-16 23:15:16 41 0

原创 探索协议栈和网卡——IP包与以太网的包收发操作

1、包的基本知识: 包是由头部和数据两部分构成的。头部包含目的地址等控制信息;后面就是委托要发送给对方的数据。 首先,发送方的网络设备会负责创建包。接下来,包会被发往最近的网络转发设备。当到达最近的转发设备之后,转发设备会根据头部中的信息判断接下来应该发往哪里。这个过程需要用到一张表,这张表里...

2019-07-16 00:09:51 103 0

原创 探索协议栈和网卡——从服务器断开并删除套接字

1、数据发送完毕后断开连接: 数据发送完毕的一方会发起断开过程,但不同的应用程序会选择不同的断开时机。以Web为例,服务器一方会发起断开过程(这里指的是HTTP 1.0 的情形,在HTTP 1.1 中,服务器返回响应消息之后,客户端还可以继续发起在一个请求消息,如果接下来没有请求发送了,客户端一...

2019-05-23 20:33:28 51 0

原创 探索协议栈和网卡——收发数据

1、将HTTP请求消息交给协议栈: 上一篇文章讲到了Socket库中connect组件委托协议栈实现连接服务器的操作,那么接下来就进入到了数据收发阶段,也就是Socket库中对应的write组件和read组件所实现的功能,以及委托到协议栈涉及的操作。 从Socket库的角度看,应用程序调用wr...

2019-05-22 21:01:37 80 0

原创 探索协议栈和网卡——连接服务器

1、连接是什么意思: 从应用程序的角度看,连接操作实际上就是调用Socket库中的connect组件,随后本地的套接字就会与服务器端的套接字连接。那么这个过程是怎么样的呢? 在套接字刚创建完的时候,是不知道通信对象是谁的。这个时候,应用程序就需要将服务器的IP地址和端口号等信息告知协议栈,这是...

2019-05-19 16:49:21 39 0

原创 探索协议栈和网卡——创建套接字

1、协议栈的内部结构: 协议栈作为操作系统中的网络控制软件我们在表面上是看不见的,所以接下来先对协议栈做个解剖。我们使用TCP/IP分层进行解析: 从上图中可以看出,协议栈内部分为好几个部分,分别承担着不同的功能。例如协议栈上半部分的两块,分别负责用TCP协议收发数据的部分和负责用UDP协...

2019-05-18 14:59:39 71 0

原创 探索浏览器内部——委托协议栈发送消息

1、数据收发操作概览: 在前面的几篇文章中讲述了发送消息的其实并不是浏览器(也可以是各种其他应用)本身,也不是DNS解析器本身,而是委托操作系统内部的协议栈向目标IP地址(一般是各类服务器)发送消息。那么接下来就来探索协议栈是怎么收发这些消息的。 简单来说,收发数据的两台计算机之间连接了一条数...

2019-05-15 22:27:04 80 0

原创 探索浏览器内部——全世界DNS服务器的大接力

1、DNS服务器的基本工作: DNS服务器的基本工作就是接收来自客户端的查询消息,然后根据消息的内容返回响应。 查询消息主要分为以下三种: (a)域名 服务器、邮件服务器(邮件地址中@后面的部分)的名称 (b)Class 在最早设计DNS方案时,DNS在互联网以外的其他网络中的应用也被...

2019-05-15 08:36:07 91 0

原创 探索浏览器内部——向DNS服务器查询Web服务器的IP地址

1、IP地址的基本知识: 上一篇文章从宏观上讲解了在浏览器输入URL或者通过点击超级链接等方式之后,浏览器所做的工作(解析URL和生成HTTP消息),那么在生成HTTP消息之后,我们就需要委托操作系统将消息发送给Web服务器。没错,浏览本身并不具备将消息发送到网络的功能。 但是在委托操作系统发...

2019-05-13 21:27:18 542 0

原创 探索浏览器内部——生成HTTP请求消息

1、从输入网址开始: 网址准确的来说应该叫URL(Uniform Resource Locator 统一资源定位符)。网址除了我们经常见到的“http:”(超文本传传送协议)开头的以外还包括例如“ftp:”“file:”“mailto:”等。不同的开头对应访问的服务器也各不同,例如访问Web服务...

2019-05-11 21:49:47 122 0

原创 JSR303定义的校验类型

空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格. @NotEmpty检查约束元素是否为NULL或者是EMP...

2019-03-12 16:02:53 37 0

转载 Spring使用定时注解写定时器

一、首先xml头部增加几个标签: xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://...

2019-01-31 17:16:45 60 0

原创 SpringMVC(Spring4)——JSON和拦截器

1.处理JSON: 步骤: 加入jar包: 编写目标方法,在方法上添加@ResponseBody注解: @ResponseBody @RequestMapping("/testJson") public Collection<Employee&a...

2018-12-28 14:19:49 222 0

原创 SpringMVC(Spring4)——RESTful CRUD

1.查询: @RequestMapping("/emps") public String list(Map<String, Object> map){ map.put("employees", employeeDao.g...

2018-12-28 10:37:54 144 0

原创 SpringMVC(Spring4)——视图

1.SpringMVC如何解析视图: 1.1 视图和视图解析器: 请求处理方法执行完成之后,最终返回一个ModelAndView对象。对于那些返回String、View或ModeMap等类型的处理方法,SpringMVC会在内部将它们装配成一个ModelAndView对象,它包含了逻辑...

2018-12-27 16:18:51 103 0

原创 SpringMVC(Spring4)——参数注解

1.请求处理方法签名: SpringMVC通过分析处理方法的签名,将HTTP请求信息绑定到处理方法的相应入参中。 SpringMVC对控制器处理方法签名的限制很宽松。 必要时可以对方法及方法入参相应的注解(@PathVariable、@RequestParam、@RequestHeader等...

2018-12-27 14:38:59 279 0

原创 SpringMVC(Spring4)——入门

1.简介: Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的的MVC框架之一。 Spring3.0之后超越了Struts2,成为了最优秀的MVC框架。 SpringMVC通过一套MVC注解,让POJO称为处理请求的控制器,而无须实现任何接口。 支持REST风格...

2018-12-27 10:41:28 49 0

原创 Spring Data——Repository的子接口

1.CrudRepository 接口: CrudRepository 接口提供了最基本的对实体类的添删改查操作  T save(T entity);//保存单个实体  Iterable<T> save(Iterable<? extends T&am...

2018-12-26 15:06:49 53 0

原创 Spring Data——方法定义规范

1.简单条件查询: 简单条件查询: 查询某一个实体类或者集合  按照 Spring Data 的规范,查询方法以 find | read | get 开头,  涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性以首字母大写。  例如:定义一个 Entity 实体类  cla...

2018-12-26 13:57:16 81 0

原创 Spring Data——入门

1.简介: Spring Data:Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据库的访问变得方便快捷。 SpringData 项目所支持 NoSQL 存储: MongoDB (文档数据库) Neo4j(图形数据库) Redis(键/...

2018-12-26 10:41:59 55 0

原创 Shiro(1.3.2)——集成Spring以及具体实现

1.Web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSch...

2018-12-25 17:42:35 235 0

提示
确定要删除当前文章?
取消 删除