- 博客(1171)
- 资源 (179)
- 收藏
- 关注
转载 SpringMVC与Struts2的对比
下面这些东西基本都是我从网上粘贴过来的,没有那么多耐心和时间一个字一个字的敲了,但是基本能表明我选择SpringMVC的思路和原因。把这张图放在这里,我是想说SpringMVC和Struts2真的是不一样的,虽然在都有着核心分发器等相同的功能组件(这些由MVC模式本身决定的)。 为什么SpringMVC会赢得最后的胜利呢?谈几点我自己的看法: 第
2016-03-21 21:11:55 401
转载 框架学习:hibernate框架的结构和分析
在上篇博客中介绍了struts2框架的原理和流程分析,可以说struts框架一路走来,改变非常大,而且让我们开发人员变得更加轻松,里面的设计理念的改变也是让我们编程人员的思路得到更大的扩展。 可以说,一个先进的技术或者框架就是要不断的进步才能永远让编程人员喜欢和使用,一个优秀的编程人员也是要不断的进步才能永远让这个世界变得更加
2016-03-21 21:07:47 473
转载 框架学习:webWork框架和struts2框架的结构和分析
在上篇博客中,我简单的介绍了我们分层开发中每一层中拥有的框架,而且介绍了我常用的框架struts1的结构和原理分析,那么今天我继续介绍我熟悉的框架struts2的框架的结构和原理分析。 在说struts2框架之前,我要先介绍另外一个框架webwork框架,这个框架也是一个mvc的框架,这个框架的设计思路是采用拦截链将用户的请求的数据转发到Action中,并负责将Action的处
2016-03-21 21:05:23 776
转载 框架学习:struts1框架的结构和分析
在上一篇的内容里,简单说了说框架的学习,主要讲解了什么是框架,框架的一些相关问题,还有就是如何学习框架。那么这篇博客介绍一些常见的框架的结构和分析。 我们所学习的技术框架有很多,例如struts1、struts2、JSF、Spring、SpringMVC、Hibernate、ibatis····在上篇博客我说了我们可能在开发的路途上会要学习这些框架,我也给出了我对框
2016-03-21 21:03:01 614
转载 Struts2工作原理
Struts2请求响应流程: 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller、ActionProxy、ActionMapping、Configuration Manager、ActionInvocation、Inerceptor、Action、Result等。下面我们来具体看看这些组件有什么联系,它们之间是怎样在一起
2016-03-21 20:51:55 301
转载 struts2的核心和工作原理
在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处?设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计。在这儿MVC模式的好处就不在提了。技术优势 Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Serv
2016-03-21 20:49:29 370
转载 第四章 Controller接口控制器详解(2)
4.5、ServletForwardingController将接收到的请求转发到一个命名的servlet,具体示例如下: java代码:查看复制到剪贴板打印package cn.javass.chapter4.web.servlet; public class ForwardingServlet extends HttpServlet
2016-03-21 20:18:39 293
转载 第四章 Controller接口控制器详解(1)
4.1、Controller简介Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:1、收集、验证请求参数并绑定到命令对象;2、将命令对象交给业务对象,由业务对象处理并返回模型数据;3、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。 还记得Dispatc
2016-03-21 20:15:36 402
转载 第三章 DispatcherServlet详解
3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:
2016-03-21 20:11:37 320
转载 第二章 Spring MVC入门
2.1、Spring Web MVC是什么Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的W
2016-03-21 20:08:20 296
转载 第一章 Web MVC简介
Web MVC简介1.1、Web开发中的请求-响应模型: 在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完成后,返回内容给web客户端(一般
2016-03-21 20:06:34 264
转载 Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchroni
2016-03-17 12:28:08 358
转载 Java并发编程:synchronized
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同
2016-03-17 12:25:07 359
转载 XStream应用总结
XStream应用总结 XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)。 XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用了,如果你用的更多,估计是你设计有问题,否则不需要。
2016-03-14 20:07:19 446
转载 xStream完美转换XML、JSON
xStream框架xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换;前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html以及Jackson这个框架,在线博文:http://www.cnb
2016-03-14 20:03:52 533
转载 MySQL高效分页解决方案集
一,最常见MYSQL最基本的分页方式:select * from content order by id desc limit 0, 10在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:select * from content order by id desc l
2016-03-09 14:43:14 591
转载 Netty4.0学习笔记系列之六:多种通讯协议支持
上文介绍了如何应用Netty开发自定义通讯协议,本文在此基础上进一步深化,研究如何同时支持不同的通讯协议。此处所谓的通讯协议,指的是把Netty通讯管道中的二进制流转换为对象、把对象转换成二进制流的过程。转换过程追根究底还是ChannelInboundHandler、ChannelOutboundHandler的实现类在进行处理。ChannelInboundHandler负责把二进制流转换
2016-03-07 08:52:29 611
转载 Netty4.0学习笔记系列之五:自定义通讯协议
Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。基于这个思路,我自定义一种通讯协议:Server和客户端直接传输java对象。实现的原理是通过Encoder把java对象转换成ByteBuf流进行传输,通过Decoder把ByteBuf转换成j
2016-03-07 08:50:20 718
转载 Netty4.0学习笔记系列之四:混合使用coder和handler
Handler如何使用在前面的例子中已经有了示范,那么同样是扩展自ChannelHandler的Encoder和Decoder,与Handler混合后又是如何使用的?本文将通过一个实际的小例子来展示它们的用法。该例子模拟一个Server和Client,两者之间通过http协议进行通讯,在Server内部通过一个自定义的StringDecoder把httprequest转换成String。S
2016-03-07 08:45:06 538
转载 Netty4.0学习笔记系列之三:构建简单的http服务
本文主要介绍如何通过Netty构建一个简单的http服务。想要实现的目的是:1、Client向Server发送http请求。2、Server端对http请求进行解析。3、Server端向client发送http响应。4、Client对http响应进行解析。在该实例中,会涉及到http请求的编码、解码,http响应的编码、解码,幸运的是,Netty已经
2016-03-07 08:41:33 1028 1
转载 Netty4.0学习笔记系列之二:Handler的执行顺序
Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。Netty中的所有handler都实现自ChannelHandler接口。按照输出输出来分,分为ChannelI
2016-03-07 08:34:58 566
转载 Netty4.0学习笔记系列之一:Server与Client的通讯
本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯机制进行验证。Server与Client建立连接后,会执行以下的步骤:1、Client向Server发送消息:Are you ok?2、Server接收客户端发送的消息,并打印出来。3、Server端向客户端发送消息:I am ok!4、Client接收Server端发送的
2016-03-06 17:52:27 1246
转载 基于Netty4的HttpServer和HttpClient的简单实现
使用的Netty的版本:netty-4.0.23.Final.tar.bz2 ‐ 15-Aug-2014 (Stable, Recommended)Http 消息格式:Http request:Method path-to-resource HTTPVersion-numberHeader-name-1: value1Header-name-2: value2O
2016-03-06 17:40:27 1512
转载 Netty系列之Netty 服务端创建
1. 背景1.1. 原生NIO类库的复杂性在开始本文之前,我先讲一件自己亲身经历的事:大约在2011年的时候,周边的两个业务团队同时进行新版本开发,他们都需要基于NIO非阻塞特性构建高性能、异步和高可靠性的底层通信框架。当时两个项目组的设计师都咨询了我的意见,在了解了两个项目团队的NIO编程经验和现状之后,我建议他们都使用Netty构建业务通信框架。令人遗憾的是其中1个项目
2016-03-06 14:41:10 1019
转载 Spark Streaming和Kafka整合是如何保证数据零丢失
当我们正确地部署好Spark Streaming,我们就可以使用Spark Streaming提供的零数据丢失机制。为了体验这个关键的特性,你需要满足以下几个先决条件: 1、输入的数据来自可靠的数据源和可靠的接收器; 2、应用程序的metadata被application的driver持久化了(checkpointed ); 3、启用了WAL特性(Write ahead lo
2016-03-03 11:27:47 2618
转载 图解Git/图形化的Git参考手册
此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。基本用法上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。● git add files 把当前文件放入暂存区域。● git commit 给暂存区域生成快照并提交。● git reset -- files 用来撤销最后一次git add
2016-03-01 20:58:50 416
转载 Git使用教程图文详解
什么是GitGit是目前世界上最先进的分布式版本控制系统。最初由Linus Torvalds编写,用作Linux内核代码的管理。如果你是windows用户,看到这里你可能会担心“是不是只能用在linux上?或者Git对于windows不是那么友好。” ,那么我告诉你你的担心是多余的,GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使
2016-03-01 20:44:41 1211
转载 windows安装TortoiseGit详细使用教程【基础篇】
环境:win8.1 64bit安装准备:首先你得安装windows下的git msysgit1.9.5安装版本控制器客户端tortoisegit tortoisegit1.8.12.0 [32和64别下载错,不习惯英文的朋友,也可以下个语言包]一、安装图解:先安装GIT【一路默认即可】安装好git以后,右键,会发现菜单多
2016-03-01 20:13:37 659
转载 TortoiseGit配合msysGit在Git@OSC代码托管的傻瓜教程
命令行太麻烦,肿么破?便便利用睡觉的时间解决了一点效率问题,tortoiseGit处理GitHub,一样可以处理Git@osc ,虽然说可以用gitk来调出图形界面,but,我就是不想看见黑黑的命令提示符的框框,于是乎,近乎龟毛到变态的便便又开始了新的折腾。。。。OK,windows系统,linux和mac勿喷。。。。。下载msysgithttp://msysgit.githu
2016-03-01 18:47:58 439
转载 深入 HBase 架构解析(1)
前记公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然而如果翻译就需要各种咬文嚼字,太麻烦,因而本文大部分使用了自己的语言,并且加入了其他资源的参考理解以及本人自己读源码时对其的理解,属于半翻译、半原创吧。 HBase架构组成
2016-03-01 17:35:16 457
转载 15分钟学会使用Git和远程代码库
Git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧:Git是复杂的,我们不要装作它不是。但我仍然会试图教会你用(我的)基本的Git和远程代码库干活的工作步骤,在15分钟内。 工作步骤我会展示以下的步骤,通常能帮我独自在一台或多台机器上做项目。创建一个远程的空代码库(在BitBu
2016-03-01 15:34:45 375
转载 一分钟认识 Git
机缘巧合之下,我开始使用 GitHub ,但事实上,刚刚入门的我不知道如何才能使 GitHub发挥他的全部功能。不久之前,我偶然听了李福斯先生对 GitHub 的介绍,受益匪浅。简单的来说, Git 是一个分布式的版本控制系统。顾名思义,在你编辑程序代码的时候(特别是在多人协作一个项目时),它将会自动帮你实现代码以及版本的更新。这意味着你不必每次都手动地将自己修改的内容同步到云端。这些工作
2016-03-01 15:32:40 317
转载 Wireshark 基本介绍和学习 TCP 三次握手
这篇文章介绍另一个好用的抓包工具 Wireshark, 用来获取网络数据封包,包括 HTTP、TCP、UDP 等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网络数据包,可以清晰的看到数据包中的每一个字段。更能加深我们对网络
2016-02-29 09:17:41 653
转载 理解RESTFul架构
1 什么是RESTREST全称是Representational State Transfer,中文意思是表述性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。 他在论文中提到:“我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信
2016-02-28 16:40:11 370
转载 Spark Streaming 订单关联案例剖析
Apache Spark 是加州大学伯克利分校的 AMPLabs 开发的开源分布式轻量级通用计算框架。由于 Spark 基于内存设计,使得它拥有比 Hadoop 更高的性能(极端情况下可以达到 100x),并且对多语言(Scala、Java、Python)提供支持。其一栈式设计特点使得我们的学习和维护成本大大地减少,而且其提供了很好的容错解决方案。本文将详细地介绍如何使用 Spark St
2016-02-28 16:24:04 562
转载 Spark Streaming 图片处理案例介绍
前文回顾前文《Spark Streaming 新手指南》介绍了 Spark Streaming 的基本工作原理,并以 WordCount 示例进行解释。此外,针对 Spark Streaming 的优缺点也做了一些描述。本文重点主要是解释流式处理架构的工作原理,让读者对 Spark Streaming 的整体设计原理及应用场景有所了解。流式处理框架特征流式处理框架的
2016-02-28 16:21:18 1211
转载 Keepalived集群软件高级使用(工作原理和状态通知)
1、介绍 Keeaplived主要有两种应用场景,一个是通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived),有此需求者可参考以往博文:http://lizhenliang.blog.51cto.com/7876557/1343734。另一个是通过自身健康检查、资源接管功能做高可用(双机热备),实现故障转移。 以下内容主要针对Keepa
2016-02-28 16:15:27 4371 1
转载 LVS-三种负载均衡方式比较
1、什么是LVS?首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服
2016-02-28 16:09:05 486
转载 Nginx 的 TCP 负载均衡介绍
Nginx Plus的商业授权版开始具有TCP负载均衡的功能。从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请。也就是说,Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工
2016-02-28 15:59:46 852
转载 常见的nginx的配置选项
英文原文:agiletesting.blogspot.jp,编译:扶凯对于想学 Nginx 的新人,这是一个非常不错的简明指导。Google 上有丰富的 Nginx 的教程和样本配置文件,但很多时候时候,配置这些是需要一些技巧。Include 文件不要在您的主 nginx.conf 文件中配置所有的东西,你需要分成几个较小的文件。您的同事会很感激你的。比如我的结构
2016-02-28 15:58:09 748
Apache Sqoop Cookbook
2014-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人