JAvaBeanの基礎知識と一般的な文字化けし解決方法

4862 ワード

JAvaBeanの基礎知識と一般的な文字化けし解決方法
文字化けの問題はjavaWeb開発者が直面した問題ではないでしょうか.この問題は当時、Javaを勉強する考えにも影響しました.あきらめたい考えさえありました.仕方がありません.当時は若くて、ほほほ.実は文字化けしの問題が発生する原因はたくさんあって、文字化けしの問題を解決するのもたくさんあって、今すぐ見てみましょう:
文字化けしが発生した箇所は大きく分けて以下の3種類があります.
1 jspページにおける2 jspページ間の相互参照パラメータ3とデータベースにおけるデータのアクセス
ソリューションは大きく3つに分けられます.
1 jspページに表示されるのは、jspページの中国語文字符号化が設定されていないためです.2 jspページ間で相互参照が表示されるのは、パラメータが正しい文字符号化を設定していないためである.3以上の2つの問題が解決すれば,データベースに格納され,自然と文字化けして存在しない.データベースに格納されたデータを再符号化しない限り.
具体的な解決方法:
1.フォームページヘッダにutf-8の文字コードを設定する


これに加えてjspページの中国語文字化けし表示を解決すると、tomcatコンパイル後にクライアントに出力されるhtmlファイルは中国語符号化ではないため、文字化けして発生する.
 2.ページ要求と応答のエンコーディングを設定します.

 

この文を加えてjspページの中国語パラメータ伝達文字化を解決します.ブラウザでデフォルトで使用されるエンコーディングを「UTF-8」送信要求パラメータに設定します.
3.String(request.getParameter("name").getBytes("ISO8859_1"),"utf-8");伝達されたパラメータをすべてutf-8に符号化変換するという欠点は、伝達されるたびにパラメータがこのように書かれ、面倒であることである.
同様にserverを設定することができる.xmlプロファイルで実装します.

< Connector 
port ="8080"  
maxHttpHeaderSize ="8192"  
maxThreads ="150"  
 minSpareThreads ="25"  
maxSpareThreads ="75"  
enableLookups ="false"  
 redirectPort ="8443"  
acceptCount ="100"  
connectionTimeout ="20000"  
 disableUploadTimeout ="true"   
URIEncoding ="utf-8"/>  

しかし、これでwebapp全体に適用されます.
4.ウェブを修正することもできる.xmlファイル、フィルタを構成します.その原理はすべて同じで,ただ方式を変えるだけだ.
1.フィルタクラスの作成:

package org.RN.util; 
 
import java.io.IOException; 
 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
 
public class Encoding implements Filter { 
  @SuppressWarnings("unused") 
  private FilterConfig config=null; 
  String encoding=null; 
 public void destroy() { 
 this.encoding=null; 
 this.config=null; 
 
 } 
 
 public void doFilter(ServletRequest request, ServletResponse response, 
  FilterChain chain) throws IOException, ServletException { 
   if(encoding!=null) 
   request.setCharacterEncoding(encoding); 
   chain.doFilter(request, response); 
    
 
 } 
 
 public void init(FilterConfig arg0) throws ServletException { 
 this.config=arg0; 
 this.encoding=arg0.getInitParameter("encoding"); 
 
 } 
 
} 

 2.Webでxml構成

 
      
 Encoding  
  
  filter.Encoding 
  
  
  
 Encoding  
 * 
  


 

5.もう一つの一般的な文字化け問題は、ダウンロード時にファイル名の文字化けが発生することです
ダウンロード処理元のコードは以下の通りです.
response.setHeader("Content-Disposition", "attachment; filename="+ java.NET.URLEncoder.encode(fileName, "UTF-8")); URLEncoderクラスには、文字列をアプリケーション/x-www-form-urlencoded MIME形式に変換する静的メソッドが含まれます.
URLDecoderとURLEncoderクラスに対応するURLDecoderクラスには2つの静的方法がある.これらは、x−www−form−url−encodedという形式で符号化されたstringを復号する.すなわち、すべてのプラス記号(+)をスペース記号に変換し、すべての%xxを対応する文字に変換します.
JavaBeanはJAVA言語で書かれた再利用可能なコンポーネントです.JavaBeanと書くには、クラスが具体的で共通であり、パラメータのないコンストラクタを持つ必要があります.JavaBeanは、コンシステンシ設計モードに適合する共通の方法を提供することによって、内部ドメインをメンバー属性に露出します.周知のように、属性名はこのモードに合致し、他のJavaクラスはこれらのJavaBean属性を独自のメカニズムで発見し、操作することができる.
JavaBeanのタスクは、「Write once,run anywhere,reuse everywhere」、すなわち「一括作成、任意の場所で実行、任意の場所で再利用」です.これは、ソフトウェア産業を悩ませる複雑さを解決し、簡単でコンパクトで優れた問題解決策を提供することです. 
JavaBeanのスコープScopeは、ライフタイムを持つ変数です.JavaBeanの範囲はフラグの右側に表示されます.JavaBeanのショートカットリファレンスが生成されます.説明:jspサーバエンジンが剥離します
ページpage、リクエストrequest、ダイアログセッション、アプリケーションの4つの範囲があります.
会話の範囲:
ダイアログ範囲のJavaBeanは、主に複数のページと期間にわたって適用されます.たとえば、ユーザー情報を入力します.情報を追加し、フィードバックを受け入れ、ユーザーが最近実行したページの軌跡を保存します.会話範囲JavaBeanは、ユーザの会話IDに関する情報を保持します.これらの情報は、一時的なダイアログクッキーから来ており、ユーザーがブラウザを閉じると、クライアントとサーバから削除されます.
ページ/要求範囲:
ページとリクエスト範囲のJavaBeanは、フォームのbeanに似ている場合があります.これは、フォームの処理に使用されることが多いからです.フォームはユーザの入力を処理するのに長い時間を必要とし、通常、ページがHTTP/POSTまたはGET要求を受け入れるために使用される.また、ページとリクエスト範囲のbeanは、大規模なサイト・サーバ上の負荷を低減するために使用でき、ダイアログbeanを使用すると、処理が遅れると多くのリソースが消費される可能性があります.
適用:
アプリケーション範囲は、通常、JDBC接続プール、アプリケーション監視、ユーザカウント、および他のユーザ動作に関与するクラスなど、サーバのコンポーネントに適用されます.BeanでHTMLの生成を制限する:理論的には、JavaBeanはjsp層が担当する仕事であるため、HTMLを生成しません.しかしながら、動的メッセージに予め用意されたフォーマットを提供することは非常に有用である.生成されたHTMLは、マークアップされたJavaBeanメソッドを返します. 
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!