- 博客(67)
- 资源 (6)
- 收藏
- 关注
原创 springMVC整合异步请求特性
springMVC中也整合了异步请求的特性,我们只需要配置好支持异步请求特性,然后结合java自带的回调函数处理就可以实现简单的异步请求,但是这样的异步请求往往是不能满足我们需求的,所以最终我们还是会使用比较完整的异步请求接口,那就是spring的WebAsyncTask和DeferredResult。首先需要添加配置项:springmvc-servlet.xml:<mvc:annotation-
2017-03-16 15:25:10
6277
原创 springMVC解决ajax请求乱码
最近在项目的使用过程中发现在springmvc的项目中,使用返回页面的请求方式,数据都能正常显示,但是对于ajax的请求,始终显示乱码。首先第一种是因为我们在web.xml中配置了spring的字符编码过滤器,那么使用ajax请求为什么就不行了呢?下面简单的分析一下,仅供参考。先列出简单的请求代码:浏览器端:<script type="text/javascript">$.ajax({
2017-03-16 11:26:24
6548
1
原创 springMVC+servlet3.0异步请求之AsyncContext
之前已经讲解过servlet3.0以下怎么实现异步请求,那就是使用jetty的continuation。下面来举例说明使用原生的servlet异步机制来进行异步请求。由于之前已经搭建了一个基于springmvc的框架,下面将会基于springmvc来讲解AsyncContext。先贴上代码,然后根据代码来体验异步流程package com.ds.test.asyncservlet;import ja
2017-03-14 23:43:44
9032
转载 Java中private、protected、public和default的区别
有时候开发久了就会忘记一些基础的知识,经常忘记,这里记录一下。public: 具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。protected: 主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西default: 有时候也称为friendly
2017-03-14 14:31:43
425
转载 DQL、DML、DDL、DCL的概念与区别
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>数据操纵语言DML 数据操纵语言DML主要有三种形式: 1) 插入:INSERT 2)
2017-03-13 22:23:26
552
转载 mysql共享锁和排他锁
什么是共享锁,什么是排他锁?共享锁也叫读锁,简称S锁,原理:一个事务获取了一个数据行的共享锁,其他事务能获得该行对应的共享锁,但不能获得排他锁,即一个事务在读取一个数据行的时候,其他事务也可以读,但不能对该数据行进行增删改。 排他锁也叫写锁,简称x锁,原理:一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁(排他锁或者共享锁),即一个事务在读取一个数据行的时候,其他事务不能对该数据
2017-03-13 22:04:39
851
转载 深入理解乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、tair等都
2017-03-13 16:49:12
433
转载 alpha版、beta版、rc版的意思
很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思。alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比a
2017-03-13 16:39:32
448
原创 ActiveMQ的安装与配置
一、下载与安装直接去官网(http://activemq.apache.org/)下载最新版本即可,由于这是免安装的,只需要解压就行了。安装完之后进入bin目录,双击 activemq.bat文件(linux下在bin目录下执行 activemq start)二、访问控制台在浏览器输入:http://ip:8161/admin/,出现如下界面表示启动成功 三、修改端口号61616为对外服务端口号
2017-03-13 14:01:51
14480
原创 异步servlet之continuation
一、背景为什么要使用异步servlet?异步servlet顾名思义就是异步处理,简单来说就是客户端发起一个http请求之后,服务器端可以将这个请求挂起,那么就腾出了保持客户端可服务器连接的线程(假设为线程A),注意此时客户端和服务器端的http连接仍然处于保持状态。服务器端可以另外起一个服务器端的线程(假设为线程B)去处理耗时任务,那么线程A就可以供其他客户端来请求占用,当线程B执行完成之后就返回数
2017-03-12 23:51:21
1391
原创 ActiveMQ(四)———Ajax调用
一、背景使用aciveMQ最多的场景就是服务器端向客户端推送消息,当然这里的服务器+客户端合起来组成了消费者或者生产者,不要理解成客户端成了消费者,服务器端成了生产者。activeMQ使用ajax来监听服务器端推送的消息主要是用到了一种特殊的轮询保持机制。一般的轮询就是间隔一段时间向服务器请求数据,此时服务器会立马给出应答。而轮询保持则是向服务器发送了请求(包括等待时间比如20秒),服务器接受到请求
2017-03-09 15:03:13
8619
5
原创 java中泛型的使用
泛型的使用对于代码质量的提高有很多作用。泛型可以增加程序的可读性,可以使代码得到一定程度的复用。不使用泛型时,如果是装入集合操作,那么元素都被当做Object对待,失去自己的类型,那么从集合中取出来时, 往往需要转型,效率低,容易产生错误。 下面看一段比较全面的泛型代码:package com.ds.test.all;import java.util.ArrayList;public class
2017-03-07 22:44:10
323
原创 ActiveMQ(三)———spring消息持久化配置
一、Topic与Queue比较1、TopicPublish Subscribe messaging 发布订阅消息。topic数据默认不落地,是无状态的。并不保证publisher发布的每条数据,Subscriber都能接受到一般来说publisher发布消息到某一个topic时,只有正在监听该topic地址的sub能够接收到消息;如果没有sub在监听,该topic就丢失了。一对多的消息发布
2017-01-10 00:04:16
3021
原创 ActiveMQ(三)———使用spring来发送消息
一、spring结合activemq简介前面已经介绍了使用activeMQ来发送消息的基本操作,归纳起来就是五点:1.创建连接Connection ;2.获取session;3.创建Destination ;4.创建消费者或者生产者;5.接收或者发送消息。现在使用spring来结合使用activeMQ,过程也基本一致,只是将java代码变成了spring配置文件中的bean,原理都是一样的。在我们工
2017-01-08 23:12:20
3102
原创 ActiveMQ(二)———使用Topic来发送消息
摘要:每个消息可以有多个消费者,发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。引入三个jar包,这些jar包在activeMQ的安装包中都有: ge
2016-12-19 23:20:34
3190
原创 ActiveMQ(二)———使用Quene来发送消息
摘要:点对点的发送消息,使用消息队列Queue。每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列,接收者在成功接收消息之后需向队列应答成功。引入三个jar包,这些jar包在activeMQ的安装包中都有: geronimo-j2ee-mana
2016-12-19 23:10:31
699
转载 ActiveMQ(一)——JMS概要
转载至:http://blog.youkuaiyun.com/jiuqiyuliang/article/details/46701559摘要:The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java Platform Enterprise Edit
2016-12-19 22:26:36
379
原创 mysql正则表达式
一、mysql正则表达式查询正则表达式本文就不做多的说明,可以参考其他正则表达式文档,使用的关键字就是regexp。mysql> select * from name_address where address regexp '^.*(一路)$';+----------+------+----+| address | name | id |+----------+------+----+|
2016-12-14 23:15:49
391
原创 mysql连接查询
一、mysql常用连接INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。mysql> select * from name_address;+----------+------
2016-12-14 22:48:41
408
原创 mysql、oracle分页查询数据库
一、mysql分页查询select * from tableName where id limit (当前页码-1)*页面容量 , 页面容量第一个参数:数据偏移量,从1开始。 第二个参数:每页的数据量。二、oracle分页查询SELECT * FROM (SELECT t2.*, ROWNUM AS rowno FROM (**SELECT *
2016-12-05 23:35:54
611
原创 mysql批处理sql文件
一、mysql中的delimiter我们一般在写sql脚本时,是不会用到delimiter的,一般情况下也用不到他具体的作用。delimiter的作用:告诉MySQL解释器,该段命令是否已经结束了,MySQL数据库是否可以执行了。我们一般是以分号;结尾一条sql,而delimiter的默认值也是;。当我们在mysql命令行敲完一段sql语句之后,在加上分号点击回车就能执行这条sql。但是当我们需要输
2016-11-29 21:56:11
3478
原创 maven细节讲解
一.坐标详解先来一下段maven依赖:<groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.22</version><type>jar</type><scope>compile</scope>groupId:定义当前Maven 项目隶属的实际项目。 artifactId:该元素定义
2016-11-08 21:42:12
473
转载 Linux清理内存命令
既然要清理内存,那么首先会看内存使用情况,看一下free命令:[root@dstn proc]# freetotal used free shared buffers cachedMem: 515588 295452 220136 0 2060 64040-/+ buffers/cache: 229352 286236Swap: 682720 112 682608
2016-11-07 22:09:00
1288
原创 Fiddler 教程
本人在工作中需要验证一些功能的缺陷,使用了这个工具,感觉十分好用,下面把教程链接贴出来供大家参考。 Fiddler使用教程另外补充一下本人在安装这个软件时遇到的问题。.net framework 4.0安装进度条不动,在网上百度了一下很多人都遇到过这个问题,下面提供两个解决方案。百度经验解决方案不知道为什么按照百度上面的始终解决不了,索性到360上面直接搜索这个 .net framework,
2016-11-07 19:42:25
280
原创 oracle创建job
一、基本语法与mysql的event事件类似,用来创建数据库的定时任务。DBMS_JOB.SUBMIT( job OUT BINARY_INTEGER, what IN VARCHAR2, NEXT_DATE IN DATE DEFAULTSYSDATE, interval IN VARCHAR2 DEFAULT '
2016-09-06 22:44:27
646
原创 mysql创建event事件
一、基本语法CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE]
2016-08-23 23:06:58
10333
原创 mysql创建存储过程
一、变量的使用1.用户变量:以”@”开始,形式为”@变量名。” 用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效,使用如下图: 2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名。show global variables; 对所有客户端生效。只有具有super权限才可以设置全局变量。 3.会话
2016-08-15 22:22:46
39450
原创 JAVA序列化之RMI远程调用
RMI(Remote Method Invocation)是Java中的远程过程调用(Remote Procedure Call,RPC)实现,是一种分布式Java应用的实现方式。它的目的在于对开发人员屏蔽横跨不同JVM和网络连接等细节,使得分布在不同JVM上的对象像是存在于一个统一的JVM中一样,可以很方便的互相通讯。通讯就涉及到了数据的编码和解码,对于一般的数据类型我们不需要这么做,但是涉及到比
2016-07-19 23:24:14
5314
转载 Java中的ReentrantLock和synchronized两种锁定机制的对比
原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构
2016-07-12 23:24:07
505
原创 JAVA多线程之Runnable和Thread比较
在我们开发的过程中常常会碰到多线程的问题,对于多线程的实现方式主要有两种:实现Runnable接口、继承Thread类。对于这两种多线程的实现方式也是有着一些差异。既然实现了多线程那必然离不开管理这些线程,当问题比简单时一个或者几个线程就OK了,也涉及不到效率问题。一旦线程数量多起来的时候,必然躲不过这些线程的创建与销毁,而往往这是很浪费时间的。这时就需要利用线程池来进行管理,既免去了我们创建线程
2016-07-11 21:15:43
51163
17
原创 Java IO之Socket通信
一、通讯协议TCP、UDPJava Socket通信是基于TCP协议来完成的。讲Socket通信之前有必要先了解这两种底层协议。TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。TCP协议通过三次握手建立连接,四次握手断开连接,带重传功能的肯定确认来保证可靠传输。其中HTTP协议就是基于TCP协议来实现的。HTTP1.0默认短连接,HTTP1.1默
2016-07-05 15:25:10
743
原创 DNS域名解析介绍
一、域名解析的过程当我们在浏览器的地址栏输入一个地址链接时,其实发生了很多事情。其中最初的一步就是目标主机地址的解析。这个过程是比较复杂的,下面主要讲解域名解析的主要过程。例如,我们在地址栏输入www.baidu.com,那么在解析这个域名的过程中主要发生了如下的动作:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器对域名的缓存是有时间限制,一般情况
2016-06-16 23:56:08
667
原创 Java格式化日期
1.背景在Java项目中格式化日期是很常见的,那么对于每一个匹配模式就应该有所了解才能在实际项目中游刃有余。2.匹配模式详解字符 解释 例子G Era designator ADy Year 1996; 96Y Week year Year 2009; 09M Mo
2016-03-16 16:15:20
375
原创 mysql-oracle查询所有表的记录数
此前做一个mysql到oracle的数据迁移,做完之后为了简单的判断数据是否有丢失,就使用了这个数据量的对比方法。但是发现mysql和oracle查出来的数据量竟然不一致,吓死了,还以自己写的程序有bug,后来仔细对比了一张表的记录,数据量又是一致的,反而用mysql的那个table_rows的方法查出来对应表的数据少那么几十条,然后我就想到还是别用mysql自带的东西了,用原生的语句来查一把,下面
2016-03-13 10:58:24
1289
原创 springMVC No mapping found for HTTP request with URI
出现这种情况一般有如下可能和处理方式:检查你的访问地址是否正确如果是静态资源(js、css、image)无法访问,可以修改springmvc的拦截地址<servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
2016-03-11 14:47:21
440
原创 Ant中的java
Ant中包含了java的一系列操作,例如编译、打包、运行等等。虽然现在已经有了很优秀的编辑工具Eclipse来代替我们做这些事情,但是对于开发人员来说,搞清楚这些基本运行方式还是很有必要的。1.Ant编译、运行java代码首先有这样一个java文件,注意这里不是默认包。package com.ds.test;public class HelloWorld { public static voi
2016-03-09 23:05:54
753
原创 Ant入门
1.Ant的安装在Apache官网下载最新Ant环境变量设置: 系统变量:ANT_HOME=d:\ant_home\apache-ant-1.70在 用户变量:中加入Ant 的bin 目录:path=%ANT_HOME%\bin测试ant是否安装成功:进入cmd运行Ant.出现如下提示,说明安装成功. E:\srcgen\webwork>ant Buildfile: build.xml
2016-03-08 21:06:27
332
原创 java防盗链
一.防盗链的概念内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。二.防盗链的产生一般情况下,http请求时,一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的
2016-03-07 22:35:15
2842
韩顺平写的工具类SqlHelper
2015-01-26
maven+springmvc+spring+ibatis+velocity+mysql
2015-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人