struts处理中文乱码问题总结

学了很久的java,接触SSH也有一段时间了,写成博文总是有点懒,最近在整理一些思绪,把SSH一点一滴放进博客里,以备以后改进,再学习。
以我自己的了解,在进行struts开发的过程中,总也是出现很多的乱码问题 ,但归根到底,也只是以下三种情况:

㈠页面显示中文乱码
㈡传递参数中文乱码

㈢国际化资源文件乱码

 

下面就这三中情况介绍怎么在具体项目中处理这些乱码问题。而对于整体的处理思想,是要统一编码为: UTF-8.(以myeclipse6支持的struts1.3为准)
㈠页面显示中文乱码

对于在页面中显示出现乱码,这个问题比较简单,便是检查你的JSP文件里是不是出现了中文要处理,因为JSP默认的编码格式为“ISO-8859-1”,当JSP中出现要处理的中文时,其显示就出现乱码了,这种情况一般出现在手写JSP,或修改时。因为在myeclipse6.0中,如果出现了编码错误时,程序不会让你保存,而是会提示你注意编码,这点很好。具体的修改办法是把

Click to continue »

Tags:, , , , , , , , , , , , , , .

简单、通用的Lucene 索引管理

目的
一般我们存储在数据库中的数据,都可以由pojo类表示。通用的Lucene索引管理就是要能够对所有的pojo能够实行Luncene索引。

用法

Java代码 复制代码
  1.     
  2. //建立属性映射列表   
  3. List list = new ArrayList();   
  4. FieldAttribute nameAttr = new FieldAttribute(“name”,  “name”“YES”“TOKENIZED”);   
  5. //这是一个嵌套属性.   
  6. FieldAttribute nestedAttr = new FieldAttribute(“txt”,  “nested.txt”“YES”“TOKENIZED”);      
  7.        
  8. list.add(nameAttr);   
  9. list.add(nestedAttr);   
  10.                    
  11.  //建立主键属性映射   
  12. FieldAttribute idAttr = new FieldAttribute(“id”“id”“YES”“UN_TOKENIZED”);   
  13. //建立索引管理器   
  14. IndexManager engine = new IndexManager(“c:/index”, list, idAttr, null);   
  15. TestEntity data=new TestEntity(1“自相矛盾”);   
  16. data.setNested(new NestedObject(“楚人有鬻盾与矛者,誉之曰:“吾盾之坚,物莫能陷也。”又誉其矛曰:“吾矛之利,于物无不陷也。”或曰:“以子之矛陷于之盾,何如?”其人弗能应也。——《韩非子》”));   
  17. TestEntity[] datas = new TestEntity[1];   
  18. datas[0] = data;   
  19. //创建索引   
  20. engine.createIndex(datas);   
  21.                     
  22. //添加索引   
  23. TestEntity entity = new TestEntity(2“刻舟求剑”);   
  24. entity.setNested(new NestedObject(“ 楚人有涉江者,其剑自舟中坠于水,遽契其舟曰:’是吾剑之所从坠。’舟止,从其所契者入水求之。舟已行矣,而剑不行,求剑若此,不亦惑乎? —— 战国·吕不韦《吕氏春秋·察今》”));   
  25. engine.addIndex(entity);   
  26.                    
  27. //更新索引   
  28. TestEntity entity = new TestEntity(1“新自相矛盾”);   
  29. entity.setNested(new NestedObject(“楚人”));   
  30. engine.updateIndex(entity);   
  31. //删除索引   
  32. engine.deleteIndex(new TestEntity(1));  

Tags:, , , , , , .

Hibernate自定义表单完全解决方案(无需重置SessionFactory)

最近开发的一个系统,需要在不更改代码和重启系统的情况下提供对用户自动建表的支持,由于系统应用了hibernate,所以在建表同时也要建立持久化对象以及对这些对象注册,人渣我首先想倒的是 baidu和google,哪知一番搜索下来,发现都不尽入人意,于是乎,造轮子之路开始了
数据库我是采用的oracle9i,目前在比如数据库类型支持,还有对象关系支持上都很简单,不过在现有基础上进行扩展,都是可以实现的
实现步骤如下
建立class->生成hbm.xml->在Hibernate’config里面注册持久化类->通知SessionFactory持久化类的新增

1 准备
首先准备基础数据,我建立了几个类来对生成的表和属性做描述 这些描述都将作为传输传递给class生成方法和hbm.xml的生成方法
RenderClass 描述要生成的实体类 属性如下

  • className 类名
  • tableName 对应表名
  • properties 属性集合

Click to continue »

Tags:, , , , , , , , , , , , .

