圧縮転送とクライアントキャッシュ(EHRGZIPFilterとCacheHeaderFilter)

4850 ワード

B/Sフロントエンド開発を行う場合は、ページコードの分離に注意してください.このようにすることこそ優れた符号化行為である.1、js、css、html構造の分離は、ページをよりきれいにすることができる2、js、cssとhtmlの分離は、コードをより大きく再利用することができる3、分離した構造はスクリプトの安定した劣化を容易にする(より良い額ブラウザ互換jsを書くように迫る)4、分離した構造は、様々な要素を処理することができる.例えば:1)js,jsp,ピクチャなどを圧縮することができる2)上記のjsファイル,cssファイルなどを圧縮し,圧縮してクライアントに転送することで,ネットワークリソースを節約し,分離後,圧縮技術とクライアントキャッシュ技術を用いてプロジェクトを最適化することができる.私が使っているプロジェクトでは、tk-filtersを採用してこの目的を実現しました1、tk-filters-1.0.1をダウンロードします.zip 2、解凍後tk-filters.JArはクラスパス3に格納、解凍後のconfディレクトリの下でtk-filtersを開く.propertiesファイルは、3つの大きな項目の構成4、tk-filtersの修正に関連しています.propertiesファイルの圧縮とキャッシュにより、これらの機能が起動します.
          ①、GZIPFilter.Enabled=true
          ②、GZIPFilter.LogStats=true         
          ③、CacheFilter.Enabled=true 5、confディレクトリの下にデフォルトのwebがあります.xmlファイルの構成例では、構成上の注意点6、デフォルトの例に従ってwebを構成する.xmlの場合、実際の状況に応じて構成されます.例は次のとおりです.
<filter>
    	<filter-name>GZIPFilter</filter-name>
    	<display-name>GZIPFilter</display-name>
    	<description>Transparently compresses server output using Gzip encoding, when possible</description>
    	<filter-class>com.bsoft.hzehr.biz.filter.GZIPFilter</filter-class>
  	</filter>  
  	<filter>
    	<filter-name>CacheFilter</filter-name>
    	<display-name>CacheFilter</display-name>
    	<description>Sends Expires HTTP headers to reduce unnecessary network traffic</description>
    	<filter-class>com.tacitknowledge.filters.cache.CacheHeaderFilter</filter-class>
  	</filter>
  
	<filter-mapping>
		<filter-name>GZIPFilter</filter-name>
		<url-pattern>*.js</url-pattern>
	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.css</url-pattern>
  	</filter-mapping>
	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.jsonRequest</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.jshtml</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.dic</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.chart</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.ichart</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.graphic</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>/services/*</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>/print</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>/listprint</url-pattern>
  	</filter-mapping>
  	<filter-mapping>
    	<filter-name>GZIPFilter</filter-name>
    	<url-pattern>*.etReport</url-pattern>
  	</filter-mapping>
	<filter-mapping>
		<filter-name>GZIPFilter</filter-name>
		<url-pattern>*.swf</url-pattern>
	</filter-mapping>	
	<filter-mapping>
		<filter-name>CacheFilter</filter-name>
		<url-pattern>*.js</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CacheFilter</filter-name>
		<url-pattern>*.css</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CacheFilter</filter-name>
		<url-pattern>*.gif</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CacheFilter</filter-name>
		<url-pattern>*.jpg</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>CacheFilter</filter-name>
		<url-pattern>*.png</url-pattern>
	</filter-mapping>

 
参考資料:http://imti-qq.iteye.com/blog/1067202