自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (16)
  • 收藏
  • 关注

转载 Asp.net Socket多线程 简单监听端口,获得数据

经过对上一篇文章,代码的二次开发得到了线面的这个方法12345678910111213141516171819202122232425262728

2017-02-10 10:18:28 3274

转载 最基本的Socket编程 C#版

示例程序是同步套接字程序,功能很简单,只是客户端发给服务器一条信息,服务器向客户端返回一条信息;这里只是一个简单的示例,是一个最基本的socket编程流程,在接下来的文章中,会依次记录套接字的同步和异步,以及它们的区别。 下面是示例程序的简单步骤说明服务器端:第一步:用指定的端口号和服务器的ip建立一个EndPoint对像;第二步:建立一个Socket对像;

2017-02-10 10:15:38 810

转载 设计模式(20)——策略者模式(Stragety Pattern)

一、引言前面主题介绍的状态模式是对某个对象状态的抽象,而本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解。二、策略者模式介绍 2.1 策略模式的定义在现实生活中,策略模式的例子也非常常见,例如,中国的所得税,分为企业所得税、外商投资企业或外商企业所得税和个人所得税,针对于这3种所得税,针对每种,所计算的方式不同,

2016-03-03 11:34:15 430

转载 设计模式(19)——状态者模式(State Pattern)

一、引言在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再使用状态者模式来解决上一篇文章中提出的问题。二、状态者模式的介绍每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为。那么对这些状态的判

2016-03-03 11:33:49 315

转载 设计模式(18)——中介者模式(Mediator Pattern)

一、引言在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。二、 中介者模式的介绍2.1 中介者模式的定义从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊

2016-03-03 11:33:16 332

转载 设计模式(17)——观察者模式(Observer Pattern)

一、引言在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。二、 观察者模式的介绍2.1 观察者模式的定义从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有什么更新,就会直接推送给订阅了的用户。从中,我们就可以得出观察者模式的定义。

2016-03-03 11:32:43 345

转载 设计模式(16)——迭代器模式(Iterator Pattern)

一、引言在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合。在一章中,将介绍一下迭代器模式。下面废话不多说了,直接进入本博文的主题。二、迭代器模式的介绍迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的话,集合对

2016-03-03 11:32:03 306

转载 设计模式(15)——命令模式(Command Pattern)

一、前言之前一直在忙于工作上的事情,关于设计模式系列一直没更新,最近项目中发现,对于设计模式的了解是必不可少的,当然对于设计模式的应用那更是重要,可以说是否懂得应用设计模式在项目中是衡量一个程序员的技术水平,因为对于一个功能的实现,高级工程师和初级工程师一样都会实现,但是区别在于它们实现功能的可扩展和可维护性,也就是代码的是否“优美”、可读。但是,要更好地应用,首先就必须了解各种设计模式和其应

2016-03-03 11:31:33 297

转载 设计模式(14)——模板方法模式(Template Method)

一、引言提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同的内容要完成属于自己的简历。在设计模式中,模板方法模式中模板和生活中模板概念非常类似,下面让我们

2016-03-03 11:30:52 269

转载 设计模式(13)——代理模式(Proxy Pattern)

一、引言在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。二、代理模式的详细介绍代理模式按照使用目的可

2016-03-03 11:30:18 400

转载 设计模式(12)——享元模式(Flyweight Pattern)

一、引言在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。二、享元模式的详细介绍在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解

2016-03-03 11:29:48 283

转载 设计模式(11)——外观模式(Facade Pattern)

一、引言在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。二、外观模式的详细介绍2.1 定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模

2016-03-03 11:29:08 254

转载 设计模式(10)——组合模式(Composite Pattern)

一、引言在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的麻烦,然而作为客户,它们希望能够始终一致地对待简单对象和复合对象。然而组合模式就是解决这样的问题。

2016-03-03 11:28:35 292

转载 设计模式(9)——装饰者模式(Decorator Pattern)

