2016-03-24 21 views
3

user-agentやいくつかのヘッダーの詳細、ユーザーが最近ヒットしたurlページの名前など、すべての詳細を格納するコントローラクラスを作成しました。そして私は、ユーザーが自分のJSPページ上で打ったとき、私は、データベース内のすべてのヘッダー、時間とURLを保存するよう春のjspからコントローラークラスを呼び出す方法

@Controller 
    public class HelloController { 

     @RequestMapping(value = "/StroreHits") 
     public String hello(
       @RequestHeader(value="Accept") String accept, 
       @RequestHeader(value="Accept-Language") String acceptLanguage, 
       @RequestHeader(value="User-Agent", defaultValue="foo") String userAgent, 
       HttpServletResponse response) { 

      System.out.println("accept: " + accept); 
      System.out.println("acceptLanguage: " + acceptLanguage); 
      System.out.println("userAgent: " + userAgent); 
      String url_name = request.getRequestURL().toString() + "?" + request.getQueryString() 

     StoreHits sh = new StoreHits(); 
sh.insertValues(accept,acceptLanguage,userAgent,name); 
      return null; 
     } 

    } 
+0

まあ、あなたのJSPページでは、HTMLフォーム/ボタンまたはお使いのコントローラクラスに要求を送信し、他のUIコントロールを作成する必要があります。それがあなたがやろうとしていることで、動作していないのなら、jspページのコードも投稿してください。 –

+0

あなたはexaple.com/indexのようないくつかのURLを当てていると仮定します。データベースのすべての詳細を1つの方法で保存したいのですが、すべてのコントローラクラスに同じコードを書き込んで、すべてのヘッダーを格納しますが、そのコードは一度だけ、そのコントローラーの応答をページに含める –

+0

jspでその作業のためにフィルターを使用しました。春にもフィルターを使用する必要がありますか?または他の方法がありますか? –

答えて

1

はあなたがヒットしていると仮定し、バックエンドからHelloControllerクラスを呼び出すことができますどのように20本の以上のページを持っていますその時のexaple.com/indexのようないくつかのURLでは、データベースのあらゆる詳細を1つの方法で保存したいのですが、すべてのコントローラクラスに同じコードを書き込んで、すべてのヘッダを取得して格納しています

あなたは、Springのコントローラに送信するすべてのリクエストの前に呼び出される場合、Spring MVCインターセプタを記述する必要があります。

かを確認できSpring MVC Interceptors Example

+1

Tarun Guptaさん、ありがとうございました。私は春に始めた1週間の助けを受けました。私は春のMVCインターセプタについて知りませんでした:-) –

関連する問題