自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Git工作区,暂存区,远程仓库及分支管理

一,Git的工作区与暂存区 Git的工作区(working directory),就像我们平时看到的目录一样。Git的版本库中包含了暂存区(stage或者index)以及Git为我们自动创建的第一个分支master,和指向master的一个指针HEAD。 当我们把文件往Git版本库里添加的时候,git add命令实际上是把文件修改添加到暂存区,git commit命令实际上是把暂存区的所有内容提

2017-05-30 23:24:05 3264

原创 Git版本库相关操作

Git是分布式版本控制系统,Git中的版本库,也叫做仓库,英文称为repository,版本库就像一个目录,目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都可以跟踪,方便任何时刻都可以追踪历史,或者将来在某个时刻可以“还原”。 1,创建一个版本库的命令如下: 其中:pwd命令用于显示当前目录$ mkdir gitstudy$ cd gitstudy$ pwd/c/U

2017-05-29 15:10:43 533

原创 JavaBean及内省

一,JavaBean是什么?JavaBean是一个遵循特定写法的Java类,它通常具有如下的特点: 1.这个Java类必须具有一个无参构造函数; 2.属性私有化; 3.私有化属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范。 JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化Jav

2017-04-09 11:39:17 587

原创 JSP指令元素,JSP内置对象及JSP标签

一,JSP脚本元素:(1)声明标签(Declaration Tag):语法:<%!变量或方法的声明%> 作用:声明JSP内所使用的全局变量或方法; (2)表达式(Expression Tag):语法:<%=表达式%> 作用:输出Java中变量或者表达式的值到页面上; (3)程序代码标签(Scriptlet Tag):语法:<%程序代码%> 作用:编写Java程序代码,但不可以定义方法。二,JSP

2017-04-09 10:43:03 735

原创 cookie和session两种会话技术

一,什么是会话? 会话可简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决一些问题:每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每个用户的数据;那么怎样解决这样的问题呢?——借助于两种会 话技术。二,Cookie会话技术 1,Cookie的定义 Cookie是客户端技术,程序把每个用户的数

2017-04-08 21:39:55 4723 1

原创 JSP基础知识—执行过程,脚本元素,与Servlet的区别

Servlet的缺点: 1,开发人员要十分熟悉Java; 2,不便于页面的调试和维护(要进行修改和重新编译); 3,很难利用网页设计工具进行页面设计(需要将HTML内容导入到servlet中,要用PrintWriter的对象进行输出)。 后来出现了JSP,那么什么是JSP呢? 一,JSP的定义 JSP:(Java Server Pages)与Java Servlet一样,是在服务器端执行

2017-04-08 18:36:25 2063

原创 Request对象及常用的操作

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。 通过Request对象进行的常用操作有:获取客户机信息,获取请求头信息,获取请求参数,利用请求域传递对象,重定向和转发。request的常用操作: (1)request获取客户机信息 getRequest

2017-04-08 16:50:40 1220

原创 response对象的组成及应用

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象既然代表请求与响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了,要向客户机输出数据,只需要找response对象就行了。 HttpServletResponse对象服务器的响应。这个对象中封装了向客户端发

2017-04-08 15:52:42 6365

原创 缺省的Servlet

如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。凡是在web.xml文件中找不到匹配的元素的URL,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求。 在<servlet> <servlet-name>default</servlet-

2017-04-08 12:10:38 1071

原创 Servlet接口的实现类,路径配置映射,ServletConfig对象,ServletContext对象及web工程中文件的读取

一,Servlet接口实现类:sun公司为Servlet接口定义了两个默认的实现类,分别为:GenericServlet和HttpServlet。 HttpServlet:指能够处理HTTP请求的servlet,它在原有的Servlet接口上添加了一与HTTP协议处理的方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接

2017-04-08 11:56:16 2338 1

原创 Servlet开发基础知识—运行过程与生命周期

Servlet简介::Servlet是sun公司提供的一门用于开发动态web资源的技术。sun公司在其API中提供了一个servlet接口,用户若想要开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成下面2个步骤: 1)编写一个Java类,实现servlet接口; 2)把开发好的Java类都部署到web服务器中。 Servlet在web应用中的位置: 其中: m

2017-04-08 10:01:17 403

原创 MySQL中的多表设计

多表设计:利用外键约束实现,是为了保证数据的完整性。 外键实际上是一种约束,表示这个属性是另一个实体集中的主标识属性,即另一个表中的主键。 外键用于建立和加强两个表数据之间的链接的一列或多列。 定义外键约束: 1)可以直接在create语句中定义外键:foreign key 当前表名 (字段名) references 目标表名 (目标表的主键) 2)创建完语句后,可以直接使用修改语句定义:

2017-04-07 13:21:15 824 1

原创 SQL语言中的基本操作

SQL:Structured Query Language, 结构化查询语言,SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能。其特点是:非过程性语言,那么什么是非过程语言呢? 过程性语言:当前的这条语句执行需要依赖于上一条或几条语句; 非过程性语言:可一条语句,就会执行一个结果。SQL分类 (1)DDL (数据定义语言):Data Definition L

