
基础技术
文章平均质量分 68
quzishen
一个程序员,长期满足于代码世界,享受手指敲击键盘带来的愉悦感,混迹于支付宝、网易、淘宝,目前从事于无线领域研究。
本人没有使用该博客开通任何微博,本人唯一新浪微博:http://weibo.com/quzishen
其他同名微博皆为盗用信息,请勿相信其任何与本人有关信息
展开
-
[JST]不支持for(var i=0;i<length;i++)问题解决方法
Trimpath的循环语法支持遍历列表或者数组,如果我们在模板中希望能够使用传统的for循环的方式 for(var i=0;ivar loops = new Array(length);for(var i=0;i {for i in loops} ${i}... {/for}原创 2010-08-05 10:58:00 · 4225 阅读 · 0 评论 -
[jms那点事儿] JMS 消息传送模式、消息签收以及spring jmsTemplate配置
<br />Activemq支持两种消息传送模式:PERSISTENT (持久消息)和 NON_PERSISTENT(非持久消息) <br />从字面意思就可以了解,这是两种正好相反的模式。<br />1、PERSISTENT 持久消息<br />是activemq默认的传送方式,此方式下的消息在配合activemq.xml中配置的消息存储方式,会被存储在特定的地方,直到有消费者将消息消费或者消息过期进入DLQ队列,消息生命周期才会结束。<br />此模式下可以保证消息只会被成功传送一次和成功使用一次,消息原创 2011-01-12 14:27:00 · 17769 阅读 · 3 评论 -
[jms那点事儿] JMS ( java message service )入门 + activemq消息持久化
JMS 即 java message service 是为java提供了一种创建、发送、接收消息的通用方法。可以将复杂的系统进行业务分离,变成灵活的高度解耦合的布局。同时对我们的日常业务需求开发,提供了非常灵活的业务解决方案。比如缴费还款送积分,送积分的业务逻辑不能影响到缴费还款的业务逻辑,所以最好的,就是缴费/还款逻辑执行完成之后,通过一种方式告诉积分系统,给用户发送积分,发送积分的结果不要影响到复杂的缴费还款的过程。这种情况下,采用jms进行异步处理,便是一个很好的选择。要使用消息的方式来进行系统交互,原创 2011-01-11 12:42:00 · 14295 阅读 · 18 评论 -
[jms那点事儿]Activemq集群部署
<br />集群部署,貌似activemq并不理想,分享一个链接吧暂时<br />http://wenku.baidu.com/view/6989622de2bd960590c67760.html<br />暂时没时间去太深入研究<br /> <br />之前看到一个同学写的博客讲到activemq他们目前平均吞吐量由4000/秒,4K的消息,这个量下,我感觉一般的应用足够了,只要做足了单点部署的备份工作。原创 2011-01-14 11:53:00 · 3093 阅读 · 2 评论 -
[Drools]JAVA规则引擎 -- Drools
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。 1、Drools语法开始语法之前首先要了解一下drools的基本工作过程,通常而言我们使用一个接口来做事情,首先要穿进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。在drools中,这个传递数据进去的对原创 2011-01-25 14:33:00 · 213929 阅读 · 49 评论 -
[Drools]JAVA规则引擎2 -- Drools实例
上一篇文章 http://blog.youkuaiyun.com/quzishen/archive/2011/01/25/6163012.aspx 描述了一些常用的drools的语法标签和一个模拟实例即发送积分的场景,这一片优化了一下代码,在此贴一下,希望有这方面使用经验的朋友多多交流沟通,指正不足。通常而言,习惯上我们将规则放到文件系统中,比如以drl结尾的规则文件,现在我们要扩充一下,使其放到数据库中,以供多台服务器同时使用,同时依然保留文件系统的支持。先看下一个接口:/** * 规则接口 * @autho原创 2011-01-26 14:17:00 · 21463 阅读 · 15 评论 -
[装饰者模式]经典的星巴克咖啡问题解决方案
<br />在星巴克咖啡中,随意的点取咖啡种类以及配料的场景,如果使用传统的逻辑控制,产出的将会是一片非常不优雅的代码,而几乎每个例子中都会使用这样的一个场景,来引出装饰者模式的介绍。<br />装饰者模式通常有着如下的特点:<br />1、装饰对象和被装饰对象通常有着相同的接口,实现相同的操作;<br />2、装饰者对象中要含有被装饰对象的实例;<br />3、装饰者只是增加了附加功能,而不会去更改被装饰对象的实现逻辑;<br />从上述的描述中,我们可以抽象一下几个领域模型:<br />1、共同的接口,原创 2011-03-04 16:16:00 · 3988 阅读 · 0 评论 -
将PC站点的链接转换成对应WAP站点的链接
最近做了一个项目,需要做到这个事情,将一些网站的链接转换成其对应wap站点的链接,比如将凡客诚品的商品链接,转换成对应的wap站点的地址,这样就可以直接在手持设备上直接访问。这里代码备份一下。 <!-- name : 配置的名称,用于标原创 2011-09-08 11:05:48 · 11702 阅读 · 2 评论 -
Best Practices for Speeding Up Your Web Site
Minimize HTTP Requeststag: content80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scri原创 2012-07-04 13:38:14 · 2152 阅读 · 0 评论 -
Json 一种轻量级的数据通信格式
<br />Json是一种基于js的轻量级数据交换格式,独立于特定的语言,其中对于信息的保存使用特殊的符合来实现不同的数据结构。可以构建两种基本数据结构:<br /> <br />1、对象<br />对象的概念类似于面向对象语言中的逻辑,采用 key/value的方式保存数据,同时使用{}包含来表示对象;如:<br /> <br />{name:'quzishen',company:'netease',department:{d1:'hangzhou',d2:'tech',d3:'dir'}}<br />原创 2010-11-16 11:15:00 · 6067 阅读 · 0 评论 -
[lucene]初探bobo-browse
<br />Bobo-browse是一个基于lucene的分面搜索插件,可以完成对搜索结果的分面统计,比如“男装(221) 女装(332)”等。<br />这里做首次尝试,只谈使用,不谈原理。用熟了才有可能去研究仔细。<br />lucene3 + bobo-browse2.5<br />建索引,更新索引跟它没关系,仅关注搜索。索引建立好后,开始进行分面搜索。<br />bobo-spring.xml <br /><?xml version="1.0" encoding="UTF-8"?><bean原创 2011-01-07 16:15:00 · 3483 阅读 · 2 评论 -
[Discuz]论坛搭建step by step
摘要:本文介绍如何从头开始搭建Discuz论坛,涉及具体内容为apache + php + tomcat + mysql 等工具的配置和使用。步骤:1、环境配置以及基础工具安装2、整合配置3、安装Discuz4、相关问题解决1、环境配置以及基础工具安装---------------------------------------------需要安装的工具: JDK(推荐1.5 ~ 1.6)、mysql、tomcat、apache、phpJDK安装:略mysql:略。注意这里用户使用的最好是root账户,暂时原创 2010-12-09 15:46:00 · 1409 阅读 · 0 评论 -
最近的一段工作的简要总结
<br />最近做了什么事情呢,单纯在前端方面,主要是dwr ,freemarker,jst,jquery的一个综合应用,后台java代码主要是lucene,spring jdbcTemplate,memcache等内容。工作的业务重点就是开发一个垂直渠道的电子商务系统。抛开java代码不说,这段时间高密度的使用dwr+freemarker+jquery+jst进行后台系统的富客户端的开发,着实是一件痛苦而爽快的事情。<br />因为有了jst,一张页面可以通过异步加载局部刷新的方式放下很多内容,效率提升很原创 2010-08-31 20:07:00 · 1140 阅读 · 0 评论 -
[spring security 那点事儿]配置方式
这段时间一直开发的B2C的网购平台已经完成了将近一半的功能,突然觉得自己之前对于权限管理方面的hold决定将给后面带来不小的工作量,所以决定现在就加入权限判断的功能。很容易联想到spring security来做这个事情,先看看一个官方文档的翻译版本:http://www.family168.com/tutorial/springsecurity/html/springsecurity.html写的有些简略,但是足以能step by step的执行下去。这里总结一下今天通过命名空间方式的配置过程吧。既然要做原创 2010-09-02 18:27:00 · 10298 阅读 · 1 评论 -
dwr+spring security在方法权限判断失败后的一个问题
<br />简单记录一下,debug了N久代码,还是尚未彻底搞明白这个问题,只是懵懵懂懂,servlet的代码进不去了,ss的代码倒是没发现什么情况,反而在cglib的代码中,看到不少非主流的情况。<br /> <br />现象: dwr异步请求过程中,调用了一个具有权限控制的代码,调用这个代码需要特定的角色才可以,通过判断,当前的用户并不具有这个权限,所以不允许被调用,按照ss的习惯,应该是抛出一个Access 拒绝的异常,然后通过匹配403的相关配置定位到错误页面或者在本页面显示错误信息。但是现在的情况原创 2010-09-08 18:29:00 · 2409 阅读 · 0 评论 -
[spring security那点事儿]开发适用于自己系统的安全管理模块
<br />spring security2之后namespace方式使得在配置上大大降低了门槛,一个简单的基础<http auto-config='true'/>就可以搞定一个demo,如果你的系统接受那个单调而古板的ss默认的登录页面和英文的错误提示,那对于你而言,ss只是一个几句话的配置而已。<br />但是实际应用中,我们并不会有那么简单的场景,不管是从用户体验页面交互还是从系统架构,都几乎不太可能使用那个可怜巴巴的默认登陆页面。<br />一个 auto-config='true',ss默认加载了原创 2010-09-06 16:09:00 · 7767 阅读 · 2 评论 -
JST[javascript Template] 通过自定义标识符统一时间格式
数据库取出塞给DO的时间一般是: Thu Nov 25 2010 18:29:21 GMT+0800 这种格式在使用jst动态渲染模板的时候,这样会直接按照字符串输出到页面,所以需要将时间进行转换,成普通的2010-10-10的格式有两种方式可以解决,一是通过将外面的js转换方法作为一个参数的形式直接塞进渲染参数中,比如:var change = function(time){ ... }var param = {"change":change};这样在jst模板中,需要写成{var timeS原创 2010-11-26 16:58:00 · 4125 阅读 · 0 评论 -
freemarker调用java静态方法以及枚举
<br />Freemarker渲染视图采用的是一个 模型+数据 = 页面 的方式,这也是模板渲染引擎的通用模式,对于freemarker渲染页面的时候一些特殊的数据格式转换、随机数获取等需求,如果很难通过freemarker本身的标签完成,可以通过调用java静态方法来完成。前提是这个方法必须是静态。允许传递参数。<br />实现这个需求,使用的便是freemarker的BeansWrapper这个类,他借用TemplateHashModel可以从web容器中获取指定类名的bean并通过传统的如spri原创 2010-11-30 09:40:00 · 19316 阅读 · 1 评论 -
JXL生成的excel文件+JAVA文件下载功能
<br />一个需求,用户点击下载按钮,将指定的excel的报表模板使用数据库数据渲染,然后下载到用户本地;<br />通常而言,对于一个文件的下载,可以有以下几种方式:<br />window.location.href=文件名称URL全路径;<br />window.open(文件名称URL全路径);<br />这种方式不友好的地方在于服务器的目录结构直接暴露出去,而且在IE下很有可能会报错权限问题等,甚至firefox中会触发那个年代久远而依然没有解决的bug。所以这里不推荐。<br /> <br /原创 2010-11-30 11:26:00 · 8118 阅读 · 1 评论 -
使用ANT发布项目
<br />通常在eclipse中开发的web工程,测试的时候都会直接采用右键点击工程名称 -> run as -> on server -> 选择tomcat./jboss -> 启动运行 的方式,在开发阶段,这样的方式不但方便,而且基本上很多的问题都是eclipse帮我们完成了。<br />但是如果项目发布上线了,这个时候该怎样将项目发布上线呢?<br />很简单,就是将生成的class文件,资源文件,模板文件,图片,js,样式等等系统所需的文件,拷贝到tomcat下,新建一个目录比如photograp原创 2010-12-07 13:11:00 · 3636 阅读 · 0 评论