Maison > interface Web > js tutoriel > Réécrivez ajax pour implémenter le délai d'expiration de la session et accédez à l'exemple de code de la page de connexion

Réécrivez ajax pour implémenter le délai d'expiration de la session et accédez à l'exemple de code de la page de connexion

韦小宝
Libérer: 2018-01-01 19:36:57
original
1226 Les gens l'ont consulté

Cet article présente principalement l'exemple de code ajax pour réécrire ajax afin d'implémenter le délai d'expiration de session et d'accéder à la page de connexion. Les amis intéressés par ajax peuvent s'y référer

Problème : utilisez window.location.href pour. sauter la page, le backend n'a besoin que d'implémenter un filtre pour rediriger vers la page de connexion lorsque la session expire. Mais qu’en est-il de l’utilisation d’Ajax ? L'utilisation d'ajax pour l'exécution entraînera une erreur 302 et il sera impossible d'accéder à la page. Ci-dessous, je publierai mon code front-end et back-end pour résoudre ce problème.

1. filtre de 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 ;
 }
}
Copier après la connexion


2. xml ajouter une configuration :


<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>
Copier après la connexion


*3, réécrire ajax

Remarque : Ce code est placé sur la page d'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(&#39;lovnx&#39;) != -1) {
       window.location.href="/manager/login.html" rel="external nofollow" ;
       return;
      }
     }
    });
    return _ajax(_opt);
   };
  });
Copier après la connexion


4. Ajoutez le code à la page de connexion


<input type="hidden" value="lovnx">
Copier après la connexion


Ce qui précède est un exemple de réécriture d'Ajax pour implémenter le délai d'expiration de session et accéder à la page de connexion introduite par le éditeur. Code, j'espère que cela aidera tout le monde ! !

Recommandations associées :

Explication détaillée du plug-in de téléchargement asynchrone ajax fileupload

Explication détaillée du panier d'achat de création de session Ajax et PHP exemples

Explication détaillée de la mise en œuvre simple de l'effet de pagination AJAX

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal