2011-12-20 10 views
3

私はJSF 2.0 Webプロジェクトを持って、私のWebフォームを持って、それがしなければならない。リクエストヘッダー、リモートアドレス、その他のHttpServletRequest固有の情報を取得するには?

  1. は(完了)形のparametresを取得し、ビーンに保存

  2. これを取得しますサーブレットからの情報:

    • リモートアドレス:
    • リモートホスト:
    • ロケール:
    • コンテンツタイプ:
    • 境界:
    • コンテンツの長さ:
    • 文字エンコード:

  3. (ステップ2を待っている)データベースのテーブル内のビーンデータとサーブレットデータを挿入します

JSFでサーブレットについてよく知りません。私は1つ作る必要がありますか?か否か。

String informe=""; 
    Enumeration a = request.getHeaderNames(); 
    while(a.hasMoreElements()){ 
     String h = a.nextElement().toString(); 
     informe += h+": "+request.getHeader(h)+"\n"; 
    } 
    a = request.getAttributeNames(); 
    while(a.hasMoreElements()){ 
     String h = a.nextElement().toString(); 
     informe += h+": "+request.getHeader(h)+"\n"; 
    } 
    informe += "Remote Address: "+request.getRemoteAddr()+"\n"; 
    informe += "Remote Host: "+request.getRemoteHost()+"\n"; 
    informe += "Locale: "+request.getLocale()+"\n"; 
    informe += "Content Type: "+request.getContentType()+"\n"; 
    informe += "Content Length: "+request.getContentLength()+"\n"; 
      ..... 
      .. 

私は私がしなければならないJSFとウィッヒステップで要求情報を得ることができるかわからない:私はJSPというのが、内のコードを持っています。私は多くのページを読んだが、私は彼らがするすべてのことを必要としないと思う。

答えて

4

HttpServletRequestオブジェクトは、ExternalContext#getRequest()で利用可能なJSFにあります。

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest(); 
// ... 

ExternalContextでも、希望する情報を得るためのいくつかの直接的な方法があります。 javadocgetRequestXxx()から始まる方法、例えばgetRequestHeaderMap()getRequestContentType()などを確認してください。

このために別のサーブレットは必要ありません。 JSFは唯一の要求/応答コントローラとしてFacesServletを既に持っています。

+0

あなたは私のセーバーです! XDD私の評判を4つ与えてください、私はあなたの投稿に投票しますXDDのおかげでの人 – Roberto

+0

あなたは歓迎です:) – BalusC

関連する問題