一、引言在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类)、AccessoriesPhone(挂件手机类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我们可以使用装饰者模式来动态地给一个对象添加额外的职责。下面让我们看看装饰者模式。二、装饰者模式

2016-03-03 11:27:55 259

转载 设计模式(8)——桥接模式(Bridge Pattern)

一、引言这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下:这样的实现使得每部不同型号的电视都有自己遥控器实现,这样的设计对于电视机的改变可以很好地应对,只需要添加一个派生类就搞定了,但随着时间的推移,

2016-03-03 11:27:26 688

转载 设计模式(7)——适配器模式(Adapter Pattern)

一、引言在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。二、适配器模式的详细介绍2

2016-03-03 11:26:53 268

转载 设计模式(6)——原型模式(Prototype Pattern)

一、引言在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数量不断增多,反而增加了系统复杂程度,所以在这里使用工厂模式来封装类创建过程并不合适,然而

2016-03-03 11:26:22 358

转载 设计模式(5)——建造者模式(Builder Pattern)

一、引言在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采购员了,这里就可以采用建造者模式来解决这个问题,我们可以把电脑的各个组件的组装过程封装到一个建造者

2016-03-03 11:25:50 325

转载 设计模式(4)——抽象工厂模式

一、引言在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂都多元化了,一个工厂创建一系列的产品,如果我们要设计这样的系统时,工厂方法模式显然在这里不适用,然

2016-03-03 11:25:05 290

转载 设计模式(3)——工厂方法模式

一、引言在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。二、工厂方法模式的实现工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工

2016-03-03 11:24:30 359

转载 设计模式(2)——简单工厂模式

一、引言这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。二、简单工厂模式的介绍说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类, 我们平常编程中,

2016-03-03 11:23:56 271

转载 设计模式(1)——单例模式

一、引言最近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、单例模式的介绍说到单例模式,大家第一反应应该

2016-03-03 11:23:17 408

转载 第七章 注解式控制器的数据验证、类型转换及格式化(3)

7.4、数据验证7.4.1、编程式数据验证Spring 2.x提供了编程式验证支持,详见【4.16.2 数据验证】章节,在此我们重写【4.16.2.4.1、编程式验证器】一节示例。 (1、验证器实现复制cn.javass.chapter4.web.controller.support.validator.UserModelValidator到cn.javass.chapte

2015-12-22 16:06:36 512

转载 第七章 注解式控制器的数据验证、类型转换及格式化(2)

7.3、数据格式化在如Web /客户端项目中,通常需要将数据转换为具有某种格式的字符串进行展示,因此上节我们学习的数据类型转换系统核心作用不是完成这个需求,因此Spring3引入了格式化转换器(Formatter SPI) 和格式化服务API(FormattingConversionService)从而支持这种需求。在Spring中它和PropertyEditor功能类似,可以替代Proper

2015-12-22 16:05:46 381

转载 第七章 注解式控制器的数据验证、类型转换及格式化(1)

7.1、简介在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。 一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化: 流程:①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值;②:数据验证:需要显示调用Spring的Val

2015-12-22 16:04:59 403

转载 第六章 注解式控制器详解(5)

6.6.2、@RequestParam绑定单个请求参数值@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。Java代码  public String requestparam1(@RequestParam String username)  请求中包含username参数(如/requestparam1?username=zhang),则

2015-12-22 16:03:35 330

转载 第六章 注解式控制器详解(4)

到目前为止,请求已经能交给我们的处理器进行处理了,接下来的事情是要进行收集数据啦,接下来我们看看我们能从请求中收集到哪些数据,如图6-11: 图6-111、@RequestParam绑定单个请求参数值;2、@PathVariable绑定URI模板变量值;3、@CookieValue绑定Cookie数据值4、@RequestHeader绑定请求头数据;5、@Model

2015-12-22 16:02:16 322

转载 第六章 注解式控制器详解(3)

6.6.5、生产者、消费者限定6.6.5.1、基本概念首先让我们看一下通过HTTP协议传输的媒体类型及如何表示媒体类型: 一、Media Type:互联网媒体类型,一般就是我们所说的MIME类型,用来确定请求的内容类型或响应的内容类型。 写道媒体类型格式:type/subtype(;parameter)?type主类型,任意的字符串,如text,如果是*号代表所有;

2015-12-22 16:01:05 353

转载 第六章 注解式控制器详解(2)

6.5、请求映射处理器定义好了,那接下来我们应该定义功能处理方法,接收用户请求处理并选择视图进行渲染。首先我们看一下图6-1:http请求信息包含六部分信息:①请求方法,如GET或POST,表示提交的方式;②URL,请求的地址信息;③协议及版本;④请求头信息(包括Cookie信息);⑤回车换行(CRLF);⑥请求内容区(即请求的内容或数据),如表单提交时的参数数

2015-12-22 15:59:12 323

转载 第六章 注解式控制器详解(1)

6.1、注解式控制器简介一、Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。已经@Deprecated。 二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解: 需要通过处理器映射DefaultAnnotationHandler

2015-12-22 15:57:06 339

转载 第五章 处理器拦截器详解

5.1、处理器拦截器简介Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 5.1.1、常见应用场景1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。2、权限检查:如登录检测,进入处理器

2015-12-22 15:55:35 367

转载 第四章 Controller接口控制器详解(7)

4.16.2、数据验证1、数据绑定失败:比如需要数字却输入了字母;2、数据不合法:可以认为是业务错误,通过自定义验证器验证,如用户名长度必须在5-20之间,我们却输入了100个字符等;3、错误对象:当我们数据绑定失败或验证失败后,错误信息存放的对象,我们叫错误对象,在Spring Web MVC中Errors是具体的代表者;线程不安全对象;4、错误消息:是硬编码,还

2015-12-22 15:54:03 396

转载 第四章 Controller接口控制器详解(6)

4.16、数据类型转换和数据验证流程:1、首先创建数据绑定器,在此此会创建ServletRequestDataBinder类的对象,并设置messageCodesResolver(错误码解析器);2、提供第一个扩展点,初始化数据绑定器,在此处我们可以覆盖该方法注册自定义的PropertyEditor(请求参数——>命令对象属性的转换);3、进行数据绑定,即请

2015-12-22 15:52:37 287

转载 第四章 Controller接口控制器详解(5)

4.15、MultiActionController之前学过的控制器如AbstractCommandController、SimpleFormController等一般对应一个功能处理方法(如新增),如果我要实现比如最简单的用户增删改查(CRUD Create-Read-Update-Delete),那该怎么办呢? 4.15.1 解决方案1、每一个功能对应一个控制器,如果是CRUD

2015-12-22 15:51:38 403

转载 第四章 Controller接口控制器详解(4)

4.12、ParameterizableViewController参数化视图控制器,不进行功能处理(即静态视图),根据参数的逻辑视图名直接选择需要展示的视图。Java代码   class="org.springframework.web.servlet.mvc.ParameterizableViewController">      该

2015-12-22 15:49:49 240

转载 第四章 Controller接口控制器详解(3)

4.11、AbstractWizardFormController向导控制器类提供了多步骤(向导)表单的支持(如完善个人资料时分步骤填写基本信息、工作信息、学校信息等)假设现在做一个完善个人信息的功能,分三个页面展示:1、页面1完善基本信息;2、页面2完善学校信息;3、页面3完善工作信息。这里我们要注意的是当用户跳转到页面2时页面1的信息是需要保存起

2015-12-22 15:48:56 303

转载 第四章 Controller接口控制器详解(2)

4.5、ServletForwardingController将接收到的请求转发到一个命名的servlet,具体示例如下: java代码:Java代码  package cn.javass.chapter4.web.servlet;  public class ForwardingServlet extends HttpServlet {  

2015-12-22 15:47:31 322

转载 第四章 Controller接口控制器详解(1)

4.1、Controller简介Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:1、收集、验证请求参数并绑定到命令对象;2、将命令对象交给业务对象,由业务对象处理并返回模型数据;3、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。 还记得Dispatc

2015-12-22 15:46:40 366

转载 第三章 DispatcherServlet详解

3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

2015-12-22 15:45:42 272

转载 第二章 Spring MVC入门

2.1、Spring Web MVC是什么Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的W

2015-12-22 15:44:42 261

大龙老师新版scratch3.0编程全套素材

大龙老师新版scratch3.0编程全套素材

2023-08-17

Maven+Springmvc+Redis示例

Maven搭建springmvc加redis实现缓存示例 javaweb项目示例,java示例

2018-08-30

eclipse-maven3-plugin

eclipse-maven3-plugin

2015-11-19

使用Eclipse构建Maven的Web项目

使用Eclipse构建Maven的Web项目

2015-11-19

SQLServer2008r2数据导入到Oracle11g

SQLServer 数据导入到 Oracle11 数据库中。 资源中有操作详细过程,有详图!

2013-12-25

CodeSmith 5.3.2 绝对破解版下载

CodeSmith Generator Professional 5.3.2 Revision 12664 绝对完美注册破解版 安装后即为已注册状态 支持Visual Studio 2008 和 2010

2012-11-07

asp.net MVC3 中文下载

asp.net MVC3 安装包中文版本

2011-10-28

IPSrarch 通过IP得到省市

引用这个DLL 加上我博客里的调用方法,就可以通过IP得到省市

2011-04-29

AjaxTextBox示例

AjaxTextBox示例AjaxTextBox示例AjaxTextBox示例比较实用

2009-11-24

AjaxTextBox

AjaxTextBox 转别人的这里免费下 哈哈

2009-11-24

浏览器TheWorld

浏览器TheWorld 我比较喜欢的浏览器

2009-10-12

AspNetPager控件

很实用的AspNetPager分页控件 呵呵

2009-10-12

WebValidates控件

WebValidates控件 希望对你有用 开发引用控件

2009-10-12

FreeTextBox控件

FreeTextBox控件 开过常用的控件 希望对你有用

2009-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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