- XML 和 JSON 是当今常用的两种数据描述与传输的格式,特别是涉及到 JS 时使用 JSON 颇为频繁。自然,在 Java 的世界里少不了完成 JavaBean 与这两种格式相互转换的组件,那就是 XStream 和 JSON-lib。这里我简单记下 XStream 的用法。
其实相类似的工具早已有之。如果用过 DWR 的同志,一定有印像,DWR 进行远程方法调用时也能为你完成 JavaBean 和 JSON 格式的双向转换的,所依赖的是它的各种 Converter。再要是对 Struts1 的细节有所注意的话,Struts1 的 ActionServlet 在初始化 struts-config.xml 时是通过 commons-digester 来完成 XML 到 JavaBean 转换的。相应的 Apache 也有一个 commons-betwixt 实现了 JavaBean 到 XML 的生成。 Read More - 之前每次终端连接到了 Linux/Unix 编辑文件,只知道用 vi,至于此时是 vi 还是 vim 就不得而知了,也不知如何去知。总以为 vi 就是 vim,vim 就是 vi,就没认真想过多出的 vim 是怎么回事。
据说:vi - visual editor, very inconvenient, or virtually incomprehensible, vim - VI IMproved,俨然是个 vi 的加强版。
只是经常会登录同是 Redhat AS 4 的两台机器,同样是用 vi 启动编辑器,一个能进行语法加亮,v 可进入可视模式,空行前的波浪号是蓝色的(下称机器A);另一个对于各种语法却是熟视无睹,v 无法进入可视模式,空行前的波浪号也是白色的(下称机器B)。这时才想起是否是 vi 与 vim 的区别,网上找来: Read More 对于经常要辗转于 Linux/Unix 终端的用户,时常要使用 vi 来编辑文本。Emacs 虽说功能强,但学习起来更为陡峭, 而况有些系统默认时没有 Emacs。 对于 vi 未有多份心者,也许使用它四五年时间,不过 i、o、dd、:wq、方向键移动光标尔耳,y、p 拷贝粘贴都极少用。
总是想,既然常常用一个软件,那就尽量用好它,为工作多提升效率,不必多耗费时间,只每时多份心而已。故网上找来 vi/vim 的快捷键盘对照图, 有中英文对照,可打印出来,贴于你座位的隔板上,以助记忆习知。
若是对 vi/vim 有了好感,也想在 windows 一试 vi/vim 的身手, 你可以用 cygwin 里的 vi。而且 vi/vim 也像 Emacs 一样,有了 for windows 版的 vi/vim,并且一来就是俩: Read More
- 1. Vi 中执行系统命令
命令模式下用 ! (Shell 命令),如
:! perl test.pl
2. Vi 中拷贝、剪切、粘贴操作
v(逐字符)或V(逐行)进入可视模式(Visual mode),然后用方向键或hjkl等移动命令就可以选择了.
拷贝: 选择完后按y;剪切: 选择完后按d;粘贴: 移动到合适的地方, 按 p, 也可以用 P
3. 控制台下的 Emacs 支持语法加亮
在 ~/.emacs 文件(没有该文件则新建一个) 中加上
(global-font-lock-mode t)
或者你进一 Emacs 中执行 M-x global-font-lock-mode 也能看到语法加亮的效果
有说在 ~/.emacs 中加上这个定制变量的 Read More 经常碰到有人使用了 Log4j 的项目在别处运行的好好的,一放到 WAS 下发现不能输出日志了:控制台文件 SystemOut.log 中没有 Log4j 本应输出的内容, 要么就只见磁盘上有一个设定的日志文件,却总是空空如也。
本文就来以一个实际的例子分析为什么会出现这样的情况,以及告诉你应如何解决。这其中也是因为 ClassLoader 在作祟。 通常我们会在通用日志框架 jakarta-commons-logging 之下使用 Log4j,这也是合情理的,因为 Struts、Hibernate 等众多框架就是这么干的, 然而这却是一方面的根源。分析的过程应用了前面一篇介绍的 Eclipse 远程调试 WebSphere Application Server (WAS) 方法。
测试环境和工具是:WAS 5.1+Eclipse 3.3.2+MyEclipse 6.0.1,在 Eclipse 中建立 Web 项目 testlog(此处可下载: testlog.zip), 其中所用到的 jar 包只有 commons-logging.jar(V1.0.3)、log4j-1.2.11.jar。 再有为了知道是哪个 ClassLoader 加载了某个类, 参考了: 利用 JWhich 掌握类路径,确定类路径中的什么类将被载入。 Read More
- 1. 编码的产生
对电脑而言,只认识0,1; 而现实世界是由各种符合组成,要想让计算机解释现实世界,就必须建立一套现实世界中的符号 和 计算机能处理的符号之间的对应关系,这个对应关系就是编码
2. 在一个编辑器中,当我们在键盘上敲入一个字符时,在该编辑器上就会显示对应的字符,这个过程用计算机执行步骤来解释大致如下:
输入字符 –> 编辑器根据设定的编码格式把字符编成01格式 -> 编辑器再按编码规则对01解码–> 显示字符
3.几种常见的编码格式
1. ASCII码:
计算机中最早的一套编码格式,采用7位二进制表示一个常见的字符,我们知道,计算机是按照字节来处理数据的,一个字节8位,因此用一个字节就可以表示一个ASCII字符,且还有一个位空位,规定最高位不用,常见的把最高位设定为0。 7位二进制最多可以表示128个字符(2的7次方),ASCII码只能表示常见的英文字符,数字,和少量的符号(没办法,谁让计算机是人家老美先发明的啊,优先考虑本土语言,理解理解)
注: 由于ASCII最早定义,使用广泛,使得之后出现的新的”字符“(不是汉字喔)编码都尽量和它兼容 Read More - w3 JMail 组件虽好用,但实际使用过程中还是碰到问题,多数机器上都表现正常,唯独在一台机器上,JMail 的错误信息总是:jmail The message was undeliverable. All servers failed to receive the message。根据经验把病毒软件、防火墙都关了,Telnet 到邮件服务器的 25 端口,或者 Outlook 收发都是正常的,这下有些没辙了,而同事真正又要在那台奇怪的机器上发邮件。
再想它法了,对,就是 XMLHttpRequest,把功能分离,Excel 只提交 Http 请求,由 JSP 来完成实际的邮件发送工作,当然也可以实现为其他的形式。所以也就有两部分实现代码,分别为:
JSP 代码,使用的是 Apache 的 commons-email 组件,它还需要用到 activation.jar 和 mail.jar, 关于 commons-email 的使用可参考前面的一篇: 用 apache commons-email 轻松发送无乱码邮件。 比如文件存为 sendmail.jsp,通过浏览器来访问时用的 URL 是 http://192.168.1.100:8080/WebUtils/sendmail.jsp Read More 在上一篇 VBA 中发送邮件(使用 Outlook)中,VBA 通过 Outlook 来发邮件不仅频繁的弹出提示窗口要求确定,而且需要在 Outlook 中配置好,不能随意使用邮件服务器。对此,是否有相当于 JavaMail 那样的第三方组件呢?Google 帮忙,果然找到一个,名曰 w3 JMail,J 为首,其实与 Java 无任何关系。
可以在网络上搜索 w3 JMail Personal V4.3,或者直接到官网 http://www.dimac.net 去下载,w3 Jmail 的授权方式是免费的。默认位置安装好 JMail 之后,是在 C:\Program Files\Dimac\w3JMail4 可以看到 Examples 目录、jmail.dll、w3jmail4.pdf 和 readme.txt 文件。可以查阅w3jmail4.pdf 中的使用帮助。 我们所要的文件其实只是那个 jmail.dll,安装程序会自动帮你注册 jmail.dll。若未运行安装程序,只是拷贝了 jmail.dll,则要运行 regsvr32 jmail.dll 注册它即可。 Read More
帮同事做了一个在 Excel 中用 VBA 发邮件的程序,逐行读取 Excel 表格记录中的待发邮件主题、内容及收件人进行发送。首先想到也是看看能否使用 Outlook 的组件,网上查了查,果然有,现把代码贴出来如下: Read More
现属 Sun 旗下的虚拟机软件 VirtualBox 出了 2.1.0 版,看这篇文章对 2.1.0 版 VirtualBox 的介绍: http://www.cnbeta.com/articles/73057.htm。 在 32 位的主机上可安装 64 位的客户系统,而且也加入了 OpenGL 3D。详见 查看官方的更新文档 这很值得体验一番。
于是下载了 VirtualBox-2.1.0-41146-Win_x86.msi 来安装,安装过程中很多的 未通过 Windows 微标的测试 的提示,不管这些,统统 Continue Anyway 过去。安装完了,一启动,弹出窗口报错了, 错误界面如下: Read More