Archive for 7月, 2008

7
31

网易泡泡推出奥运版

作者: 舞命小丢 分类: 互联网 1 comment

最近发现网易POPO推出了新版本,并要求用户强制更新,今天发现并安装了一下,感觉还不错啊!
我一直都是POPO的忠实支持者,积分是相当搞了!和QQ一样天天开,但是上面没有一个好友!
o(∩_∩)o…
主界面还不不错的,比以前看上去好看多了啊!

看一下版本

网易POPO 奥运版
这次网易POPO的一些改动,和QQ2009有些相像啊!
界面风格也有几分相似
这次奥运版中的积分制度,全新感动,并且从0开始!我哭啊,原来我几百万的积分,好像据说可以进行导入,不过目前还没有发现方法!
新版和旧版之间的聊天记录倒是可以进行导入
详细帮助请查看
http://popo.163.com/xiaoxilishi.jsp
一些附件功能都是以插件方式出现,目前包括了活动室,邮件,今日资讯,影音盒,记事本这几个插件。
和QQ2009基本一直,在QQ2009中聊天室等一些功能都是插件方式出现,方便用户根据需求定制。
在今日资讯中又加入了RSS订阅功能,功能相对还很简单,仅仅是显示标题,然后单击连接到页面,不过还是值得期待的。
添加新的订阅界面:

添加一下我的Blog,实验一下
今日资讯界面:

在POPO好友中,还加入了一个系统反馈机器人,对一些系统功能和更新,会以短信息发给用户
也算一个不错的客户服务了!
还有一个我比较习惯的功能就是,可以实现和GTalk 的互通了!
我尝试了一下,感觉还不错!
可以在上面的图片中看到一个显示GTalk的图标的,那个就是我的GTalk了!
官方首页还显示几个新特性,大家可以去看一下

7
28

刚刚开始学习ibatis,在使用发现ibatis中一个重要特性会在未来版本取消!
这个就是分页特性
现在在2.3中已经设置SqlMapper.QueryForPaginatedList方法为Deprecated了.
刚开始我发现这个queryForPaginatedList这个方法,感觉眼前一亮,既然让自己写SQL语句,还可以为我们实现分页,这不错 啊!HIbernate中虽然可以实现分页,是因为它知道我们使用的是什么数据库,可以指定不同的分页策略,但是ibatis中不会分辨数据库。所以很想 了解它的实现方法。
然后发现这个方法被设置为了Deprecated,还以为提供了更好的方法,一般在程序中会是这样。
在Google中搜索了一下,在官方网站上看到在未来版本中将要被删除,甚是不解。
就自己在网上查找了一下,发现其中的奥秘。
一篇对queryForPaginatedList进行很好的分析的文章,使我茅塞顿开。
http://ivanl.javaeye.com/blog/24739
作者对这个方法的性能进行了分析,并对源代码进行了分析,这种学习方式值得学习。
发现其中的问题,ibatis中的分页并不是基于数据库的分页,而是一种基于JDBC驱动的分页方式,所以其中的效率会跟驱动的性能有很大关系。和原生的数据库分页之间有很大的性能差别。
作者还列举了这个方法的调用顺序:
调用次序如下SqlMapClientImpl.queryForPaginatedList->SqlMapSessionImpl.queryForPaginatedList
->SqlMapExecutorDelegate.queryForPaginatedList->GeneralStatement.executeQueryForList
->GeneralStatment.executeQueryWithCallback->GeneralStatment.executeQueryWithCallback
->SqlExecutor.executeQuery->SqlExecutor.handleMultipleResults()
我估计ibatis的作者可能感觉这样一个方法会开发者对起产生依赖,而忽略其中的系能问题,并经常使用,但是这对应用程序并不是很好的一种做法,特别数据量较大的系统中。

7
28

在使用中发现在很多情况下
对代码的格式化会出现问题
一直都没有解决,比较郁闷,例如,在java文件中有泛型,在xml元素中有“-”
都会出现格式化错误的问题,往往会出现不可预计的页面混乱
今天终于解决了
只要关闭了wordpress中的XHTML自动修复功能就还可以了!
在“设置”–>“撰写”–>“WordPress 自动修正无效的 XHTML 嵌套”
把这个复选框去掉,然后确定就可以了