Microsoft Office 2007 SP1 完美者三合一精简版下载

Microsoft Office 微软公司Office已经不再是单一的办公应用组件,而是应用方案平台,也是一套整合与全方位的为企业和个人创造价值的系统。Microsoft Office System涵盖了已为用户所熟悉的Office应用程序,还增加了诸多全面支持XML的新组件,从而帮助个人与企业充分发挥信息资源的能量。Microsoft Office System主要是由领先的应用程序、服务器和服务所组成。其中包括Microsoft Office 2007版本中的Word、Excel、PowerPoint.
此精简版包含了Word 2007,Excel 2007,PowerPoint 2007三个常用组件.
由”Office2007简体中文企业版”为母版,打上了SP1补丁后,于2008年5月4日在Windows UpDate网站升级到当天最新版,以此为来源制作,免序列号,免激活。
各组件版本:
PowerPoint版本:12.0.6211.1000                微软签名时间:2007.8.29
Word版本:12.0.6211.1000                        微软签名时间:2007.8.29
Excel版本:12.0.6300.5000                        微软签名时间:2007.12.13
并在PowerPoint2007中加入原有的PPT制作模版,方便制作PPT.

下载地址:http://www.sz1001.net/down/35538.htm

Tags:, , , , , , , , .

Office 2003 CHS SP3 All-in-One 简体中文版

Office 2003 CHS SP3 All-in-One共包括以下组件:  
  FrontPage
  Office (Word, Excel, Powerpoint, Access, Outlook, Infopath, Publisher)
  Onenote
  Project
  Visio
说明:先卸载旧版本,再全新安装即可.
此合集支持制做单个组件ISO.

    尝试做这个SP3的5合1, 一方面是因为自己想要一个含Onenote 2003 SP3的合集, 另一方面是各位前辈在网络
上无私地分享了他们的制作经验, 使得这个5合1能够顺利完成.
    这个版本是在龙卷风d0z大侠OFFICE 2003 SP2 v2.2的基础上, 对各个组件打SP3补丁, 然后借鉴MSFN论坛重新
封装CAB, 最后使用xbetas的AIO制作工具打包的.
    在优化此ISO中的.CAB文件时, 各个组件.msi中数据表与.CAB文件的关系, 不仅在诸前辈颇加注意的CabinetDetail, Component, Directory, File, Media等5表维持统一, 也尽力在FeatureCabinets和FeatureComponents做到一致. 也许这会
使这个ISO在以后的使用或打SP4时, 更具通用性吧.

下载地址:http://www.sz1001.net/down/37339.htm

Tags:, , , , , , , .

盖茨向开发人员告别演讲 微软机器人恶搞鲍尔默


盖茨7月1日起将“半退休”

  新浪科技讯 北京时间6月4日消息,据国外媒体报道,周二在“TechEd Developers”大会上,微软董事会主席比尔·盖茨(Bill Gates)面对满屋的开发人员,发表了退隐前的最后一次公开演讲。

  7月1日退出微软日常管理

  33年前创建微软时,盖茨也是一名开发人员,而微软能有今天的行业老大地位,也要归功于Windows操作系统的开发人员。在昨天的开幕演讲上,盖茨并没有忘记这些功臣,“微软的成功在于我们和开发人员的关系。”

  盖茨还简短地谈到自己将于7月1日退出微软日常管理工作,全心投入和妻子创立的比尔及梅琳达·盖茨基金会,他表示感到有些仓促,“(慈善事业)将把我推向一个新领域,这是自我17岁以来第一次真正意义上的换工作。此前,我完全沉溺于软件开发之中。”

   Click to continue »

Tags:, , , , , .

透视MySQL数据库之更新语句

   用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句。

一、INSERT和REPLACE

INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。

1. INSERT的一般用法

MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。

INSERT INTO tablename(列名…) VALUES(列值);

而在MySQL中还有另外一种形式。

INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;

第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。如下面的语句向users表中插入了一条记录:

INSERT INTO users(id, name, age) VALUES(123姚明25);

第二种方法允许列名和列值成对出现和使用,如下面的语句将产生中样的效果。

INSERT INTO users SET id = 123, name = 姚明, age = 25;

Click to continue »

Tags:, , , , , , , , .

Velocity 微软的Memcached?!

今天早上看LiveSino的RSS时发现了这条隐藏在”TechEd 2008 Developers: 新闻汇总“的消息. 微软总算是推出了他们的MemCached.
现在asp.net中的cache是在本机的, 如果web farm中的每台机器都要维护自己的cache, 最常用的cacheitem在每台server上都有一个copy.这样不仅浪费内存, 而且存在可能存在不同步的问题;Distributed cache解决了这个问题. 除了大型的企业应用, 在web2.0网站中Distributed cache也被广泛应用,以解决伸缩性问题. 如著名的开源软件Memcached被很多大的网站象WikiPedia , SlashDot用到;关于Distributed cache,可以google一下Memcached, 能找到很多介绍.

