`
TonyLian
  • 浏览: 401446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
由于我希望提供各种客户端来连接Spring提供的服务, (客户端种类至少包括:Flex/AIR、MS WinForm、Ajax、纯JSP) 所以Spring必须识别不同种类的客户端,并从中取得request,这样才能拿到类似IP地址这样的客户端信息。   这里说的“取得”,不是在JSP的代码里,JSP里根本不用“取得”,request就在那里。 这里是说在,Spring的代码中,如何识别各种客户端,并取得request HttpServletRequest request = null; if (request == null) { // JSP客户端 try { ...
【原创】用Sping发布WebService     我的需求是这样的:系统已经成型,仅仅通过基础架构的很小变化,达到将服务开放为WebService的目的。 1、不用或几乎不用修改已有代码 2、简单的xml配置 3、通用性强,各种开发环境皆可访问 4 ...
多年前(中学时代)的一档电视节目的主题歌,歌词写得非常好,曾经抄在笔记本的扉页。 今天终于借助Baidu又找到了,记录下。   敞开你的心扉,风吹愁云散。真情涓涓如流水,坎坷不言累。 敞开我的心扉,歌唱真善美。你我灵犀两心知,人间共相亲、相慰……  
  刚刚开始接触java数组的人都会听到一句类似的话:java是纯面向对象的语言,他的数组也是一个对象。于是乎,笔者就按照一个对象的方式来使用数组,心安理得。直到我接触到C的数组后,才发现将数组作为一个类来使用在实现上是多么的“不自然”。     首先我们看一下表面现象,数组创建的时候采用的是如下语句:     MyClass[] arr = new MyClass[9];   而普通类采用的是如下语句:   MyClass obj = new MyClass();   就是说,创建数组的时候不使用小括号传参。使得数组和普通类看起来就有很多不同,因为小括号里的参数是传递给构造方法的 ...
就在刚才,中国男子足球国家队创造了一个新的历史:三十年来首次战胜宿敌韩国队!而且是3:0完胜!   作为一名“老”准球迷,在全场“我爱你”的助威声中心潮澎湃,更是在终场哨音响起的时候,禁不住落泪!   无数的辛酸,使现在观看中国队的比赛已经是有一搭无一搭的事情,下午无意中看到女足的比赛,才知道稍后有男足。   但是,今天高家班的表现,却令人惊喜,给全国的球迷们一份最好的春节礼物!   不仅仅是开门红,不仅仅是大比分完胜,比赛过程中队员们所表现出的 自信、把握机会、低失误率、平和心态,都是取胜的关键。   其实,写程序也是,中国人从来都不缺少能力,只要有了自信、把握机会、降低失 ...
由于分词工具用的用户字典有了更新,比如加入了一些出现频度较高的专有名词。这时候希望通过重建索引,使查询结果更加准确。但是,由于一些信息是当初建索引时加入的,而且这些信息是不能从原始文件中提取的,如当初的上传者是谁、上传日期 等。所以,不能够直接删除索引文件,重新来过。 为此,必须遍历原有索引,将其中进行了分析的Field重新分析并更新,不需要分析的Field则保持不变。   /** * 为现有文件重新创建索引 * 例如当更新了用户字典时使用 */ public void rebuildIndex(){ IndexReader ireader = null; ...
梅映雪:《临江仙》天涯孤旅只一人,四季日夜连晨昏,秋霜如风雨似针。长夜独行久,庭院几许深。忍看邻家天伦暖,遥闻欢颜笑语声,生非命薄却如今。梦醒人不见,泪眼映孤灯。(同是天涯沦落人,相逢何必曾相识?)《 ...
用百度搜索“什么时候使用静态”,会得到大致这些结果:   静态方法不用new对象可以直接调用 1.与类相关与对象无关 2.不需要对象的“轻”方法 3.工厂方法 如果某个方法是用频率较高,或者方法本身通用性较强,无需初 ...
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前 ...
《第9章 线 程》       通过使用线程(thread)可以在同一程序中同时进行多个活动。多线程程序设计比单线程程序设计要困难得多。所以如果一个类库可以帮助你从低层的多线程程序设计中解脱出来,那么一定要使用这个类。即使这样,有时候仍然要编写或者维护多线程代码,所以本章包含的建议可以帮助我们写出清晰、正确、文档组织良好的多线程程序。   【第48条】对共享可变数据的同步访问   <我的废话:>     如今我们喜爱Java、使用Java,很大情况下是由于Java的稳定、强大的表现,丰富的类库资源和出色的跨平台性。这些优势在使用Java作为B/S结构编程中的S的实现时都 ...
BOM(Byte Order Mark)是一个字符,它表明UNICODE文本的UTF-16,UTF-32的编码字节顺序(高字节低字节顺序)和编码方式(UTF-8,UTF-16,UTF-32, 其中UTF-8编码是字节顺序无关的)。 如下所示:Encoding Representation UTF-8 EF BB BF UTF-16 Big Endian FE FF UTF-16 Little Endian FF FE UTF-32 Big Endian 00 00 FE FF UTF-32 Little Endian FF FE 00 00 有些utf8编码没有这个BOM,该怎么区分了,是u ...
    作为本章的最后一条,此条目是一条“纪律”,一条你必须遵守的纪律。虽然这是显而易见的道理,但却很容易被违反。       任何一个被抛出的异常都是API设计者有意为之的,其中蕴含了特定的含义,所以千万不能忽略它们!   try{ ...... }catch (Exception e){ }         这样的代码并不十分罕见,这有可能是在代码堆砌阶段的“简单写法”,也可能是程序员“偷懒”的写法,当然也有可能是连“何为Exception”都不得而知的“高人”的作品。       这里犯了两个错误。首先,就是本条要强调的,它忽略了捕获来的异常。相当于是把 ...
   所谓失败的原子性,就是在一个方法失败之后,使对象保持“它在被调用之前的状态”。因为,尤其是CheckedException发生后,一般是希望程序可以从异常中恢复过来的。      那么如何才能保持对象的状态呢?最简单的方法就是使用非可变类型的对象(见【第13条】)。因为无论什么时候,非可变类的状态都是不可改变的。       对于可变对象,常见的方法是在对其进行处理之前,先做参数有效性的检查(见【第23条】),如果参数有问题,马上就先抛出一个异常。这时候对象的状态还未改变。       另一种方法是,将处理的过程调整一下顺序,让可能抛出异常的处理写在前面,而会改变对象状态的处理 ...
    这一条是写给那些自己写Exception的程序员的。       为了在异常发生后捕捉失败原因,一个异常的字符串表示应该包括所有“对该异常有贡献”的参数和域的值。也就是说在异常所能“携带”的信息中,尽量多的加入对调试人员有用的信息。       一个例子是 IndexOutOfBoundsException ,在这个下标越界的异常中,提示出了,最小小标、最大下标和当前下标的值,这样调试人员就可以很清楚的知道到底是上溢出了,还是下溢出了,溢出了多少。       这一条对于自己扩展Exception类来说,非常有意义。扩展时不仅仅是继承已有的异常就行了,纵然可以通过异常的名称来 ...
    虽然在【第40条】中说到了,Java的throws语法的一大好处是,即使没有文档也可以知道要调用的方法都会抛出哪些异常。但是,绝对不推荐你这么做。一定要写好文档。       通过@throws标签,逐个地声明每一个被检查的异常,并写清每一个异常被抛出的条件(这个是通过throws语句所了解不到的)。如果一个方法可能抛出多个异常,不要用它们共通的父类异常来表示。甚至,有人连会抛出哪些异常都不关,就干脆 throws Exception (更有甚者 throws Throwable)。这种极端的做法,可能是初学者偷懒的做法,也可能是习惯了.Net,对Java的checkedExcept ...
Global site tag (gtag.js) - Google Analytics