私は、J2EE Webフィルタの中で静的メソッドを使用するのが安全かどうか(デッドロックの可能性はありません)、またはインスタンスメソッドを使用すべきなのでしょうか? 私はJ2EE WebFilterフィルタで静的メソッドを使用するのは安全ですか?
Navigation.getLoginURL()
が静的メソッドである以下のdoFilterメソッド
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
String contextPath = httpServletRequest.getContextPath();
if ((httpServletRequest.getRequestedSessionId() != null &&
!httpServletRequest.isRequestedSessionIdValid()) || (loginBean == null || loginBean.getUserId() == -1)) {
httpServletResponse.sendRedirect(contextPath + Navigation.getLoginURL());
} else {
chain.doFilter(request, response);
}
}
。これはデッドロックにつながる可能性がありますか?
デッドロックは、あるスレッドが他のスレッドによってロックされたリソースを待ってブロックされている場合に発生し、その逆もあります。ここには何もロックされていません。なぜデッドロックが発生するのでしょうか? –
複数の要求が同時にフィルタにヒットしようとしている場合。 – Jim
それでは?彼らはすべてあなたの静的メソッドを同時に実行します。 –