1

クライアントでは、JavaScript コード:

<script src="api/api.js?v=1.x&key=abjas23456asg" type="text/javascript"></script>

ブラウザがこの行に遭遇すると、get リクエストがサーバーに送信され、api.js のコンテンツが取得されると思います。

しかし、私はこの get リクエストを処理し、v とキーのパラメーターに従って、コンテンツに対して他のトリミングを行いたいと考えています。

例えば:

キーが有効でない場合、アラート文字列を返すだけで、実際の API は返しません。

4

1 に答える 1

0

これを行うには、直接提供するのではなく、.js の要求を spring にリダイレクトする web.xml を最初に構成する必要があります。

次に、HandlerInterceptorAdapter を使用してリクエスト ハンドラーを作成し、リクエストをインターセプトしてキー パラメーターを検証する必要があります。利用できない場合は、アラート コードをプッシュするだけで、preHandle の結果としてフラッシュを送信して、それ以上のリクエスト チェーンを処理できないようにします。

を使用して静的リソースをマップできます

<mvc:resources mapping="/api/**" location="/api-folder/"/>

設定できるすべてのリソースに対して web.xml を構成するには

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*</url-pattern>
</servlet-mapping>

HandlerInterceptor の場合

@Component
public class MyHandler extends HandlerInterceptorAdapter {
@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    throws Exception {
    String key=request.getParameter("key");
            if(invalid) {
              write alert to response 
              return false;
            }else{
                // let spring serve your static content
            } 
}

}

Web コンテキスト xml の場合

<mvc:interceptors>
    <bean class="MyHandler " />
</mvc:interceptors>
于 2012-07-11T07:12:36.743 に答える