要約:多くの場合、他の同僚のバグ、またはすでに去った同僚のバグを変更します。ページをクリックすると、背景に対応するコントローラーに移動できない場合があります。この問題に応じて、実際にSPRNGMVCインターセプターを使用して、ユーザー要求をブロックして、ページがリクエストするクラスを知ることができます。もちろん、これらの印刷されたログ情報は、生産環境への配置に適していない場合があります。または、このインターセプターも不要です。 。 。 。
1。ハンドラーインターセプターの使用
ステップ1:インターセプターを登録します
<! - 登録インターセプター - > <MVC:インターセプター> <Bean /> < /mvc:インターセプター>
ステップ2:HandlerInterceptorを継承し、インターセプターを実装します
パッケージcom.iflashbuy.limanman; import java.util.iterator; import java.util.map; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import org.lg.logger; org.springframework.web.servlet.handlerInterceptor; import org.springframework.web.servlet.modelandview; public class controlceptor interceptorは、ハンドラーインターセプター{private logger logger = loggerfactory.getlogger(getclass()); aftercompletion(httpservletrequest request、httpservletresponse応答、オブジェクトarg2、例外arg3)をスローする{} @overridepublic void adpthandle(httpservletrequest arg0、httpservletresponse arg1、object arg2、modelandview arg3) Boolean Prehandle(httpservletrequest request、httpservletresponse arg1、object arg2)スロー例外{int i = 1; try {@suppresswarningss( "unchecked")Map <string、object> parmmap = request.getparametermap(); iterator <string> iter = parmmap.keyset(); (iter.hasnext()){object key = iter.next(); object value = parmmap.get(key); logger.info( "th" + i + "param ----> {} - {}"、key、value); i = i + 1;}} catch(exceance e){i = 1;} i = 1;} i = 1;} i = 1;2。バックグラウンド印刷情報の効果
3。インターセプターの使用を拡張して、基本的なHTTP認証を実現する
/** *コントローラーを実行した後、つまり、 */@overridepublic void aftecompletion(httpservletrequest request、httpservletResponse応答、object arg2、例外arg3)を残すときに呼び出されます。 POSTHANDLE(httpservletrequest request、httpservletResponse応答、object arg2、modelandview arg3)スロー例外{} @overridepublic boolean prehandle(httpservletrequest request(httpservletrequest request、httpservletresponse応答、オブジェクトArg2)例外{string session = get(get)session session =(string)session session =(string(get) (sessionauth!= null){system.out.println( "これは次のステップです"); nextstep(request、response);} else {if(!checkheaderauth(request、response)){response.setstatus(401); response.setheader( "cache-control"、 "no-store"); 0); respons.setheader( "www-authenticate"、 "Basic Realm =/"を入力してください。 request.getheader( "autherization"); system.out.println( "base64でエンコードされたauth is" + getFrombase64(auth)); if((auth!= null)&&(auth.length()> 6){auth = auth.substring(6、auth.length()); string decodedauth = getfrombase64( " base64からデコードされているのは「 + decodedauth); request.getSession()。setattribute( "auth"、decodedauth); return true;} els {return false;}} private string getFrombase64(string){if(s == null)return null; try {] encodebase64 = byte [] encodebase64 = byte [] base64.encodebase64(s.getBytes( "utf-8")); return new string(encodebase64);} catch(unsupportedencodingexception e){return null;}} public void nextpep(httpservletrequest request、httpservletresceptionsception shol go exceprinceコントローラー ");}要約します
上記は、SpringMVCインターセプターハンドラーインターセプターの使用法コードのコード例に関するこの記事の全体的な内容です。私はそれがすべての人に役立つことを願っています。興味のある友達は引き続きこのサイトを参照できます:
スプリングインターセプターハンドラーインターセプターインターセプターインターフェイスコード分析
スプリングMVCによって実装されたログインインターセプターコード共有
欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!