プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java、SAStruts、ActionでHTTPヘッダを取得
HTTPヘッダの特定項目の解析が必要になりましてね。
SAStrutsでどーやんの(--?
と思って調べてみました。

ふむ、ビビってたけど実はとても簡単でした。
Action内で

  @Resource
  protected HttpServletRequest request;


とかやればサーブレットみたいに普通に使えるのですね。
φ(--)サンプル

  public class TestAction {
  
      static Logger logger = Logger.getLogger(TestAction.class.getName());
  
      public String msg1;
      public String msg2;
      public String msg3;
  
  

      @Resource
      protected HttpServletRequest request;

      
      /**
       * 初期表示
       *
       */
      @Execute(validator = false)
      public String index() {
          return "index.jsp";
      }
  
      /**
       * HTTPヘッダ取得処理
       *
       */
      @Execute(validator = false)
      public String dispHttpHeader() {
          msg1="User-Agent=" +
request.getHeader("User-Agent");
          msg2="Content-Type=" + request.getHeader("Content-Type");
          msg3="Referer=" + request.getHeader("Referer");
  
          return "disphttpheader.jsp";
      }
  }



えっ?インターセプターではどーやればいーんだって?
ほい、サンプルφ(--)


  package hoge.interceptor;
  
  import java.util.Map;
  

  import javax.servlet.http.HttpServletRequest;
  import org.aopalliance.intercept.MethodInvocation;
  import org.apache.log4j.Logger;
  import org.seasar.framework.aop.interceptors.AbstractInterceptor;
  import org.seasar.framework.container.SingletonS2Container;

  import org.seasar.struts.util.RequestUtil;
  
  
  @SuppressWarnings("serial")
  public class TestInterceptor extends AbstractInterceptor {
      Logger logger = Logger.getLogger(getClass());
  
      @Override
      public Object invoke(MethodInvocation arg0) throws Throwable {
          //リクエスト取得

          HttpServletRequest request = RequestUtil.getRequest();
  
          logger.info("\n/////////////////////////:" +
request.getParameter("user_id"));
  
          Object ret = arg0.proceed();
  
          return ret;
      }
  }


インターセプターの方「HTTPヘッダ取ってないじゃん!」とか
怒らないで下さいね(--;
「HttpServletRequest」取れれば後は好きに使えるでしょ(--?
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Java 

  関連記事