ajaxを書き直してセッションタイムアウトを実現して登録ページのインスタンスコードにジャンプします。
問題:window.locations.hrefを使ってページをジャンプする場合、バックエンドはフィルタ一つでsessionがタイムアウトした場合、ログインページにリダイレクトできます。しかし、ajaxを使いますか?ajaxを使って実行すると302エラーが発生し、ページがジャンプできません。以下はこの問題に対して私の前後のコードを貼り付けます。
1、sessionフィルタ
このコードはindexページに置いてあります。
1、sessionフィルタ
import java.io.IOException;
<p style="text-align: center"><img alt=""import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
<p style="text-align: center"><img alt=""public class SessionFilter implements Filter {
<p style="text-align: center"><img alt="" public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
<p style="text-align: center"><img alt="" String requestUri = request.getRequestURI();
<p style="text-align: center"><img alt="" if (requestUri.indexOf("/login.html") > 0 || requestUri.indexOf("/system/login") > 0) {
return ;
}
<p style="text-align: center"><img alt="" HttpSession session = request.getSession(false);
<p style="text-align: center"><img alt="" if (session == null) {
// session , 。
response.sendRedirect(request.getContextPath() + "/login.html");
return ;
}
try {
filterChain.doFilter(request, response);
} catch (Exception e) {
e.printStackTrace();
}
return ;
}
}
2、web.xml追加構成:
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>com.manager.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>/manager/*</url-pattern>
</filter-mapping>
*3、書き換えajaxこのコードはindexページに置いてあります。
jQuery(function($){
var _ajax=$.ajax;
$.ajax=function(opt){
var _success = opt && opt.success || function(a, b){};
var _opt = $.extend(opt, {
success:function(data, textStatus){
_success(data, textStatus);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
//alert(XMLHttpRequest.responseText);
// , , lovnx ,
var reData = XMLHttpRequest.responseText + "";
if(reData.indexOf('lovnx') != -1) {
window.location.href="/manager/login.html" rel="external nofollow" ;
return;
}
}
});
return _ajax(_opt);
};
});
4、ログインページにコードを追加する
<input type="hidden" value="lovnx">
上记は小编が绍介した书き直しajaxがsessionタイムアウトを达成して登录ページの実例コードにジャンプするので、皆さんに役に立つことを望んでいます。ここでも私たちのサイトを応援してくれてありがとうございます。