
无分类
zilong0536
这个作者很懒,什么都没留下…
展开
-
WebService
客户端与服务端交互数据,底层基于tcp/ip协议。 Java上层socket编程实现,基本不用。httpclient实现,本质是http(post/get)协议实现。servlet实现,本质还是http协议实现。 分布式环境下,服务被部署在不同机器,可能来自不同的项目或平台,要传输的数据可能非常复杂。 仍使用http协议实现不同项目之间的数据交互,但增加xml+xsd、wsdl、soa原创 2016-11-01 20:32:02 · 282 阅读 · 0 评论 -
Java日志使用
Java项目中常用的日志门面技术有commons-logging、slf4j,常用的日志实现技术有java.util.logging、log4j、logback。 commons-logging是由apache提供的最早日志门面,提供一个功能有限的简单实现simple logger,实际使用中需加载具体的日志实现包。commons-logging在程序运行时,使用classloader从classpat原创 2016-11-03 17:18:56 · 442 阅读 · 0 评论 -
Ibatis
数据访问层框架,ORM,Object Relation Mapping,将对象映射到关系,通过操作对象来达到操作关系的目的。 通过hibernate访问数据层不需要自己编写sql,简单智能,调用方法就可完成。ibatis需要自己编写sql语句,更加灵活,可对sql进行优化。ibatis的最后版本为2.3.4,从3.x开始,转投到Google Code门下,并改名为MyBatis。=============原创 2016-11-05 18:11:32 · 805 阅读 · 0 评论 -
Redis的基本操作
// string类型操作,数据结构为一个键值对,均为string类型// 设置k的值v,若k存在,直接替换set k v// 设置k的值v,前提是k不存在,否则返回0setnx k v// 设置k的值v,且有效期为n秒,超过有效期,键值消失setex k n v// 将k的值v中第三个及之后的全部字符替换为newv,下标从0开始setrange k 3 newv// 设置k的值v,原创 2016-12-23 14:12:16 · 332 阅读 · 0 评论 -
Redis的基本配置
redis是用c编写的开源内存型键值数据库,其会周期性将内存中数据同步到硬盘达到持久化目的。memcachedb也是开源内存型键值数据库,速度比redis快,但不支持硬盘存储,且数据类型没有redis丰富。内存型数据库可用于缓存、消息队列等非持久性短暂存储数据或实时性为主,频繁插入删除操作的应用。redis自带的一个简易命令接口redis-cli,可使用开源可视化的redis客户端工具RDM。//原创 2016-12-22 20:14:05 · 1349 阅读 · 0 评论 -
Zookeeper
apache hadoop下的一个开源可分布式部署的子项目,为分布式部署的应用提供分布式服务。其采用结构化存储分布式应用的数据,存储结构类似树形,由节点znode组成,每个节点可以有子节点,可以存储数据,被到根目录的路径唯一标识。znode可以存数据,但不代表其是用来存储数据的,目的是监控这些数据的变化,从而做出相应的动作。在分布式环境下,为保证效率,避免单点故障,zookeeper本身也要被分布式部署到集群上。原创 2016-09-21 19:31:17 · 431 阅读 · 0 评论 -
Linux——命令
Shell是Linux为用户提供的一个使用其服务的命令接口,基于该接口的实现有很多,其中最流行的是Bash Shell。 [root@test /root]# command -options param1 param2 … @左边的root表示用户名,右边的test表示当前主机名,test右边的/root表示当前目录,#为提示符,后面可以输入命令。 command为命令,原创 2016-09-22 20:19:58 · 359 阅读 · 0 评论 -
Linux——概述
最早出现的是Unix,开始时是免费的,后来收费了,由此出现了GNU计划,其目标是创建一个基于自由软件的操作系统。 在GNU计划下开发的软件必须遵循GPL(General Public License)公共许可协议,但是遵循GPL协议的软件未必是GNU计划下开发的软件。 一个完整的操作系统由内核和在内核之上的各种软件两部分组成,其中内核是核心。GNU计划的GNU内核没有完成,只完成了内核之上的全部原创 2016-09-22 16:53:12 · 302 阅读 · 0 评论 -
MongoDB的Java操作
// 需要三个jar包,mongodb-driver-3.3.0.jar;mongodb-drvier-core-3.3.0.jar;bson-3.3.0.jarpublic class MongoTest { private MongoClient conn = null; // 获取连接 private MongoClient getConn() { conn = new MongoClient("原创 2016-09-23 17:02:24 · 405 阅读 · 0 评论 -
MongoDB的基本配置与操作
MongoDB是用C++编写的,开源跨平台分布式的,非关系(NoSQL)文档型数据库,其可存储海量数据,主要用于查询操作。 NoSQL数据库主要有四大类。 键值型数据库,如MemcacheDB、Redis。 列数据库,如HBase。 文档型数据库,如MongoDB。 图形数据库。安装与配置 远程连接到Linux服务器。 cd 部署目录。 wget url—原创 2016-09-22 11:06:56 · 282 阅读 · 0 评论 -
jQuery的tabs
// 导入指定样式<link rel="stylesheet" type="text/css" href="..easyui.css">// 给div标签加样式easyui-tabs,变成选项卡<div id="tabs" style=".." class=”easyui-tabs”> // 给选项卡内添加四个面板 <div title="tab1" style=".."></d原创 2016-12-28 19:14:06 · 698 阅读 · 0 评论 -
jQuery的ajax操作
// 无刷页面,请求后端数据$.ajax({ // 请求类型,默认get type : "post", // 请求地址,尽量使用根路径,如/xx/yy,/指域名的主机部分;也可使用相对路径,相对当前域名开始 url : "...", // 请求头 contentType : "application/x-www-form-urlencoded; ch原创 2016-12-21 10:20:16 · 343 阅读 · 0 评论 -
jQuery中标签的事件
// 属性maxlength,指定最大字符数,仅支持firefox和chrome// 事件onkeyup,键盘按键抬起触发// 事件oninput,在文本框内容改变时触发,仅支持firefox和chrome// 事件onpropertychange,html元素改变时触发,可完成oninput功能,仅支持ie// 事件onblur,失去焦点触发// 事件onfocus,获取焦点触发// 更多事件请原创 2016-12-20 15:06:04 · 521 阅读 · 0 评论 -
jQuery的函数
// 截取start到end-1位置的子串并返回substring(start, end);// 从start开始取length个字符并返回substr(start, length);// 给指定标签添加单击事件$("#id").click(function() {..});// 给指定标签绑定一个指定的事件$("#id").bind("click", function() {..});//原创 2016-12-20 14:36:52 · 302 阅读 · 0 评论 -
jQuery的标签标识
// name属性指定标签名字,可重复,用于前后端数据交互标识// id属性指定标签唯一标识,不可重复,用于css或脚本// class属性指定标签所属的类,可重复,用于css或脚本// 根据id设置标签样式#id {k1: v1; k2: v2;..}// 多个id使用同一样式,可用一个class替代#id1, #id2, #id3 {..}// 根据类设置标签样式.class {k1:原创 2016-12-20 14:28:04 · 698 阅读 · 0 评论 -
Velocity
velocity类似jsp,都是前端页面渲染技术,其中jsp仅适用于java,可直接访问后端代码,mvc中要小心操作来实现前后分离;velocity是通用模板,默认不可直接访问后端代码,严格实现前后分离。## 单行注释#* * 多行注释 *### celocity中#标识指令,$标识变量## 输出name值,若name不存在,原样输出$name## 输出name值,若name不存原创 2016-09-26 20:52:35 · 261 阅读 · 0 评论 -
正则表达式
正则表达式,又叫模式,实际是一个特殊的字符串,串中含有一些被称为元字符的特殊含义字符,元字符可代表若干字符。 模式匹配指,先给出一个指定的模式或正则表达式,可解为标准,下一步就是寻找与此模式匹配的字符串。给出一个要参与匹配的字符串,此字符串是否与正则表达式匹配,有两个层面:整个参与匹配的字符串完全与正则表达式匹配;仅仅是参与匹配的字符串中的某个子串完全与正则表达式匹配,符合任何一个标准都算该字符串被匹配成功。原创 2016-04-30 20:38:57 · 833 阅读 · 0 评论 -
Spring与Maven两种占位符的替换时机
maven是用java编写的开源项目管理工具,通过pom,project object model,pom.xml模型来管理项目的目录结构、版本、jar库以及各子模块之间的依赖关系。在架构上分客户端和服务端,其中客户端有项目、本地仓库,需要安装maven软件;服务端只有远程仓库,分私服和中央仓库两种,其中私服需安装Jfrog的Artifactory软件来搭建maven服务;中央仓库为maven提供的原创 2017-01-03 10:58:37 · 2439 阅读 · 0 评论 -
Spring的整体部署
与spring相关的三类配置文件,spring-config.xml、spring-config-mvc.xml、web.xml。 spring框架的核心是ioc容器,容器用于管理项目的对象,被管理的对象称为bean。spring与项目的桥梁是基于ioc容器管理的项目对象bean。ioc容器完成bean的创建,以及bean与bean之间的组合。 将项目的对象交给容器管理是指该对象的构建与原创 2016-12-19 20:16:41 · 438 阅读 · 0 评论 -
Spring的AOP
AOP,Aspect Oriented Programming,面向切面编程,spring中只能拦截bean的方法,不能拦截类。基本思路是将方法内互不相交的业务逻辑分离并单独开发,最后通过动态代理实现各业务逻辑的组合。 关注点,业务上不可继续分割的最小组件。 关注点分离,将功能模块划分成若干业务上不可继续分割的最小组件。 横切关注点,将功能模块化分成若干最小组件后,辅助组件会以横切的形原创 2016-12-19 16:44:40 · 324 阅读 · 0 评论 -
Spring中Bean的注册与注入——注解方式
<beans> // 注解Autowired的注解处理器 <bean class="....AutowiredAnnotationBeanPostProcessor" /> // 注解Resouce、PostConstruct、PreDestroy的注解处理器,符合JSR-250标准的注解 <bean class="....CommonAnnotationBeanPo原创 2016-12-19 15:45:25 · 869 阅读 · 0 评论 -
Spring中Bean的注册与注入——XML方式
IoC,Inversion of Control,控制反转指对象以前由程序构造,现在由ioc容器构造。DI,Dependency Injection,依赖注入指对象的依赖资源以前由程序注入,现在由ioc容器注入。spring的核心是ioc容器,体现为一个类,代表是BeanFactory接口,其所做的一切都是基于容器管理的对象bean。该接口的直接实现类XmlBeanFactory从文件系统加载xml文件,直接扩展原创 2016-12-19 14:26:02 · 3660 阅读 · 0 评论 -
Spring的Quartz
定时任务,要引入quartz-xx.jar包,可以自己搞,也可和spring框架整合一起搞。```// 定时任务的异步操作@Component("xxTask")public class XxTask implements Runnable { public void run() {..}}// 定时任务@Component("xxWorker")public class XxWorker原创 2016-09-28 20:03:47 · 290 阅读 · 0 评论 -
Spring的MVC
三层架构是项目架构,将整个项目从逻辑上划分为表现层ui、业务逻辑层bll、数据访问层dal。由于ui层存在显示逻辑、控制逻辑和业务逻辑的混淆问题,提出了mvc解决方案。其将ui层进一步划分为显示层view,控制层controller、模型层model。 spring的mvc中,view层仅完成显示逻辑;controller层分前端控制器和页面处理器,前端控制器DispatcherServlet仅完成控制逻辑原创 2016-09-18 11:29:44 · 311 阅读 · 0 评论 -
Web——域名
www.google.comcom 顶级域名 com用于企业,net用于网络机构,org用于政府阻止等非盈利团体 顶级域名申请要花钱,不属于申请者google.com 一级域名为顶级域名的延伸,所有权属于申请者,不花钱www.google.com 二级域名,www为主机名mail.google.com 二级域名,mail为主机名原创 2016-10-21 19:49:36 · 333 阅读 · 0 评论 -
Web——请求转发与响应重定向
请求转发Forward A发请求给B,B收到A的请求后将其原样转发给C,C对A的请求处理后响应A。整个过程A的请求地址不变,始终为B。A不知道C,虽然A的请求最终由C处理并响应,但A认为是B完成请求并响应。 A没有直接请求C,请求由B转发给C。由于http请求报文中有请求的发送者A和接受者B,所以C仍然知道请求是由A发出的,并对A做出响应而不是B。 整个过程只发生了一次请求,来自A,一原创 2016-09-20 14:46:05 · 810 阅读 · 0 评论 -
Web——过滤器与拦截器
过滤器Filter,本质为Servlet。 请求被服务端接收前,先由过滤器接收并处理。 过滤器可将请求转发给原服务端。 过滤器可可将请求响应重定向到其它服务端。=========================================== 拦截器Intercept,本质为AOP。 请求到达服务端后,执行服务端的方法之前或之后,先由拦截器拦截并处理。 拦截器可屏原创 2016-09-20 14:22:49 · 246 阅读 · 0 评论 -
Web——开发流程
构建项目Eclipse下构建基于Maven的多模块Web项目 Maven自带工具archetype(原型),可以通过Maven命令,根据pom.xml来构建项目,比较繁琐,直接用Eclipse完成。 打开Eclipse,选择File->New->Project->Maven->Maven Project,选择一个合适的Archetype,其中quickstart可以创建jar或pom项目原创 2016-09-19 15:28:04 · 288 阅读 · 0 评论 -
Web——开发环境搭建
安装与配置JDK 从官网下载最新版本的JDK安装包并安装。 新建环境变量JAVA_HOME为JDK的安装目录。 新建环境变量CLASSPATH为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。 在环境变量Path中添加%JAVA_HOME%\bin,win+R->cmd->java -version验证是否安装成功。安装与配置原创 2016-09-19 14:59:52 · 321 阅读 · 0 评论 -
Web——Servlet操作Cookie
Web——Servlet操作Cookie原创 2016-09-08 19:07:08 · 228 阅读 · 0 评论 -
Web——Cookie与Session
web,cookie,session原创 2016-09-08 17:12:07 · 221 阅读 · 0 评论 -
设计模式——代理模式
代理模式 一个类A,被代理类,有一个功能a要提供给其它的类使用,如类C,使用类。为了降低类A和类C的耦合度,要求类C不能直接访问类A。类A将自己的功能a委托给类B,代理类,而类C通过类B来使用类A的功能a。 类A和类B有共同的接口a,类B对接口a的实现可以调用类A对接口a的实现,同时可以附加自己额外的操作,以适应其它类的需求。多个类对类A的a功能有着不同的需求,而这种需求的不同无需去改变类A,只原创 2016-05-05 11:42:12 · 229 阅读 · 0 评论 -
设计模式——装饰者模式
装饰者模式 通过对象组合的方式,为一个现有的类(被装饰者)添加一些新的功能。根据合成复用原则,避免使用继承的方式来扩展类。类继承会增加类的复杂度,且必须在编译之前确定要扩展的功能,静态的。类似java io的包装流,一层层外包。//原始被装饰者接口public interface Human { public void wearClothes();}//原始被装饰者接口实现类pub原创 2016-05-04 17:57:25 · 230 阅读 · 0 评论 -
设计模式——适配器模式
适配器模式 一个类提供了一个接口的实现,而另一个类要求通过另一个接口来使用该实现。两个接口不同肯定不能一起工作。根据开闭原则,接口确定好后是不能修改的,此时需要通过适配器来完成接口的转换。在原有的实现类或接口外包一层后,变为使用者可以使用的类或接口。 类适配器模式,通过继承实现。 //原有的接口public interface Old { public void oldMethod原创 2016-05-02 20:21:37 · 191 阅读 · 0 评论 -
原型模式
重写类的clone方法,仅在第一次创建该类的实例时使用构造方法创建,之后该类实例的创建都是直接调用第一次创建实例的clone方法生成。clone方法是java的本地方法,其内容的拷贝直接跳过构造方法在内存中完成,效率比new高很多。对于需要被重复创建的复杂对象,使用原型模式会明显提高效率。```public class ProtoType implements Cloneable { public sta原创 2016-05-02 11:27:45 · 278 阅读 · 0 评论 -
建造者模式
一个复杂的对象有很多的属性,那么在构造这个对象的时候,对其各个属性的初始化值就存在很多的可能。不同的初始化值,实际创建出的是符合某种需求的不同的实例。通过一个构造器类来对这些属性进行专门的初始化,从而构造出符合我们要求的实例。Android中的Dialog类的实例的创建方式,使用的就是建造者模式。```// 抽象类public abstract class Dialog { // 包含复杂对象的全部属性原创 2016-05-02 10:39:16 · 328 阅读 · 0 评论 -
单例模式
```// 单线程下懒汉式单例// 该方法在多线程下可能会创建出多个实例,由此仅适用于单线程环境public class Singleton { private static Singleton single = null; // 私有构造方法,仅能内部自己使用,外界无法访问,由此外界无法创建该类的实例 private Singleton() {} // 对外提供的公共接口,返回类的唯一实例 pub原创 2016-05-01 11:58:12 · 226 阅读 · 0 评论 -
抽象工厂模式
```// 抽象工厂模式// 有多个抽象子产品接口,每个抽象子产品接口都可以扩展多个具体子产品类的实现// 一个抽象工厂接口,可以扩展多个具体工厂类的实现,且每个具体工厂类能够创建多个具体子产品类的实例// 若一个产品由若干子产品组成,那一个具体工厂要形成可使用的具体产品,就必须通过生产多个具体子产品来实现// 抽象子产品接口public interface Engine {}public inter原创 2016-05-01 10:58:40 · 325 阅读 · 0 评论 -
工厂方法模式
```// 简单工厂模式// 一个抽象产品接口,可扩展多个具体产品类的实现// 一个具体工厂类,可创建多个具体产品类的实例// 抽象产品接口,为标准,不可变,对修改关闭public interface BMW {}// 具体产品类,实现抽象产品接口,对扩展开放pbulic class BMW320 implements BMW {}public class BMW523 implements BMW原创 2016-05-01 10:40:33 · 306 阅读 · 0 评论 -
设计模式概述
设计模式是方法论,问题解决方案,解决的是我们在开发中经常遇到的问题,其将解决该问题的方法步骤,以及共性内容全部抽象出来,形成一种统一规范的解决方案。设计模式有七大原则,分三大类,共二十三种。 开闭原则:OCP,Open Close Principle,为总原则。面向抽象编程时,对标准的扩展开放,对实现的修改关闭。在面向接口或抽象类编程的时候,会使用此原则。 单一职责原则:指一个类只做一件事,不能存在导致该原创 2016-04-30 21:36:00 · 288 阅读 · 0 评论