被GFW屏蔽了好久了,今天终于用goagent又上来了。

被GFW屏蔽了好久了,今天终于用goagent又上来了。

Advertisements
发表在 未分类 | 留下评论

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

发表在 未分类 | 一条评论

上梁,抛梁(太湖西线老丁)

上世纪 90年代以前的
农村,几乎所有的农户均以纯农业生产为主,一年到头在田地里劳作,起早摸黑不辞辛苦,稻麦菜蔬换来的收入除去吃喝开支,到年底往往剩不下几个钱。因此,只
要不是碰上个三灾二难的事,家家户户的家底都差不多,几亩地、几口人,手指一掐,基本就能算得出。在这种情况下,要说谁能一下子捧出一笔钱来翻屋造新房那
就不简单了,村民惊讶羡慕的同时会竖起大拇指,说:嘿,这家人家会过日子。

 
那年月,在村里能造起一座两开间的新屋对当家户主来说绝对是干了一件大事。村民衡量一个人能力大小的依据就是看房子,许多人为此奋斗终身临了还念念不忘着
说自己没本事,未能起间新屋。而造好新屋的就不同了,到哪儿都能大着嗓门说话,底气一足,接下来毛脚女婿上门、找媳妇女方亲戚来看人家就有了面子,事也好
办得多。正因为房子如此重要,所以为庆贺新屋落成而举行的仪式就十分地隆重和繁复了。 

  当屋面砖瓦盖齐后头等大事便是选一个黄道吉日上梁,所谓上梁原指上第一根大梁,抱着家宅平安的心愿,上大梁时举行的仪式隆重程度不亚于屋面合拢,同时也另有一套操作方法。也许是出于简化程序节省开支的考虑,久而久之,上大梁和屋面盖好后的仪式便合而为一了,统称上梁。

 
上梁那天,檐前廊柱、窗棂上贴上大红纸,上书“上梁巧遇紫微星”“姜太公在此,百无禁忌”等语,亲友匠人以及为造屋帮过工出过力的村邻都被邀来参加上梁结
束后的宴席。主妇的娘家人一大早便挑来米糕、粽子、米粉团子、汤圆(取高中团圆之意)和新棉被、新蚊帐、“节节高”、盘篮、竹匾,客气一些的还定做家具前
来贺喜。除去这些,新近做好的两层蒸笼单独提前运来。蒸笼中的物品摆放大有讲究,一般第一层中放十只盘子十只碗和一把筷子,至于寓意,是取盘子的谐音,因
为在宜兴方言中,“盘”就是满得溢出来的意思。蒸笼的第二层中装的是用面粉做成的龙、凤、寿桃、红鸡蛋和面米囤,米囤中还象征性地摆几粒米。整个蒸笼被抬
至大梁下放定,等着“接宝”时用。

 
“接宝”仪式的进行让风水先生预先看了时辰,具体操作由泥瓦匠或木匠的作头配合主家夫妇完成。首先,作头爬上大梁,在大梁正中系上“万年袋”,“万年袋”
用红布缝制而成,内装植物“万年青”一株,红鸡蛋两枚,取意喜庆万年。然后,匠人用圆盘装了那蒸笼中的面龙面凤一一递给梁上的作头,作头接了便向下抛掷,
主家夫妇在下面用被面和蚊帐接住。抛掷过程中作头每抛一样便说一声吉语,下面的主家接住了便应和一声。前面的面龙、凤、寿桃、米囤可以不按次序,但第五样
必定是红鸡蛋。作头把红鸡蛋抛下时喊“五子登科啦”,主家夫妇用被面接住便应道“哎,五子登科哟”,至此,“接宝”仪式结束。如果这新屋是老屋翻新的,那
仪式结束后就直接上屋面抛梁,如果是重选地基另起的新屋,那“接宝”结束后还有一个供猪头的仪式。男当家的端了方盘,盘中供着猪头、整鸡和鲤鱼,虔诚地放
在新屋门口,面南而跪。三轮水酒一一泼洒,响头磕过,纸钱化完,然后鞭炮齐鸣上屋抛梁。

 
抛梁仪式相对就随意得多。当时,村民事先都知道了某某家今天上梁,听到炮仗声一响便都放下手中活计前来抢抛梁。男女老少齐聚后都翘首仰望,等着开抢。作头
和主家用圆盘装了糖果和糕点粽子爬上屋面,向着下面围聚得满满当当的人群中抛洒。每洒一把便说一句吉祥话,如“抛梁抛到东,子孙个个不输松”“抛梁抛到
西,家宅平安吉祥如意”之类。这些话用宜兴土语喊出来,朗朗上口前后押韵,表达了劳动人民追求美好生活、希望一代更比一代强的直白而又朴素的愿望。

  所有仪式结束后,泥瓦匠便给新屋屋顶东西两头装上屋脊,屋脊一装好便算新屋落成,接下来亲友落座,谈笑间酒宴开始。


