自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鲸鱼programmer的博客

纪录了平时自己学习的过程

  • 博客(43)
  • 收藏
  • 关注

原创 Cookie与Session

一、Cookie     Cookie是客户端保存会话(会话指的打开浏览器,通过超链接访问了多个页面后,再将浏览器关闭的整个过程)数据的一种技术,它是Servlet发送到Web浏览器的少量信息,这些信息是由浏览器保存的;当用户通过浏览器访问服务器中的资源时,程序将每个用户的数据以Cookie的形式写给用户各自的浏览器,由浏览器将其保存在客户端的缓存中,当用户再次使用浏览器去访问服务器中的web

2017-08-11 11:10:45 297

原创 HttpServletRequest

HttpServletRequest对象用来操作Http请求中的请求部分(请求消息行,请求消息头,请求正文),下面是常用的方法1、请求行     ①getMethod();获得请求方式(Get,Post)     ②***getRequestURL();获得客户端请求的完整的URL     ③***getRequestURI();获得请求行中的资源名部分     ④***get

2017-08-07 14:28:32 338

原创 HttpServletResponse

HttpServletResponse对象是用来操作HTTP请求中的响应部分(响应行、响应头、和响应正文)的,下面是HttpServletResponse对象中操作这些内容的常用方法1、响应行     响应行中可以操作的内容只有一个状态码了(如200,404等),在这里可以使用setStatus(int s)方法来设置响应状态码2、响应头     操作响应头的方法主要有两个:

2017-08-05 15:17:12 346

原创 Servlet的三种创建方式与线程安全

一、实现javax.servlet.Servlet接口     详细代码如下:import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.Ser

2017-08-04 14:00:52 430

原创 Servlet及其生命周期

一、什么是Servlet     servlet是运行在Web服务器上的应用程序,它能够通过HTTP协议接收和响应来自Web客户端的请求二、编写一个servlet程序     可以先感受一下servlet,编写一个简单的servlet程序     1、创建一个webProject,编写一个java类,实现servlet接口     2、修改web.xml文件,给servlet提

2017-07-28 16:44:47 405

原创 JavaScript学习笔记