微软推出了Velocity(code name), 目前还是CTP1, 我google了一下, 资料也很少, 主要是这两个:
Velocity Team Blog: http://blogs.msdn.com/velocity/
.net Developers Journal: http://dotnetaddict.dotnetdevelopersjournal.com/velocity_introduction.htm

主要情况总结如下:

  1. 会作为Windows Service运行. 可以集群, 运行在几台Cache Server在
  2. 通讯走TCP
  3. 调用Add, Put, Get方法读/写缓存, 你可以缓存任何可以序列化的.net对象
  4. 除了Key-Based fetching以外, 一个很酷的功能是可以使用tag 提取缓存对象集.
  5. 据Team Blog所说, Velocity的目标不仅仅是为了asp.net开发, 甚至不仅仅是.net应用, 比如说非.net的IIS应用, windows Service等
  6. 一个目前还没有但被广泛要求的功能是Push(notification, 消息通知), Cached Item被修改了之后, 通知使用它的代码. Velocity Team说这是他们下一步要关注的(Push-based notifications is a request we’ve heard from many folks. This is certainly an area we’re looking very deeply into.)
  7. 目前是单独的产品, 据说是免费, 未来估计会集成到.net framework里面去

Tags:, , , , , , .

关于 StreamReader 逐字读取字符的问题

MSDN 对 StreamReader.Read() 方法的解释是:

读取输入流中的下一个字符并使该字符的位置提升一个字符。

而该方法的返回值是一个 int ,之前竟然是这样转换的:

string str =System.Text.Encoding.Unicode.GetString(BitConverter.GetBytes(sr.Read()));

还是费了九牛二虎之力,才得到正确结果,才发现无论使用何种Encoding打开Stream,返回的总是 Unicode 编码。

今天才发现:可以直接将 int 强制转换成 char,并且可以正确的解码。因为,上面提到 Read 总是返回 Unicode 编码,而 char 在 .NET 内部正是用的 Unicode 编码。

char ch = (char)sr.Read();

事实上,MSDN这句话出现了两处字符已经暗示了 char 类型,只怪自己未能领悟。那么为什么 Read() 方法不直接返回 char ?StreamReader 的基类 TextReader 就是明确定义为字符的读取器。 找到MSDN对char类型的说明中提到:

多数 Unicode 字符可由一个 Char 对象表示,但编码为基字符、代理项对和/或组合字符序列的字符由多个 Char 对象表示。因此,String 对象中的 Char 结构不一定与单个 Unicode 字符等效。

看样子,返回 int 类型是为了兼容双字节(char为双字节)仍能无法表示的字符,只是此时就不知道怎么转换了? 用第一种方法强制解码?
有空找几个特殊字符来试试~
 Click to continue »

Tags:, , .

PHP高速站内搜索(不依靠MySQL,支持一切文本类型)

search.php文件

<?php 
/**************************************************** 
原作者: uchinaboy 
特点:无需mysql支持;速度快;无需设置路径,放在哪级目录下,就搜索该目录和子目录;可以 
搜索一切文本类型的文件;显示文件相关内容;关键词自动高亮显示。 
修改内容:增加了自动分页和风格设置文件。 
搜索框代码(请单独存为html文件,如果放在search.php相同目录下,无需修改):<form  
method=”post” action=”search.php”><input type=”text” name=”key” size=40 value=”"> 
<input type=”submit” value=”检索”></form> 
****************************************************/ 
require (“search.inc”
); 
if (
function_exists(“set_time_limit”) && !get_cfg_var(’safe_mode’
)){ 
set_time_limit(600
);} 
function 
get_msg($path
) { 
global 
$key$i

$handle opendir($path
); 
while (
$filename readdir($handle
)) { 
//echo $path.”/”.$filename.”<br>”; 
$newpath $path.“/”.$filename

if (
is_file($newpath
)) { 
$fp fopen($newpath“r”
); 
$msg fread($fpfilesize($newpath
)); 
fclose($fp
); 
match_show($key$msg$newpath$filename
); 

if (
is_dir($path.“/”.$filename) && ($filename != “.”) &&  ($filename != “..”
)) { 
//echo ”<br><br>”.$newpath.”<br><br>”; 
get_msg($path.“/”.$filename
); 


closedir($handle
); 
return 
$i

Click to continue »

Tags:, , , , , .