发表在 乱七八糟 | 4条评论

Tomcat5下web应用的中文问题

1.在web.xml中,首先配置一个filter,比如应用spring的,此filter只是把request/response的字符集设置成你所想要的,比如这里的UTF-8。
     <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!– for CharacterEncodingFilter end–>

2.jsp页面中,必须写成
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
以及
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

3.由于TOMCAT5的缺省字符集是ISO-8859-1,所以也要把tomcat5的缺省字符集改成UTF-8:
<Connector port="80"
maxThreads="150" minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false" redirectPort="8443"
acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>

注意,这里是应用的TOMCAT5,并且filter是spring的现有filter。

如果这里tomcat5不设置成UTF-8,就不能用spring的filter,必须自己实现一个filter(网上有很多),此filter实现把TOMCAT的请求中的ISO-8859-1字符集,转成UTF-8。

那如果应用服务器不是TOMCAT,则需要弄清应用服务器的缺省字符集,看它是如何设置的。

发表在 未分类 | 留下评论

部署web应用到Tomcat之后,无法成功启动,并且控制台没有详细的错误信息,
顶多就两行提示信息,例如:
严重: Error listenerStart
严重: Context [/cfshcl] startup failed due to previous errors

或者

严重: Error filterStart
org.apache.catalina.core.StandardContext start
严重: Context startup failed due to previous errors

查找logs目录下的信息,除了这两句话,也没别的辅助内容.
给查错带来了困难,在这种情况下,是因为Tomcat自身的默认日志没有将一些错误信息输出到控制台或文件,
这个时候则需要配置Tomcat自身的log,启用详细的调试日志.

在Tomcat 5.5和Tomcat 6.0中的配置基本一样,只是相关文件放的目录有所不同.

首先需要准备的文件为:

1.log4j.jar

2.Tomcat 5.5所需的 commons-logging.jar

3.log4j配置文件:
log4j.properties
配置内容为:

log4j.rootLogger=ERROR,R

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%t-%c-%m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/cldev.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%p]%t-%c-%m%n

log4j.logger.org.apache.catalina=INFO,R,CONSOLE

#日志级别不能太低,如果配置为debug的话,输出的日志信息太多,导致tomcat启动非常的慢.

4.Tomcat 6.0所需的juli替换文件:
http://www.apache.org/dist/–escaped_anchor:079305423cce36d6691457475e081123–/tomcat-6/v6.0.14/bin/extras/tomcat-juli-adapters.jar
http://www.apache.org/dist/–escaped_anchor:079305423cce36d6691457475e081123–/tomcat-6/v6.0.14/bin/extras/tomcat-juli.jar

在Tomcat6.0中,

将tomcat-juli-adapters.jar,log4j-
1.2.15.jar,log4j.properties复制到D:JavaApacheTomcat6.0.14lib下面.

将tomcat-juli.jar复制到D:Javaapache-tomcat-6.0.14bin下面.

Delete $CATALINA_BASE/conf/logging.properties to
prevent java.util.logging generating zero length log files.

