第30回--Springが提供するCharacterEncodingとOpenSessionInView機能
CharacterEncoding:
Web開発では中国語の文字化けしの問題がしばしば発生し、解決策はWebであることが多い.xmlにフィルタを構成し、springは私たちのweb開発にフィルタを提供し、中国語の文字化けしの問題を解決することができます.Webで必要です.xmlでSpringが提供するフィルタを構成
<!-- -->
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
実験では、添付ファイルのwebプロジェクトをTomcatに配置してこのフィルタがなければ、ページに提出した中国語のデータは、データベースに入ると文字化けしてしまう
注意:
1.私のデータベースのテーブルの文字セットはgbkです.
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk
2.データベースに接続する文字列
url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=GBK
3.両者が中国語データに同意しないと、1つのエラーを返すことができません.
java.sql.SQLException: Incorrect string value: '\xC3\xA5\
OpenSessionInView:
Hibernateのsessionのライフサイクルはservletとjspにまたがり、jspが遅延属性を使用する必要がある場合、sessionが閉じていることに気づき、遅延ロード例外が発生します.
使用
spring
解決する
hibernate
ゆえに
session
オフにすると、遅延ロード例外の問題が発生します.
Webでxml構成
<!-- spring hibernate session -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
添付ファイルの中国式テストの項目、libのjarパッケージは以前のhttp://8366.iteye.com/admin/blogs/412303を参照してください