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プロファイルで実装します.
しかし、これでwebapp全体に適用されます.
4.ウェブを修正することもできる.xmlファイル、フィルタを構成します.その原理はすべて同じで,ただ方式を変えるだけだ.
1.フィルタクラスの作成:
2.Webでxml構成
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メソッドを返します.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
文字化けの問題は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メソッドを返します.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!