2017-04-07 11:33:59 1795

原创 MySQL简介篇—安装,配置与卸载

首先我们要知道数据库是什么?数据库就是一个文件系统,但是访问的时候需要使用标准的SQL语句来访问数据。有关系型数据库和非关系型数据库,关系型数据库存储的都是实体与实体之间的关系。常见的数据库有: Oracle:甲骨文公司的数据库产品,大型的收费的数据库; SQLServer:微软公司的数据库产品,中型的收费的数据库; MySQL:是开源的,免费的数据库产品; DB2:IBM公司的数据库产品,

2017-04-07 08:45:54 257

原创 HTTP协议学习篇(二)—http响应

在接收和解释请求消息后,服务器返回一个HTTP响应消息,一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干消息头、以及实体内容 。 举例:HTTP/1.1 200 OK -------请求行Server: Microsoft-IIS/5.0Date: Thu, 17 Apil 2017 07:46:53 GMT ----中间5行为多个消息头Content-Le

2017-04-06 20:18:04 385

原创 HTTP协议学习篇(一)—http请求

HTTP协议,超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是在HTTP协议之上的Web应用。。它于1990年提出,不断得到完善和发展。HTTP 1.0版本与HTTP 1.1版本的不同: HTTP 1

2017-04-06 19:31:20 453

原创 建造者模式

建造者模式:又叫做生成器模式,可以将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。用户只需要指定需要建造的类型就可以,而具体建造的过程和细节则不需要知道。它的结构图如下: 其中: Product:为具体的产品; Builder:是一个为创建一个Product对象的各个部件而指定的抽象的接口; ConcreteBuilder:是具体的建造者,实现了Builder接口,

2017-04-06 16:21:33 291

原创 动态代理

动态代理,简单说就是不用在设计实现的时候就指定某一个代理类来代理哪一个被代理的对象,可以把这种指定延迟到程序运行时有JVM来实现。它的结构图如下:其中: InvocationHandler:即为java.reflect.InvocationHandler接口; AbstractSubject:抽象主题类; RealSubject:真实主题类,即被代理的类; DynamicProxy:动态代理

2017-04-06 15:33:36 280

原创 代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。结构图如下: 其中: Subject:定义了RealSubject和Proxy的公用接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy; RealSubject:定义了Proxy所代表的的真实实体; Proxy:保存了一个引用使得代理可以访问实体,并提供一个与Subject接口相同的接口(方法),这样代理就可以替

2017-04-06 12:26:45 330

原创 责任链模式

责任链模式:使多个对象都有机会处理请求,从而避免请求发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。它的结构图如下: 其中: Handler:定义一个处理请求的接口,如果需要,接口可以定义出一个方法以设定和返回对下家的引用,这个角色通常是一个java抽象类或者java接口实现。 ConcreteHandler:具体处理者角色,处理它所负责的

2017-04-06 11:59:29 279

原创 装饰模式

装饰模式:即动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。(通常可以通过集成来实现功能的拓展,若需要增加的功能种类繁多,那么势必需要生成很多的子类,增加系统的复杂性,同时,使用继承实现功能的拓展,我们必须可预见这些拓展的功能,这些功能是编译时就确定的了,是静态的。) 下面为装饰模式的结构图: 其中: Component:定义了一个对象接口,可以给这些对象动态地

2017-04-04 10:35:09 233

原创 适配器模式