一、JS简介     1、JS是什么          JS是基于对象和事件驱动的脚本语言,它可以嵌入到html之中,实现与用户交互等功能,它不能够访问本地磁盘,本身是跨平台的     2、JS的作用          JS能够动态的修改html和css代码,还能够动态的校验数据     3、JS的组成          ECMAScript          BOM(

2017-07-25 13:44:26 277

原创 CSS笔记

一、css简介     1、css是什么          官方给出的定义为:层叠样式表,换句话说,css是对html进行样式修饰的语言     2、css的作用          (1)修饰html,使得html的样式更加好看          (2)提高样式代码的重用性          (3)将html的内容与样式分离,使其不相耦合,有利于代码的维护与修改   

2017-07-22 13:04:02 373

原创 HTML的标签

一、HTML简介    1、什么是HTML        HTML是一种超文本标记语言,它不是编程语言,它是利用一系列标签来描述一个网页的语言,不同的标签能够实现不同的功能。它通过一个个的标签将信息展示给用户    2、HTML的书写规范 这里面包括页面的一些属性(标题等)、供浏览器解析(编码格式等)、引入外部文件等信息(css文件等),

2017-07-19 17:22:07 385

原创 使用DButils对数据库进行操作

一、DButils      commons-dbutils是阿帕奇(Apache)提供的一个开源的JDBC工具类库,它将JDBC进行了一系列简单的封装,使用起来很方便,并且其源代码极易读懂,因此,使用dbutils能够从很大程度上减少JDBC编码的工作量。我们可以从Apache官网去下载到这个工具包,下载地址为http://commons.apache.org/proper/commons-

2017-07-15 18:55:59 2014

原创 JDBC数据库连接池dbcp

一、数据库连接池      我们知道,在开发基于数据库的Web程序时,对数据库进行操作时,传统的步骤为:①在主程序中建立数据库连接,②进行SQL操作③释放数据库连接,但是这种传统的方法存在着一些问题,其中最显著的问题就是当每次需要数据库连接的时候,就会向数据库申请建立一个连接,等到执行完操作之后就会释放这个连接,这样的话每次访问数据库都会消耗一定的时间,当频繁的进行数据库的连接操作时,就会占用

2017-07-14 15:22:42 526

原创 利用JDBC批量处理语句

有时候我们想要在本地数据库的一个表中插入大量的数据,这时候如果用普通的方法,插入的速度就会很慢,所以JDBC中给我们提供了一个方法,用来批量的插入数据,该方法在PreparedStatement对象中,方法名为addBatch(String s),其中的参数根据情况传入,可以有参数,也可以无参数,有参数的情况是一条SQL语句的批量传参,而有参数的情况是多条语句的批量处理,这个方法可以将每一条准备好

2017-07-14 11:45:59 409

原创 JDBC事务的隔离级别

一、事务的隔离级别      多个事务在数据库中同时运行,当他们访问到数据库中的同一个数据的时候,如果没有采用隔离机制,就会导致一些并发问题的发生,在数据库中有以下几个并发问题            ①读"脏"数据  指事务T1修改了某一数据后,并未提交,而此时事务T2又读到了这个数据(此时T2读到的是T1修改后未提交的数据),然后又因为某种原因导致T1被撤销(即rollback),这时T

2017-07-13 22:28:00 478

原创 利用JDBC处理事务

一、事务      学过数据库的人都知道,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全都不做,它是一个不可分割的工作单位,而事务又有其ACID特性,分别是以下四种:            ①原子性  指的事务中的操作要么全都做,要么全都不做            ②一致性  指的是事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态         

2017-07-13 09:42:24 532

原创 MySQL 中Blob类型数据的插入和读取

在MySQL中Blob是一个二进制的对象,它是一个可以存储大量数据的容器(如图片,音乐等等),且能容纳不同大小的数据,在MySQL中有四种Blob类型,他们的区别就是可以容纳的信息量不容分别是以下四种:      ①TinyBlob类型  最大能容纳255B的数据      ②Blob类型  最大能容纳65KB的      ③MediumBlob类型  最大能容纳16MB的数据 

2017-07-12 13:55:42 153981 8

原创 使用BeanUtils工具类操作JavaBean

一、字段与属性    1、Java类的属性        Java类的属性,它和之前的类中的成员变量不一样,在之前的文章中,有时我也将属性称之为别名,Java类的属性是通过类中的getter()与setter()方法来确定的,例如  getXxx() ,在这个getter方法中,去除方法名前面的"get"后,剩下的字母的第一个字母小写即为Java类的属性    2、字段

2017-07-10 14:42:44 1980

原创 DAO设计模式

一、DAO    DAO是英文 Data Access Object的缩写,它是可以用来访问数据库的一个类,该类中包含了一些方法,从而可以使该类做到对数据库中的信息实现增,删,改,查的操作,而我们之所以要使用DAO类,除了方便之外,还有一个重要的意义就是使用DAO类对数据库进行操作的话在以后的代码修改和维护的时候会让开发人员轻松很多。    那么DAO类中可能会包含了哪些对数据库执行操作的

2017-07-10 13:17:15 276

原创 利用元数据编写查询的通用方法

一、获取JDBC元数据     现在在本地数据库中有一个表如下图所示     现在我们想要查询该表中的某一元组,则查询到的元组可以当作是一个对象,所以有以下Student类对象以及提供数据库相应操作的类JDBCTools:JDBCTools中有静态的方法release()用来释放数据库连接,以及getConnection()方法用来建立数据库的连接,相应的Student类中除了属性

2017-07-09 14:49:01 844

原创 通过PreparedStatement执行更新查询操作

PreparedStatement是Statement的一个子接口,从它的名字就可以看出,它是"准备好了"的Statement,所以它表示的是将一条sql语句进行预编译;要获取它的对象可以通过Connection中的prepareStatement(String  sql)方法来获取,其中的参数为带有占位符( ? )的sql语句,所以它其中提供了补充占位符变量值的一些setXxx()方法;

2017-06-10 15:18:41 11634

原创 通过ResultSet执行查询操作

在JAVA中,查询操作需要在建立了数据库连接后,获取Statement对象并且利用该对象的executeQuery(String sql)方法来返回一个对应的数据库的数据表(相当于将表返回),该数据集时ResultSet类型的,当得到了ResultSet对象后,就可以调用一系列方法来查询指定的某个元素,具体步骤如下:     1、获取数据库连接得到Connection对象     2、通过

2017-06-09 11:14:06 3495

原创 通过Statement接口实现数据库的更新操作

Statement接口位于java.sql.Statement下,想要对数据库执行更新操作,需要通过以下步骤     ①获取了数据库连接并创建需要被执行的sql语句(sql语句为String型)     ②使用Connection对象中的createStatement()方法获取用于执行sql语句的Statement对象     ③调用刚刚获取到的Statement对象中的execut

2017-06-08 16:17:23 2511

原创 通过Driver与DriverManager连接数据库

一、通过Driver接口连接数据库        Driver是JAVA中的一个接口,它的实现是由数据库厂商去实现的,能够通过它去获取数据库的连接,想要使用Driver,需要通过如下步骤:     ①从Mysql官网下载到驱动后解压     ②在当前项目中新建一个文件夹     ③将解压后的驱动文件夹中的jar结尾的文件添加到步骤②中新建的文件夹的目录下     ④右键单击ja

2017-06-08 13:58:18 7836

原创 反射

反射机制用通俗的话来说就是Java程序可以加载一个在编译运行时才能够得知类名的class(也叫运行时类),从而可以访问其属性,方法,构造方法等而反射的源头在Java.lang.Class包下,意味着我们要获取了Class类的实例,才能够创建对应的运行时类的对象并且访问其结构或者调用其指定的结构(也就是能够创建运行时类对象或者访问其属性,方法,构造方法等),下面是Class实例的获取一、Cl

2017-06-07 15:10:40 216

原创 线程安全与线程通信

一、线程安全出现的原因     在使用多线程的时候,往往会出现线程安全的问题,我们直到一个共享数据是可以由多个线程一起操作的,但是当一个共享数据在被一个线程操作的过程中,操作未被执行完毕,而此时另一个线程参与进来操作该共享数据,就会导致共享数据存在安全问题二、解决线程安全问题     解决线程安全问题的办法就是当共享数据被一个线程操作完毕后,才能允许其他线程进行操作,所以这里有两个解决

2017-05-29 18:53:16 303

原创 多线程的创建

一、用继承java.lang.Thread的方法创建多线程     创建多线程可以让一个类通过继承Thread类并且重写其run()方法来创建,在run()方法中应该写上该线程要实现的具体功能,创建好多线程后,可以在主函数中创建其对象,通过该对象去调用start()方法(不能调用run())来启动此线程,但是一个线程只能执行一次start()方法,具体的创建过程看下面的代码://通过继承创

2017-05-29 10:40:16 256

原创 RandomAccessFile

RandomAccessFile可以支持文件的随机访问,即它有如下特点:1、既能充当一个输入流,也能充当一个输出流,并且它操作的是字节型2、它支持从一个文件的任意位置进行写入(即利用seek(long i)方法来表示从文件的第几个字符前开始插入,但是这里的插入所指的是覆盖)     之所以它能这样做,是因为它的构造器RandomAccessFile(File f , String mo

2017-05-28 19:44:51 212

原创 IO流之对象流

一、ObjectInputStream与ObjectOutputStream     对象流是用来存储和读取对象的流,它可以将对象写入数据源中,也可以将对象从数据源读取出来,整个的过程叫做序列化与反序列化     1、序列化          序列化是用ObjectOutputStream将JAVA中的一个对象写入到IO流中(利用其中的writerObject()方法等),也就是说,它

2017-05-28 14:43:39 221

原创 IO流之缓冲流

缓冲流与节点流类似,也是由四个IO流的抽象基类继承过来的,与节点流不同的地方就在于缓冲流的效率更高,且缓冲流的构造器形参是节点流,下面是四个缓冲流:①BufferedInputStream②BufferedOutputStream③BufferedReader④BufferedWriter一、BufferedInputStream与BufferedOutputStream的使用

2017-05-27 23:07:27 233

原创 IO流之节点流

JAVA中的IO流是用来处理设备之间的数据传输的IO流的接口都存放在java.io包下,它的主要分类如下一、流的分类     1、流的分类主要是根据流向的不同可以分为分为输入流、输出流     2、根据处理数据的单位分为字节流与字符流     3、按照角色的不同可以分为节点流和处理流二、IO体系     抽象基类:抽象基类本身是没有方法能够去调用的,需要通过它的子类去调

2017-05-27 17:07:46 527

原创 File类及其方法

File类存在与java.io.File包下,File类是一个类,可以有构造器及创建其类对象,此对象对应着一个文件(.txt .doc等)或者目录,File类对象是可以跨平台的,但是在File类中只能对文件进行创建,删除,重命名等,并不能对其内容进行操作,涉及到对文件的操作就必须用io流来控制了,也就是说,Flie类的对象常常被用来作为io流对象的构造器的形参,让io类对象可以对其进行操作。 

2017-05-26 19:06:53 376

原创 枚举类

在JDK1.5之后新增了一个关键字叫做enum,利用这个关键字可以进行枚举类的创建,例如:          enum Person{        MM,GG ,JJ;}          上面这个是最简单的枚举类的创建了,可以看到之中的三个对象之间都是用逗号隔开的,最后一个对象用封号,例子中的MM,GG,JJ都是枚举类Person的对象,所以是可以对他们进行实例化的。既然枚举类

2017-05-24 23:03:29 189

原创 自定义泛型

除了在集合中我们可以使用已经定义好的泛型之外,我们自己还可以自定义泛型,如:自定义泛型类、自定义泛型方法。一、自定义泛型类具体的定义方法如下:          public class GenericBySelf {        private String name ;        private Integer id ;        private T t 

2017-05-24 17:14:32 334

原创 通配符:?

我们都知道,所有基本数据类型都是Object类的子类,因此他们满足多态:Object  A = new String("AA");,但是对于泛型,是否满足多态呢,答案是否定的,因为每一个泛型与泛型之间都是并列关系,是不能够向上转型,即不满足多态的比如:              List L1 = new ArrayList              List L2 = new Array

2017-05-24 17:04:34 283

原创 在集合中使用泛型

泛型是Jdk4.0以后的版本中所增加的新特性,增加这个新特性的原因是为了去解决元素存储的安全问题以及在获取和输出元素时需要进行强制转换的问题。     我们都知道,在没有使用泛型的时候,创建一个集合时编译器是不会报错的,就像下面这样List B =new ArrayList();     但是编译器会有个警告,意味着我没们有加泛型,因为我们在创建了上面这个List类的集合B后,添加的元

2017-05-22 13:09:22 1298

原创 Collections工具类

Collections是一个操作Set、List、map等集合的工具类,他其中提供了一些static方法对集合中的元素进行排序、查询、修改等一系列操作,同时还有对集合对象设置不可变,对集合对象实现同步控制等方法。          下面是一些static方法:     1、void reverse(List e)  将List集合e中的元素顺序颠倒     2、void shuffle

2017-05-21 16:11:16 210

原创 Map接口及其实现类

Map接口,是和Collection接口并列的一个接口,它其实是一个有着映射关系的集合"key-value(也可以叫entry)"(就像数学中的函数一样),由于key存储时用的是set来存储,所以key是不可重复的,而value是用Collection存储的,它是可重复的,整个的key-value是用set来存放的,即一个key有唯一一个对应的value(就像y = k(x)一样),所以它也是

2017-05-21 14:49:35 953

原创 Set接口中的TreeSet

TreeSet也是List的一个子类,它同样是拥有Collection接口的所有方法,TreeSet类主要有以下几个特点:1:TreeSet类中所存储的元素必须是属于同一个类的2:TreeSet类可以按照所添加进如集合的元素的指定的顺序进行遍历。比如按字典的排序顺序遍历。     我们先来看一个例子:import java.util.Set;import java.util.T

2017-05-18 23:47:09 398

原创 Set接口中的HashSet与LinkedHashSet

Set接口也是Collection接口下的一个子接口,它主要包含以下三个实现类:1:HashSet2:LinkedHashSet3:Treeset     其中,HashSet是Set接口中的主要实现类,下面具体介绍一下Set1:Set类和List类相反,它所存入的元素的顺序是无序性的并且是不可重复的,也就是说事先存入的时候我们并不能够知道被存入元素将会被放在哪个位置,并且如果

2017-05-18 15:35:04 413

原创 List接口

List接口是Collection接口的一个子接口,在List接口下也有一些子类,这里先不细说;List接口的主要实现类是用ArrayList来实现的,ArrayList是List下的一个子类,一般把它叫做动态数组。那么既然List是Collection的一个子类,它就一定包含了其父类Colection的全部方法,同时还新增了一些方法如下:1:void add(int Index , Obje

2017-05-17 18:14:56 269

原创 集合(容器)

JAVA中的集合主要是用来干嘛的呢?在JAVA语言中,为了方便对多个对象的操作,我们就需要一些能够存储这些对象的东西,虽然数组Array可以实现这个功能,但是它是有一定的弊端的。这时候就要用到JAVA集合了,JAVA集合就像一种容器,能够动态的将对象存入容器中。     先说说数组,虽然数组也可以用来存储对象,但是它是有它的弊端的          ①数组一旦被创建后,它的长度是不可变得,

2017-05-17 16:44:28 714

原创 异常

所谓异常,就是指在JAVA语言中,程序执行的过程中发生了不正常的情况。在我们通常情况下编写代码时编译时出现的那些语法错误和逻辑错误不是异常。对于JAVA中的异常,可以分为error(错误)和exception(异常)两大类。对于error,它指的是JAVA虚拟机无法解决的严重的问题,一般来说我们代码编写员是不编写相应的代码对他进行处理的。JAVA中的异常处理主要处理的是exceptio

2017-05-14 21:40:07 220

空空如也

空空如也

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

TA关注的人

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