サーブレットとJSPを使用して単純なWebアプリケーションを作成しています。ユーザーがすでにログインしているかどうかをチェックし、文字通りユーザーセッションが生きているかどうかをチェックするフィルターを実装しています。セッションが有効でない場合、ユーザーはログインページ(index、jsp)にリダイレクトされる必要があります
これは、web.xmlファイルのフィルターマッピングです。
<web-app xmlns...>
<display-name>FilterTest</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<description></description>
<servlet-name>LoginController</servlet-name>
<servlet-class>LoginController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>/LoginController</url-pattern>
</servlet-mapping>
</web-app>
ユーザーが別のページにアクセスしようとすると、LoginFilterはセッションをチェックします。セッションが有効な場合、ユーザーは要求されたページにリダイレクトされます。それ以外の場合は、index.jspにリダイレクトされます。
私がここで直面している問題はLoginFilter
、ユーザーがログインしているときでもセッションをチェックすることです(要求はindex.jsp
ログインページであるから来ます)。つまり、ユーザーがログインすると、コントロールはに移動しLoginFilter
ます。このユーザーのセッションはまだ作成されていないため、ユーザーはログインページにリダイレクトされ、無期限のリダイレクトループが作成されます。
からのリクエストの場合、フィルターチェック/セッションチェックを除外したいindex.jsp
。
これを達成する方法はありますか?または、要求しているページがであるかどうかを識別する方法はありindex.jsp
ますか?
更新:アプリケーションの起動時のURLは次のとおりhttp://servername:port/FilterTest
です。ここにindex.jspがロードされます。
LoginController
ログインが成功した場合にユーザーをhome.jsp(ウェルカムページ)にリダイレクトするサーブレットでのログインを検証しています。
ありがとう..!