7
28

SiteMesh基本配置

作者: 舞命小丢 分类: java 0 comments

首先在web.xml中加入SiteMesh过滤器

<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
<init-param>
<param-name>debug.pagewriter</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

然后,在WEB-INF目录下生成一个decorators.xml文件

<decorators defaultdir="/WEB-INF/jsp/layout">
<excludes>
<pattern>/script/*</pattern>
<pattern>/style/*</pattern>
<pattern>/ajax/*</pattern>
</excludes>
<decorator name="manage" page="manage.jsp">
<pattern>/manage/*</pattern>
</decorator>
<decorator name="user" page="user.jsp">
<pattern>/user/*</pattern>
</decorator>
<decorator name="printable" page="printable.jsp" />
<decorator name="ajax" page="ajax.jsp" />
</decorators>

decorators定义了模板页的位置,也就是所在文件夹
excludes定义了不过滤的页面
其下的pattern,排除页面的规则,可以声明多个
decorator定义了装饰器
其下的pattern定义过滤规则,如不定义,就不过滤任何页面,除非在其他位置指定
name属性定义了装饰器的名字,page定义模板页的名称
最后添加sitemesh.xml文件
在这个文件里自定义使用哪个页面解析器来解析指定的内容类型或者使用哪种修饰器映射方案

<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators-file}" />
 
[...]

7
28

NetBeans IDE 快捷键

作者: 舞命小丢 分类: java 0 comments

代码编辑器特性
1、Application应用程序的参数args的设置,在Build->Set Main Projects Configuration
2、程序运行快捷键F6
3、@Deprecated
4、代码自动完成Ctrl+Space,利用这个可以添加类的构造函数
5、变量统一修改Ctrl+R,取消用esc
6、给方法添加注释,Alt+Enter,这个有问题
7、Alt+Insert,可以添加类的构造函数Constructor、Getter、Setter、equals() and hashCode()、Override Method…
8、在右边编辑器文件名上点击右键,可以显示文件历史修改记录及还原,可以Unlock window
9、Alt+Enter,选择对象后,可以Introduce Variable…、Introduce Constant…生成字符串常量、Introduce Field…
10、注释 Ctrl+Shift+T,取消注释Ctrl+Shift+D,这个有问题
Ctrl+Shift+C,注释间切换
11、显示文档,Ctrl+Shift+Space
12、Ctrl+Shift+Up/Down 向上或者向下复制,Alt+Shift+Up/Down 向上或者向下移动
13、格式化文档Alt+Shift+F,移去文档中的空格在菜单Source->Remove Trailing Space
代码编辑器特性
在 NetBeans 6 中,其代码编辑器得到了显著了增强。以下是几个常用的快捷键,每个快捷键都代表其编辑器的一个特性:

代码自动完成:Ctrl-\,这个可以自动完成诸如创建对象的代码
代码自动插入:Alt-Insert,这个可以自动插入Getter-Setter方法的代码
按照提示操作:Alt+Enter,例如:插入所需要的包或删除未使用的引入包
自动修复引入包:Ctrl-Shift-I
单独修复引入包:Alt-Shift-I
自动粘贴代码:Ctrl-Shift-上/下方向键
自动移动代码:Alt-Shift-上/下方向键
代码模板实时自动补全:Tab
变量重命名:Ctrl-R
Javadoc弹出框提示:Ctrl-Shift-Space

从一般的 Java 应用程序开始
NetBeans 中的项目(Project)概念非常重要。一个应用程序中所用到的源代码、资源等文件均包含在这个项目中。我们使用 NetBeans 开发程序,大部分也都建立在项目的基础上。通常开始使用 NetBeans 的第一步是新建一个新的项目。在硬盘上,每个项目以一个单独的目录形式存在。项目目录中包含src源代码子目录,build编译子目录,test测试子目 录,dist发布子目录。
基本快捷键:
以下是 NetBeans 6 的快捷键,如果您更倾向 NetBeans 5.5 或 Eclipse 的快捷键方式,可以在选项中的 Keymap 中选择。

新建项目:Ctrl-Shift-N
自动格式化代码:Alt-Shift-F
保存文件:Ctrl-S
代码补全:Ctrl-\
代码自动完成:默认Tab (我个人更喜欢空格键,可以在“选项-Editor”里修改)
自动插入代码:Alt-Insert
自动修复导入包:Ctrl-Shift-I
显示 Javadoc:Alt-F1
运行主项目:F6
编译主项目:Shift-F11
运行文件:Shift-F6
新建 JUnit 测试:Ctrl-Shift-U
运行测试:Alt-F6
设置断点:Ctrl-F8
调试主项目:Ctrl-F5
调试文件:Ctrl-Shift-F5
逐步调试:F7

天天使用eclipse,偶尔使用一下Netbeans,感觉快捷键还有些不太习惯!
不过可以把Netbeans的快捷键设置成eclipse,这样很大程度的方便eclipse的开发者
不错,很人性化的设置

7
27

jsp解析XML

作者: 舞命小丢 分类: java 0 comments

同学要个jsp解析xml的例子,我就答应了
说句实话,好久都没有直接写过jsp了!
解析xml,也都好久没有摸过的东西了啊!
忽然拿起来还有些生疏啊!
随便写了一个,贴出代码和大家分享一下!
JSP文件

< %
//建立解析工厂
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//创建解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//得到解析文件
String xml = application.getRealPath("user.xml");
//开始解析xml文件
Document doc = db.parse(new File(xml));
//格式化DOM,也就是去除不必要的Text Node
doc.normalize();
//得到根元素
Element root = doc.getDocumentElement();
//得到所有user元素
NodeList users = root.getElementsByTagName("user");
%>
<table>
<thead>
<tr>
<th>ID</th>
<th>firstName</th>
<th>lastName</th>
<th>password</th>
</tr>
</thead>
< %
for (int i = 0; i < users.getLength(); i++) {
Element user = (Element) users.item(i);
%>
<tr>
<td>< %=user.getElementsByTagName("id").item(0)
.getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("firstName").item(0)
.getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("lastName").item(0)
.getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("password").item(0)
.getFirstChild().getNodeValue()%></td>
< %
}
%>
</tr>
</table>

要解析的XML文件

<users>
<user>
<id>1</id>
<firstname>Song</firstname>
<lastname>Thinking</lastname>
<password>songlipeng</password>
</user>
<user>
<id>2</id>
<firstname>Zheng</firstname>
<lastname>Quanling</lastname>
<password>zhengquanling</password>
</user>
</users>

对于高手,这些就没有什么必要了!不过偶尔也是会忘记的啊!温故而知新啊!^_^

7
26

本来是没有这种想法要升级的!
但是最近blog出现500错误,所以不得不升级,修复blog
发现2.6比以前的2.3好看了一些啊!
功能上基本一直吧!
没有发现什么太大的新功能啊!

7
26

前几天不再知道为什么好好的一直出现500错误!
一直都好好的,估计是服务器某些东西升级了?让我今天搞了半天才终于搞定了啊!
不容易啊!o(∩_∩)o…
不过终于开始弄好了啊!
blog好久都没有更新了啊!
这次算是一个好的开始吧!
哈哈
工作了啊!
要多写些技术文章了啊!
希望大家更加关注!

7
03

Hibernate 的三种实体模型

作者: 舞命小丢 分类: java 0 comments

Hibernate有三种内建的实体模型:

POJO-一个基于POJO,持久类现实的域模型,这是我们已经使用了很长时间的,也是它默认的实体模型。
MAP-不需要Java类;在Java应用程序中实体表现为HashMap。这个模型允许快速建立全动态应用程序。
DOM4J-不需要Java类,实体表现为基于dom4j API的XML元素,这个模型通常用于导入和导出数据,或通过XSLT渲染和转化数据。

收藏 & 分享

Powered by 17fav.com