第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を参照してください