体会真正的Struts开发3(2)

我们编写资源文件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

password=<font color=red>密码格式错误</font>

userName=<font color=red>帐号格式错误</font>

hbm.session.error=建立Hibernate Session 错误。

no.user=找不到这样得用户。

hbm.session.query=Hibernate HQL 查询错误。

errors.header=</font color=red><ul>

errors.footer=</ul></font>

Logon=登陆

Logon.UserName=帐号

Logon.Password=密码

保存到C:/1.txt

然后运行

native2ascii -encoding GBK C:/1.txt C:/ApplicationResources_zh_CN.properties

将生成得C:/ApplicationResources_zh_CN.properties拷贝到src目录下,我们重新运行此登陆程序。

出现乱码,我们忘了将JSP页面编码设成UTF-8了,添加

contentType="text/html;charset=UTF-8",再次刷新

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 165pt; HEIGHT: 75pt" type="#_x0000_t75"><img src="http://dev.youkuaiyun.com/Develop/ArticleImages/26/26118/优快云_Dev_Image_2004-3-271455050.png" o=""><font size="3"></font></shape>

OK成功

当你在帐号框里面输入中文,但是没有通过,就会出现下图现象。

<shape id="_x0000_i1025" style="WIDTH: 174.75pt; HEIGHT: 91.5pt" type="#_x0000_t75"><img src="http://dev.youkuaiyun.com/Develop/ArticleImages/26/26118/优快云_Dev_Image_2004-3-271455052.png" o=""><font size="3"></font></shape>

又出现乱码,这样的情况解决办法有3个:

1. 在每一个Action里面设置Response得编码,这种方法比较繁琐,每一个Action必须设置一次。

2. 利用Servlet2.3里面得过滤器,统一设置编码

3. 重载ActionServlet里面的Process函数。

1种方法很难通过XML配置来获得编码方式。

23可以通过Web.xml里面配置参数来解决

本文讲述时利用方式2,过滤器Filter

Tomcat里面的samples里面的Filter文件夹下有现成的编码过滤器。

拷贝来,在Eclipse利用重构,解决package不匹配问题。

下面为这个过滤器配置web.xml

<!--

Filter

-->

<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>com.yjsoft.filter.SetCharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!--

end

-->

再次启动Tomcat测试,OK。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值