适配器模式:是将一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它的结构图如下: 其中: Target:这是客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口; Adapter:通过在内部包装一个Adapter对象,把源接口转换成目标接口; Adaptee:需要适配的类; 用代码描述如下:class Target{ publ

2017-04-03 23:05:07 266

原创 工厂模式

工厂模式可以细分为三种模式,分别为:简单工厂模式,工厂方法,抽象工厂。下面是对这三种模式自己的学习见解,希望大家共同来交流呀。 1,简单工厂模式:工厂类是根据提供给它的参数,返回的是几个可能产品中的一个类的实例;下图为它的结构图: 以设计一个计算器为例://运算类 class Operation { public double numberA=0; public double

2017-04-03 22:39:17 212

原创 单类模式

单类模式,确保某一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,通用代码为:public class Singleton { private static final Singleton singleton=new Singleton(); private Singleton(){ } public static Singleton getSingleto

2017-04-03 19:34:44 691

原创 Redis中的SortedSet存储类型

Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。在Sorted-Set中添加、删除或

2017-03-30 23:36:17 2024

原创 Redis中的set存储类型

在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完全相同的。换句话说,如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器

2017-03-30 23:21:08 4411

原创 Redis中的HashSet存储类型

可以将Redis中的Hashes类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。 HashSet相关命令 (1)HSET key field value:为指定的K

2017-03-30 23:06:38 11739

原创 Redis中List存储类型

在Redis中,List类型是按照插入的顺序排序的字符串链表。和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。在插入元素时,如果该键不存在,Redis将为该键创建一个新的链表。如果链表中所有的元素均被移除,那么该键也会从数据库中删除。 从元素的插入和删除效率的角度来看,我们从链表的两头进行插入或者删除,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该

2017-03-29 23:26:02 2925

原创 Redis中string数据存储类型

Redis是一个key-value数据库,支持主从同步,数据存在内存中,性能卓越。可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务。 字符串类型是Redis中最为基础的存储类型,它在Redis中是二进制安全的,这就意味着该类型可以接收任何格式的数据,在Redis中字符串类型的Value最多可以容纳的数据长度为512M。 String相关命令: (1)APPEND key

2017-03-28 20:07:45 1931 2

原创 myBatis持久层缓存

缓存的意义:将用户经常查询的数据当在缓存(内存)中,用户去查询数据就不用从磁盘(关系型数据库数据文件)查询,而是从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。 myBatis提供一级缓存和二级缓存:myBatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,二级缓存是跨sqlsession的,是mapper级别的缓存,对于mapper级别的

2017-03-28 18:26:50 1290

原创 myBatis的延迟加载

延迟加载:在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询,当需要关联信息再查询这个叫延迟加载。 mybatis中resultMap提供延迟加载功能,通过resultMap配置延迟加载。 配置mybatis支持延迟加载 设置项有: lazyLoadingEnabled:

2017-03-28 17:51:27 321

原创 myBatis中原始dao开发方式与Mapper代理方式

首先了解几个常用的类: (1)SqlSessionFactoryBuilder:是以工具类方式来使用,需要创建sqlSessionFactory就new一个SqlSessionFactoryBuilder。 (2)sqlSessionFactory:正常开发时,以单例方式管理sqlSessionFactory,整个系统运行过程中sqlSessionFactory只有一个实例,将来和spring整

2017-03-28 12:34:21 593

原创 myBatis开发过程

(1)编写SqlMapConfig.xml文件 (2)编写mapper.xml; (3)通过配置文件,编程创建SqlSessionFactory; (4)通过SqlSessionFactory获取SqlSession (5)通过SqlSession操作数据库,如执行添加,更新,删除,需要调用SqlSession.Commit(); (6)SqlSession使用完后进行关闭。 例如:向用

2017-03-28 11:49:32 334

原创 myBatis架构

mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 目前mybatis在github上托管。git(分布式版本控制,当前比较流程) MyBatis是一个优秀的持久层框架,它对jdbc的操

2017-03-28 11:24:24 300

原创 Velocity模板的学习

Velocity:是一个基于Java的模板引擎,可以让视图的设计者在web页面中引用java代码中定义的数据对象和命令。web designers只需要将精力用于视图外观设计上,而java程序员只需要关心如何写出高效简洁的java对象以实现业务逻辑。Velocity会将它们组装到一起,相比传统的jsp,velocity彻底的将避免在视图设计中出现java代码。 VTL(Velocity Templ

2017-03-28 10:53:34 2694

原创 myBatis中的动态sql

在美团一面被问到这个问题,所以就来好好总结一下。 首先要知道动态sql是什么?在传统的JDBC方法中,在组合复杂的SQL语句的时候,我们需要去拼接,稍有不注意,例如少了一个空格,就会导致错误,很不方便。而myBatis的动态sql正是为了解决这种问题的,其通过if,choose,when,otherwise,trim,set,foreach标签,可以组合成非常灵活的SQL语句,从而提高开发人员的效

2017-03-28 10:07:09 1810

原创 单类模式

单类模式,确保某一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,通用代码为:public class Singleton { private static final Singleton singleton=new Singleton(); private Singleton(){ } public static Singleton getSingleto

2017-03-28 09:21:52 342

原创 Spring的代理机制

Spring框架的概述Spring是分层的Java/EE full-stack(一站式)轻量级开源框架    *分层:SUN提供的EE的三层框架:web层,业务层,数据访问层(持久层,集成层)Struts2是web层基于MVC设计模式框架,Hibernate是持久的一个ORM.*一站式:Spring框架有对三层的每层的解决方案;   web层:Spring MVC.持久层:

2017-02-18 15:26:00 836

原创 初识mybatis

mybatis是一个Java持久层框架,Java中操作关系型数据库用的是jdbc,mabatis是对jdbc的一个封装。因为在企业开发中,根据项目大小,特点进行技术选型,jdbc操作数据库时效率是很高的,jdbc也是技术选型的参考。但是jdbc程序中存在问题:1,数据库的连接出现频繁的创建和关闭,浪费数据库资源,影响操作效率,所以设想使用数据库连接池。2,sql语句是硬编码,是不利于系统维

2017-02-17 09:44:14 317

原创 struts2学习

struts2获取请求参数:在Struts中,因为struts2为一个MVC框架,那么对应的关系为:V:jsp页面M:actionC:action StrutsPrepareAndExecuteFilter在Struts2中,获取请求参数:1.属性驱动   1.直接将action作为一个model,就可以得带请求参数(这种方式 ,底层是通过反射来实现的。)问题1:a

2017-01-16 17:11:35 432

空空如也

空空如也

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

TA关注的人

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