- 博客(135)
- 收藏
- 关注
原创 web.xml加载顺序
web.xml加载顺序应用服务器启动时web.xml加载过程,至于这些节点在xml文件中的前后顺序没有关系,不过有些应用服务器,我曾碰到过的 websphere就严格要求web.xml的节点顺序,否则部署不成功,所以还是赞成按照web.xml标准格式写content-param --> listener --> filter --> servlet1、启动WEB项目的时候,应用...
2013-10-11 11:31:01
196
原创 一个字节造成的巨大性能差异——SQL Server存储结构
今天同事问了我一个SQL的问题,关于SQL Server内部存储结构的,我觉得挺有意思,所以写下这篇博客讨论并归纳了一下。问题是这样的:首先我们创建两张表,一张表的列长度是4039字节,另一张表的长度是4040字节,他们就只有一个字节的差距,比如以下创建表的SQL:CREATE TABLE tb4039(c1INT IDENTITY,c2 char(4035)not null)...
2013-03-14 13:08:47
199
原创 switch-case用法
/** * switch() 中 是常量 * 每个case语句 没有break结束时, switch() 中 和 case 匹配相等后,后面的case语句都执行 * case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即"只是开始执行处的入口标号".因此, * 一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行,而且执行完一个case...
2013-01-13 08:59:18
202
原创 svn 安装配置
1.下载文件1)服务器端subversion, svn-1.4.4-setup.exe2)SVN客户端配置时使用客户端TortoiseSVN,我选择TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi2.服务器和客户端安装[b]3.建立版本库(Repository)[/b] 运行Subversion服务器需要首先要建立一...
2012-12-07 16:03:07
146
原创 myelipse 提示键设置
快捷建设置有问题,你重新设置一下在 window --> Perferences--> General--> keys 将Content Assist快捷键设置成Alt + /就可以了 注意:alt+/不要冲突, when选择: In Dialogs and Windowsw...
2012-12-07 15:53:24
127
原创 Hibernate的increment主键生成机制带来的问题(转)
在网站运行在apache和tomcat的负载均衡之后,总是出现一些奇怪的问题。开始有一些Duplicate entry的错误,但没在意。 今天又看了程序运行的错误信息,发现几乎都是Duplicate entry错误,集中出现在insert数据库的时候,insert user,insert message。看了Message类的主键生成是increment类型,看了看Hibernat...
2012-12-03 11:08:35
138
原创 大型网站面临的问题二
大型网站面临的问题: 海量数据处理大型网站每天的数据量可能上百万,甚至上千万或更多。如果存在设计不好的多对多关系,在前期可能没有任何问题,但是随着用户增长,数据量会以几何级数增加。此时,对于一个表的select和update(还不用说多表联合查询)的成本是非常高的。 数据并发处理 死锁在高并发情况下存在的概率非常高,这时使用缓存仍是一个大问题。因为在整个应用范围下,缓存是全局共...
2012-11-30 13:57:04
162
原创 大型网站数据库优化
大型网站数据库优化千万人同时访问的网站,一般是有很多个数据库同时工作,说明白一点就是数据库集群和并发控制,这样的网站实时性也是相对的。这些网站都有一些共同的特点:数据量大,在线人数多,并发请求多,pageview高,响应速度快。总结了一下各个大网站的架构,主要提高效率及稳定性的几个地方包括:1、程序程序开发是一方面,系统架构设计(硬件+网络+软件)是另一方面。软件架构方面,...
2012-11-30 13:51:57
169
原创 Hibernate常用的主键生成策略的原理、特点、应用场合
关于映射文件的问题下次再介绍,这次主要总结hibernate常用主键生成策略。 (1)increment a)对主键值采取自动顺序增长的方式生成新的主键,值默认从1开始。 b)原理:在当前应用实例中维持一个变量,以保存当前最大值,之后每次需要生成主键值的时候将此值加1作为主键.不依赖于底层的数据库,因此所有的数据库都可以使用 ...
2012-11-29 12:46:36
149
原创 struts2重复提交原理
相信都有表单提交的情况, 很多时候不希望出现重复提交原来的数据, 那么如何防止重复提交问题, 下面我是思考和一些参考整理的结果, 先看看其原理: 防止重复提交原理: 首先,在页面访问的时候server端产生一个标志位,其保存在session中,同时该标志位放到访问的页面的某个元素中(通常为隐藏域); 其次,在session存在的有效时间内,没有其它操作时其值...
2012-11-29 09:57:03
103
原创 Tomcat 乱码设置
第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。从.java->.class过程是,先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。从.jsp->.java->...
2012-11-13 12:17:33
172
原创 PL/SQL Developer 报“无法解析指定的连接标识符”
一。报“无法解析指定的连接标识符”64位win7下PL/SQL Developer 报“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法这个方法还真是非常简单,在你试过其它方法不行之后,在plsql.exe上右键属性,把兼容模式调整为xp sp2,重新运行即好了。二。数据量特大时报“result set exceeds the ma...
2012-10-31 16:47:01
253
原创 Tomcat 可以localhost访问,但不能127.0.0.1访问(转)
先介绍一下127.0.0.1与localhost的区别 区别1: localhost也叫local ,正确的解释是:本地服务器 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) 他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1 区别2: localhot(local)是不经网卡传输!这点很重...
2012-10-30 17:17:19
692
原创 listener.ora 、sqlnet.ora 、tnsnames.ora的关系以及手工配置举例
01.解决问题:TNS或者数据库不能登录。 02.最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置) 03.$netca 04. 05.俺仍有的疑问: 如何指定'listener.ora'存放的目录?不要默认目录($ORACLE_HOME/network/admin) 06.方法1: 在 '.profile' 中加入(例...
2012-10-30 13:04:35
146
原创 报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误
早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,帮其解决后,发现很多人遇到过这样的问题,因此写着这里。也许你没有遇到过,原因如下:你oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。而一旦你和我同事一样,有时把Oracle安装...
2012-10-30 12:19:51
113
原创 mysql 索引注意事项
mysql的优化可以从硬件设备的选择、操作系统、数据库结构设计、SQL查询、应用程序各个方面进行y优化,这里只从数据库的设计及查询语句方面进行优化。1,创建索引对 于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索 引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表...
2012-10-26 14:43:39
130
原创 Mysql 数字类型转换函数
1、将Int 转为varchar经常用 concat函数,比如concat(8,'0') 得到字符串 '80'2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串总结:类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型)可用的类型 二进制,同带binar...
2012-10-26 10:51:15
189
原创 MQ 视频教程地址
J2EE高级教程]16.WLS.JMS第一节http://my.ku6.com/watch?v=suIIn7nxsdQMWFPB&loc=youce_tuijian#sharehttp://v.youku.com/v_playlist/f3481632o1p0.html
2012-10-20 09:24:10
210
原创 Apache ActiveMQ
Apache ActiveMQ教程 一、特性及优势 1、实现JMS1.1规范,支持J2EE1.4以上2、可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM)3、支持多种语言客户端(java, C, C++, AJAX, ACTIONSCRIPT等等)4、支持多种协议(stomp,openwire,REST...
2012-10-20 08:45:23
104
原创 Webservice SOAP传输序列化总结
Webservice SOAP传输序列化总结最近在接触Webservice,在使用SOAP协议远程调用本地返回自定义类对象的[WebMethod]方法时总是出错,百度Google后解决问题,现总结如下:一.所有Webservice中传递的对象都必须能够序列化,这个是作为在网络之间传输的必要条件。XML WebService和SOAP标准支持的数据类型如下: 1.基本数据类型. ...
2012-10-16 17:01:16
336
原创 session与cookies区别
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你。...
2012-10-16 10:02:58
70
原创 Session原理机制
这个jsessionid是session的一个标识。 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说...
2012-10-16 09:58:06
101
原创 Post与Get区别
一、 在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同: 1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。 2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。 提示:...
2012-10-15 11:40:13
100
原创 http协议
HTTP协议是什么?简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。HTTP协议能做什么?很多人首先一定会想到:浏览网页。没错,浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用...
2012-10-15 11:01:42
87
原创 servlet 介绍
1、Servlet简介 Java Servlet是与平台无关的服务器端组件,它可以运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。 2、Servlet API Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.htt...
2012-10-15 10:42:56
80
原创 Mysql 参数autoReconnect=true 解决8小时连接失效
1. 即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsException: The last packet successfully received from the server was xxx milliseconds ago. 2. 服务器端...
2012-10-12 09:49:47
1678
原创 jQuery插件的开发包括两种
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。下面就两种函数的开发做详细的说明。 1、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuery类添加类方法,可以理解为添加...
2012-10-10 14:32:28
89
原创 JS代码判断IE6,IE7,IE8,IE9
JS代码判断IE6,IE7,IE8,IE9!2012-04-12 11:27JS代码判断IE6,IE7,IE8,IE9!2011年12月15日 星期四 14:01做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 有一种代码: var browser=navigator.appName var b_ve...
2012-10-10 14:25:33
97
原创 js兼容不通浏览器问题
以下代码在IE8下运行通过,在IE9中出错:document.createElement('');错误提示:exception : SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5)思路分析:第一步:兼容IE9,firefox,Opera,Safari等浏览器;var iframe = document.cr...
2012-10-10 13:55:43
94
原创 标准的 SQL 的解析顺序
标准的 SQL 的解析顺序为: (1).FROM 子句, 组装来自不同数据源的数据 (2).WHERE 子句, 基于指定的条件对记录进行筛选 (3).GROUP BY 子句, 将数据划分为多个分组 (4).使用聚合函数进行计算 (5).使用 HAVING 子句筛选分组 (6).计算所有的表达式 (7).使用 ORDER BY 对结果集进行排序 举例说明: 在学生成绩...
2012-09-19 14:19:10
92
原创 SQL select查询原理--查询语句执行原则
1.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的);然后根据SELECT的选择列选择相应的列进行返回最终结果。 1)简单的单表查询 SELECT 字段 FROM 表名 WHERE 条件表达式 那它们是按什么顺序执行呢?分析器会先看语句的第一个词,当它发现第一个词是SELECT关键字的时候,它会跳到FROM关键字,然后通过FR...
2012-09-19 14:04:14
103
原创 应用程序的SQL查询原理
作为B/S架构的开发人员,总是离不开数据库,一般开发员只会应用SQL的四条经典语句:select ,insert,delete,update。但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理。B/S架构中最经典的话题无非于三层架构,可以大概分为数据层,业务逻辑层和表示层,而数据层的作用一般都是和数据库交互,例如查询记录。我们经常是写好查询SQL,然后调用程序执...
2012-09-19 13:40:18
109
原创 js转json的方法
var dataObj = eval('(' +data+ ')')data是返回来的json。dataObj就是json对象了。为什么要添加 '(' 与 ')' 作为开始于结尾呢?json是以"{}"开始以及结束的,在js中,它会被当做语句块来处理...
2012-09-13 17:12:22
113
原创 tomcat配置编码中文
第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。从.java->.class过程是,先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。从.jsp->.java->...
2012-09-13 11:09:17
208
原创 tomcat精华配置-包括单点登录
1、配置系统管理(Admin Web application) 大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context、data source...
2012-09-13 11:05:58
240
原创 Spring Security 中的盐值加密
在 Spring Security 文档中有这么一句话: "盐值的原理非常简单,就是先把密码和盐值指定的内容合并在一起,再使用md5对合并后的内容进行演算,这样一来,就算密码是一个很常见的字符串,再加上用户名,最后算出来的md5值就没那么容易猜出来了。因为攻击者不知道盐值的值,也很难反算出密码原文。" 呵呵, 问题如何理解这句话: "先把密码和盐值指定的内容合并在一起,再使用md...
2012-09-12 10:19:47
706
原创 盐值加密-MD5
什么叫盐值加密 Spring security怎样进行盐值加密以前的md5原理是 密码密文=md5算法(密码明文); 这样明文与密文其实还是一一对应的 那么人家就可以用字典攻击(就是一个一个的试)来探测密码 加盐(盐值加密)的算法很多 Spring security用的是: 密码密文=md5算法(密码明文{盐值}); 这个...
2012-09-12 10:18:27
485
原创 spring 加载过程
这几天在看spring的源码,涉及到spring启动位置的部分,下面就看看spring到底是从哪儿开始加载的。本文使用的是spring3.0M3 首先spring的加载会借助一个监听器ContextLoaderListener,直接上web.xml文件 Xml代码 1. 2. org.springframework.web.context.ContextL...
2012-09-07 14:12:50
434
原创 java定时器
在现实生活中,会出现这样的例子,比如烧水,一般烧了20分钟后,水开了,会需要及时换水,再烧20分钟,水又开了,继续提醒,比如上班,每天早晨8点钟的闹钟会及时提醒, 那么在java程序中如何实现 这种 已经被设定了的定时的任务呢,在下面会依次介绍关于如何实现定时器来操作一些定时任务的业务需求。 当前java程序中 能够实现定时的 主要有 三种 方式 ,分别是: java定时器 , s...
2012-09-07 09:51:45
115
原创 Hibernate中 一 二级缓存及查询缓存
最近趁有空学习了一下Hibernate的缓存,其包括一级缓存,二级缓存和查询缓存(有些是参照网络资源的):一、一级缓存 一级缓存的生命周期和session的生命周期一致,当前sessioin一旦关闭,一级缓存就消失,因此一级缓存也叫session 级的缓存或事务级缓存,一级缓存只存实体对象的 ,它不会缓存一般的对象属性(查询缓存可以),即当获得对象后,就将该对象的...
2012-08-30 17:39:17
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人