web开发
文章平均质量分 76
Richard_J
Java攻城狮
展开
-
RunTime.getRunTime().addShutdownHook用法
今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时转载 2014-10-03 11:37:43 · 572 阅读 · 0 评论 -
spring定时任务的配置
spring的定时任务配置分为三个步骤: 1、定义任务 2、任务执行策略配置 3、启动任务 1、定义任务 class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> execute false转载 2014-08-12 16:03:26 · 444 阅读 · 0 评论 -
Thrift原理简析(JAVA)
Apache Thrift是一个跨语言的服务框架,本质上为RPC;当我们开发的service需要开放出去的时候,就会遇到跨语言调用的问题,JAVA语言开发了一个UserService用来提供获取用户信息的服务,如果服务消费端有PHP/Python/C++等,我们不可能为所有的语言都适配出相应的调用方式,有时候我们会很无奈的使用Http来作为访问协议;但是如果服务消费端不能使用HTTP,而且更加倾向转载 2014-08-20 10:50:14 · 619 阅读 · 0 评论 -
Spring定时任务的几种实现
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.T转载 2014-08-12 16:18:12 · 301 阅读 · 0 评论 -
大中型网站使用图片域名的必要性原因(firebug Blocking)
如图,用firebug分析网页,发现连接处有很多阻挡,而且时间很长,在firebug的官方wiki中找到了 “阻挡” 的解释(内容来自http://getfirebug.com/wiki/index.php/Main_Page): Request TimelineEvery request-response round trip is shown as horizontal转载 2014-08-26 14:52:36 · 471 阅读 · 0 评论 -
优先级对列PriorityBlockingQueue
PriorityBlockingQueue里面存储的对象必须是实现Comparable接口。队列通过这个接口的compare方法确定对象的priority。 规则是:当前和其他对象比较,如果compare方法返回负数,那么在队列里面的优先级就比较搞。 下面的测试可以说明这个断言: 查看打印结果,比较take出来的Entity和left的entity,比较他们的priorit转载 2014-09-09 17:45:39 · 539 阅读 · 0 评论 -
@RequestMapping 用法详解之地址映射(入门篇)
前段时间项目中用到了RESTful模式来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据。为了找出原因,便对参数绑定(@RequestParam、 @RequestBody、 @Reque转载 2014-08-04 19:51:30 · 1169 阅读 · 0 评论 -
java web开发 高并发处理
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的转载 2014-05-24 11:16:15 · 485 阅读 · 0 评论 -
Spring MVC 教程,快速入门,深入分析
资源下载:Spring_MVC_教程_快速入门_深入分析V1.1.pdfSpringMVC核心配置文件示例.rar 作者:赵磊博客:http://elf8848.iteye.com 目录 一、前言二、spring mvc 核心类与接口三、spring mvc 核心流程图四、spring mvc Dispatc转载 2014-05-11 10:35:38 · 325 阅读 · 0 评论 -
JDK的动态(静态)代理机制(转载并整理修改)
首先说下,鉴于网上大量的垃圾代码,以及设计模式上面讲的很难看懂,本人写了个超级简单的(或许只是二逼的我认为的,呵呵)首先说下个人的理解:代理的目的就是在你做事之前、之后、过程中。。。不改变你的行为(代码)加点其他东东静态代理代码如下:1 package proxy.myproxy.staticProxy;2 3 public interface Us原创 2013-08-06 16:20:22 · 667 阅读 · 0 评论 -
MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为转载 2014-04-06 10:01:50 · 502 阅读 · 0 评论 -
spring IOC 机制模拟实现
最近对spring IOC AOP 机制实现原理了解了下,在此做下整理,希望能给需要的朋友予以帮助。整理的资料来自互联网,文章开头是我写的测试代码例子,可以直接导入eclipse,别忘了导入dom4jjar包。 例子代码下载链接:http://download.csdn.net/source/630961 利用java的反射和动态代理实现IOC转载 2014-05-09 14:30:41 · 468 阅读 · 0 评论 -
java WEB开发:过滤器、监听器、拦截器的区别
1.过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、转载 2014-04-09 15:25:05 · 563 阅读 · 0 评论 -
socket、tcp、http三者之间的区别和原理
相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次转载 2014-05-07 21:35:59 · 569 阅读 · 0 评论 -
MyBatis的动态SQL详解
基础部分可以查看我的另一篇博客:http://haohaoxuexi.iteye.com/blog/1333271 MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。MyBatis中用于实现动态SQL的元素主要有: ifchoose(when,otherwise)trimwheresetforeachi转载 2014-04-20 19:31:04 · 391 阅读 · 0 评论 -
struts2线程安全
问题:Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。Spring的Ioc容器管理的bean默认是单实例的,上一次请求处理的状态信息被保持下来,并影响了下一次的请求,实际上就是Action中的类变量被不同的请求读取,出现错误结果解决:就是不用单例, spring中bean的作用域设为prototype,每个请求对应一个实例.1、Struts转载 2014-05-04 12:30:44 · 437 阅读 · 0 评论 -
MySQL慢查询
慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些Sql语句比较耗费资源。 1。查看慢查询当前状态mysql> show variables like "%slow%";+---------------------+-----------------------------+| Variable_name | Value转载 2014-08-26 17:37:32 · 352 阅读 · 0 评论 -
[Hadoop] MapReduce架构设计
介绍MapReduce的架构设计。和HDFS一样,MapReduce也是采用Master/Slave的架构,其架构图如下:它主要有以下4个部分组成:1)Client2)JobTrackerJobTracke负责资源监控和作业调度。JobTracker 监控所有TaskTracker 与job的健康状况,一旦发现失败,就将相应的任务转移转载 2014-09-10 12:04:05 · 477 阅读 · 0 评论 -
JTA事务和JDBC事务
一般情况下,J2EE应用服务器支持JDBC事务、JTA事务、容器管理事务。这里讨论JTA和JDBC事务的区别。这2个是常用的DAO模式事务界定方式。 JDBC 事务 JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交。 ★ 在jdbc中,事务操作缺省是自动提交。也转载 2014-09-30 12:44:35 · 601 阅读 · 0 评论 -
cronExpression配置说明(修改版)
cronExpression配置说明字段 允许值 允许的特殊字符秒 0-59 , - * /分 0-59 , - * /小时 0-23 , - * /日期 1-31 , - * ? / L W C月份 1-12 或者 JAN-D转载 2014-09-30 13:29:15 · 678 阅读 · 0 评论 -
spring定时任务+线池程实现
Spring在schedule这块支持JDK Timer、concurrent、quartz三种,这三种任务调度方案在实现机制和调用方法上都不同,但spring通过对其包装,使得基于spring能用统一的配置和编码风格来使用这三种schedule方案。总得来说这三种schedule都是基于scheduler->trigger->job的基本流程,因此spring通过TimerFactory转载 2014-09-30 15:33:49 · 541 阅读 · 0 评论 -
spring bean abstract="true"
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下: Hibernate Reference Documentation 3.3.1解释如下:Automatically validate or export schema DDL to the database when the SessionFactory is cre转载 2014-09-30 10:55:37 · 851 阅读 · 0 评论 -
Spring bean配置读取配置文件
在beans.xml中加入两个必须的bean[html] class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> destroy-method="close">转载 2014-09-29 12:03:44 · 577 阅读 · 0 评论 -
多线程FutureTask的使用方法和使用实例
FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,它等价于可以携带结果的Runnable,并且有三个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正常结束、取消和异常。Future有个get方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。FutureTask有下面几个重要的方转载 2014-09-16 17:38:18 · 686 阅读 · 0 评论 -
ThreadPoolExecutor的使用和介绍
1、类说明:newFixedThreadPool生成一个固定的线程池,使用ThreadPoolExecutor()来构造,可以像Tomcat的线程池一样设置“最大线程数”、“最小线程数”和“空闲线程keepAlive的时间”。ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize,转载 2014-09-15 21:17:58 · 564 阅读 · 0 评论 -
mybatis防止sql注入
sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序。所以在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部替换为存储过程这样的方式,来防止sql注入,这当然是一种很安全的方式,但我们平时开发中,可能不需要这种转载 2014-09-01 21:58:24 · 472 阅读 · 0 评论 -
服务器推送技术简介
服务器推送技术1 背景“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax”有着密切的关系。随着Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送转载 2014-09-13 23:48:03 · 547 阅读 · 0 评论 -
Linux下安装MySQL后设置root密码
方法一:最简单的方法,也是安装完mysql后,系统提示的方法。使用mysqladmin来完成。shell> mysqladmin -u root password "newpwd"shell> mysqladmin -u root -h host_name password "newpwd"password后面的双引号不是必须的,不过如果密码包含空格或者一些特殊的符号,需要用引号。方法二:转载 2014-09-13 21:10:46 · 492 阅读 · 0 评论 -
MySQL行锁深入研究
做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为SELECT restnum FROM book WHERE id =1 ; --如果restnum大于0,执行update UPDATE book SET restnum=restnum-1 WH转载 2014-09-12 15:01:25 · 372 阅读 · 0 评论 -
Spring+Quartz实现定时任务的配置方法
1、Scheduler的配置 说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。2、Trigger的配置转载 2014-09-22 16:31:39 · 450 阅读 · 0 评论 -
Spring3中的mvc:interceptors标签配置拦截器
这个是在webmvc-config.xml文件中配置的mvc:interceptors这个标签用于注册一个自定义拦截器或者是WebRequestInterceptors.可以通过定义URL来进行路径请求拦截,可以做到较为细粒度的拦截控制。例如在配置文件加入xmlns:mvc="http://www.springframework.org/sc转载 2014-09-10 16:49:05 · 626 阅读 · 0 评论 -
struts2 Preparable接口
struts2 Preparable接口使用场景:如果action针对每次请求都要执行一些相同的业务逻辑, 那么可以实现Preparable接口, 将预处理业务逻辑写在prepare()方法里Preparable 接口定义:public interface Preparable { void prepare() throws Exception;}转载 2014-08-27 15:27:17 · 493 阅读 · 0 评论 -
Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制转载 2014-08-27 11:10:26 · 551 阅读 · 0 评论 -
Hibernate的基本映射数据类型
Hibernate的基本映射数据类型是Java基本类型与标准SQL类型相互转换的桥梁,其关系如图4-7所示。 通过Hibernate的基本映射数据类型可以非常方便地将数据从一种形式转换成另一种形式,完成高质量的ORM任务。例如: 表4-4列出了这3种数据类型之间的对应关系。表4-4 3种数据类型之间的对应关系转载 2013-12-27 14:31:52 · 787 阅读 · 0 评论 -
hibernate 版本(version)控制
Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里我们只讨论乐观锁。 Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleOb转载 2013-12-27 13:01:58 · 1762 阅读 · 0 评论 -
JAVA 注解示例 详解
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。 @Override 表示当前方法是覆盖父类的方法。转载 2013-08-05 15:18:07 · 451 阅读 · 0 评论 -
XML Schema,XSD,XSL,DTD
技术越来越生疏,但是发展却越来越快,整天拿XML技术忽悠,但是对于XML Schema,XSD,DTD的真正含义却越来越模糊了。今天温习。XML:XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨转载 2013-08-05 15:10:08 · 891 阅读 · 0 评论 -
getInterfaces(),getMethod(String name, Class... parameterTypes),getClass
返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。name 参数是一个String,用于指定所需方法的简称。parameterTypes 参数是按声明顺序标识该方法形式参数类型的 Class 对象的一个数组。如果 parameterTypes 为 null,则按空数组处理。 例:以项目Spring_Test为例beans.xml原创 2013-08-04 09:58:02 · 3008 阅读 · 2 评论 -
newInstance()和new()
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。{如: Object o = Class.forName(“ ”).newInsta转载 2013-08-03 15:01:05 · 552 阅读 · 0 评论 -
jdom读取xml文件
用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类、Element类等的方法读取所需的内容。IBM : developerWorks 中国站上有一个很好的例子: 8G 200 1580转载 2013-07-21 09:25:10 · 565 阅读 · 0 评论