然后启动tomcat,就可以在D:Javaapache-tomcat-6.0.14logs下看到
cldev.log了.

在 Tomcat5.5中,
log4j.properties

将commons-logging-1.1.jar,log4j-1.2.15.jar,复制到C:apache-tomcat-5.5.20
commonlib下面.

将log4j.properties复制到C:apache-tomcat-5.5.20commonclasses下面.

然后启动tomcat,就可以在C:apache-tomcat-5.5.20logs下看到
cldev.log了.

在这个时候,再通过日志文件来分析,则会发现出现这种错误的情况可能有:
(以下是我遇到的出错情况,大多是些低级错误)
1.webapps要用到的classe文件根本没有复制到WEB-INF/classes目录下面

(java.lang.NoClassDefFoundError,而这个信息可能默认没输出到控制台,尤其是用了spring的,昨天就是这个粗心的低
级错误)
2.要用到lib文件没有复制完,缺少lib
3.lib下的同一个库的jar文件存在多个不同版本,引起版本冲突.

4.lib下的jar与tomcat版本不相对应(我遇到的问题是web应用在Tomcat5.5上运行正常,换到Tomcat6.0上就出错,
例如一个用了struts的webapp在Tomcat 6上报下面的错误
“Parse Fatal Error at line 17 column 6: The processing
instruction
target matching “[xX][mM][lL]” is not allowed” )

愿意看英文的可以参考官方网站说明:
http://tomcat.apache.org/tomcat-6.0-doc/logging.html
http://tomcat.apache.org/tomcat-5.5-doc/logging.html

=================================

更新:

TOMCAT 7:

在应用的WEB-INF/classes路径下,新建logging.properties文件,内容如下:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

 

这样,我们再启动tomcat时,就会在logs目录下生成一个更详细的日志了。

注意:这个方法,对tomcat6应该也同样有用。

 

TOMCAT记录是用java.util.logging来记录内部日志(用户自己的应用,可以用log4j,和这个没有冲突),这个方法,就是增加java.util.logging的配置文件。

TOMCAT也可以用LOG4J来代替java.util.logging以记录内部日志,方法就是上面介绍TOMCAT6的解决方法。具体可以参考:http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j

链接 | Posted on by | 留下评论

showModalDialog模式窗口下提交表单总是打开新页面的解决办法

首先,在页面开头,定义本模式窗口名:
<script language="javascript">
window.name="win_test"
</script>

其次,在<head/>中加入:
<BASE target=_self>

最后,表单的target设置为模式窗口:
<form action="" target="win_test">
</form>

发表在 计算机与 Internet | 留下评论

关于“静态方法”与“同步”的问题

今天有人来问关于“静态方法”与“同步”的问题,把大概的讲述记下来,供大家参考。

1.什么是静态方法?什么是静态变量?

静态方法和静态变量,都是不需要类进行实例化就可以直接使用的,所以有时候也叫他们类方法和类变量;而需要先实例化类,再调用的方法和变量,有时候也叫他们实例方法和实例变量。

2.什么是全局变量?
JAVA中没有这种叫法,这个是C中的称谓,在JAVA中,也可以理解为public static变量。

3.静态方法在多线程环境下是否有问题?
不论是静态方法还是实例方法,在JVM中都有自己的stack,对方法的调用,都会分配给每个调用自己的stack frame,因此,每个方法调用,它们之间是不会影响到彼此的本地变量的(方法内部声明的变量),注意,仅仅是本地变量,如果方法调用中,调用到了静态变量(不论是public static还是private static,还有方法内部是不能有static变量的),而且是“写”此静态变量,在多线程环境中,就会带来同步问题,此时,就需要在方法前加上关键词“synchronized”;如果仅仅是“读”此静态变量,就不用。

4.什么时候需要加上关键词“synchronized”?
其实在3中已经说明了,就是在方法中会“写”静态变量,那么在多线程环境下,方法前一定要加上关键词“synchronized”。

发表在 计算机与 Internet | 留下评论