- 文件下载给我们最直接的概念就是,给个文件链接点击就下载。似乎太简单,然而 Struts2 却把它作为一个独立的学问来对待,理由有四:
1. 文件名为中文时,直接点击下载,链接可能会走样(某些浏览器,URL 编码的问题),致使无法下载。
2. 不总是从下载实际的文件,文件内容有时候是动态生成的,如数据库中的内容。
3. 对于知名的文件类型不让浏览器直接打开,而是出现下载对话框保存文件。例如,要下载的文件是 .txt 的,可能直接就在浏览器中显示其内容。
4. 需要授权才能下载文件时
当然对于以上若干问题,Servlet/JSP 都能通过正确的 URL 编码,响应头设置、权限代码控制解决,只是 Struts2 让我们处理起来更方便了,内部原理自然是一样的。 Read More - 记得以前通常我们在调用 DWR 的远程方法是这样写第一个至倒数第二个参数为客户端传向服务端的数据,最后一个参数直接就是一个回调函数。因为服务端根据 Java 对象生成的 js 代码就是:
1Remote.method(params,function(data){ 2 //服务端执行后客户端的逻辑,如 3 alert("服务端执行后返回的数据:"+data); 4});
Remote.method = function(p0, callback) {
dwr.engine._execute(Remote._path, 'Remote', 'method', p0, callback);
}
Read More - 使用 DWR 一个常用的操作就是取到的数据往表格里填充,这就是 DWR 的 DWRUtil.addRows() 操作了,本篇就是以例子详细说明这个函数的用法。而另一个移除所有表格行的操作 DWRUtil.removeAllRows() 使用简单就不多说明了。
开始的时候我们还是要对这个函数的原型加以说明,虽然有些俗套,但还是必要的:
DWRUtil.addRows(id, array, cellfuncs, [options]);
描述:
向指定id的table元素添加行。它使用数组中的每一个元素(对象)在table中创建一行。然后用 cellfuncs 数组中的对应的函数创建一个列。单元格是依次用 cellfunc 根据没有数组中的元素创建出来的。
DWR1.1开始,addRows()也可以用对象(遍历对象的属性创建行)做为数据。如果你用一个对象代替一个数组来创建单元格,这个对象会被传递给cell函数。 Read More - 内部网通过 Squid 代理访问国税的 税收调查网上直报(http://218.18.101.150:8001/i/main.jsp) -- i@Report通用 WEB网络报表平台 时页面只出现:
XXX.XXX.XXX.xx透过反向代理访问服务器。请确保报表服务器server.property设置了'proxyServer'参数
不走代理就没事,在网上通过上面的关键字没找到相应的解决办法,还查英文的报错信息:
please esure property "proxyServer" in server.property was not empty
找到一份答案:http://bbs2.chinaunix.net/archiver/tid-1391943.html
原因是访问该网站时要求 Squid 对 请求 Header 部作些处理,上面链接中给了多种方法,有些不一定对你可行。最后我是在 squid.conf 文件后面加上以下两行: Read More
用 Java 的很少有人对 log4j 感觉陌生,这是 Apache 上的项目。同时 Apache 上也有针对其他语言的 Log 组件,如 log4cxx、log4net、log4php。
所用 Perl 时也会想想:Perl 该用什么日志模块呢? log4perl?google 一下果然后,只不过它不是由 Apache 出品。
该项目原来在 http://log4perl.sourceforge.net/,现已移到 http://mschilli.github.com/log4perl/。
下载地址:http://search.cpan.org/~mschilli/Log-Log4perl/ (要编译的)
使用文档:1. Tutorial(Retire your debugger, log smartly with Log::Log4perl)
2. Manual
3. Frequently Asked Questions
当然,你也可以用 CPAN 和 PPM(如果安装的是 ActivePerl) 来安装 Log::Log4perl 模块。 Read More- 大家在练习新的钢琴曲时一定会经常遇到这样的问题:
1 错音不断
2 双手的配合不协调,对位有问题
3 无法连贯的弹奏下来,总是断断续续,结结巴巴
4 视奏一个新曲子很困难,弹奏几遍都无法顺下来
这些都是因为对于钢琴五线谱的读法不正确而造成的!
下面我来给大家介绍一种新而巧的方法, 使您可以做到对五线谱的速读和100%的准确
钢琴的五线谱速读方法包括四个原则 和三个要求
Read More - 【注意:位于【】之间的内容是译注,比如本行,下同。】
Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们约定使用下述缩写:
C-<chr> 表示当输入字符 <chr> 时按住 CONTROL 键。
因此 C-f 就表示:按住 CONTROL 键再输入 f。
M-<chr> 表示当输入字符 <chr> 时按住 META(或 EDIT 或 ALT)键。
如果你的键盘上没有 META 、EDIT 或 ALT 键,用下述方法也等效:
先按一下 ESC 键然后放开,再输入 <chr>。我们用 <ESC> 来表示 ESC 键。
重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。下文中左边顶行的“>>”字样用来提示你尝试键盘命令。比如:
>> 现在输入 C-v (查看下一屏文字)移动到下一屏。 Read More - 1. 总体说明
M 键的替代,如 M-v,表示按住 META(EDIT 或 ALT 键),再按 v。如果没有 META、EDIT 或 ALT 键,则先按下 ESC 键,然后放开,再输入 v。好在我们的键盘一般都有 ALT 键,那就是 ALT-v 吧。
查看命令帮助的方法:C-h k C-f 就能在下方窗口中看到 C-f 的使用说明
如果一行超过窗口的宽度,换行时会有反斜杠(控制台下),或转弯箭头(图形系统)标示出。
2. C-x 系列操作
这个系列的命令多与 “窗格、文件、缓冲" 的控制操作有关。
后再加
C-c 退出 C-s(save) 保存
3. 光标的移动
C-v(助记:Move) 下移一屏,M-v 上移一屏,C-l(助记:load/Reload) 重绘屏幕,并将光标置于屏幕中央,也可以用 PageDown 和 PageUp 的滚屏。 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 - 一、什么是编码。
字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse Code)、Baudot code、Unicode和用二进制来表示的ASCII(American Standard Code for Information Interchange)码、这样便能够将文本在计算机中存储和通过通信网络发送出去。
字符表(Character Set)和字符编码(Character Encoding)经常被混淆。实际上Character Set(字符表)只是指一组为特定的Encoding System(编码系统)使用的符号集合,而不包含他们的数字含义或者顺序。而Character Encoding(字符编码)则包括了Character Set(字符表)和每个字符在字符编码集中的表示方法。由于历史的原因,MIME(Multipurpos Internet Mail Extensions)和使用这种编码的系统使用属于“字符集(Charset)”来表示用于将一组字符编码成一系列8位字节数据的整个系统。
摩斯电码(Morse Code)发明于1840年,用来编码字母、数字和拉丁字符,都用长短组合的电键来表示。
ASCII码发明与1963年,是由7位(7-bit)的二进制代码表示字符、数字、符号和固定长度的设备控制代码。同年,IBM使用8位(8-bit)的编码机制实现了ASCII的扩展EBCDIC(IBM's Extended Binary Coded Decimal Interchange Code)。 Read More