千家信息网

如何处理web登录超时给出提示跳到登录页面的问题

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇文章为大家展示了如何处理web登录超时给出提示跳到登录页面的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、一般页面登录超时验证,可以用过滤器fil
千家信息网最后更新 2025年02月03日如何处理web登录超时给出提示跳到登录页面的问题

本篇文章为大家展示了如何处理web登录超时给出提示跳到登录页面的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、一般页面登录超时验证,可以用过滤器filter,如下:

package com.lg.filter;import java.io.IOException;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 com.lg.func.MyFunc;public class LoginFilter implements Filter{public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws ServletException, IOException {HttpServletRequest request1=(HttpServletRequest)request;HttpServletResponse response1=(HttpServletResponse)response;chain.doFilter(request, response);//放行。让其走到下个链或目标资源中String url=request1.getServletPath();System.out.println("Demo1过滤前"+url);MyFunc myFunc = new MyFunc(request1,response1);System.out.println("Demo1过滤前"+url.startsWith("/index/"));if(myFunc.checkLogin2()&&!url.startsWith("/index/")){response1.sendRedirect("/index_login.html");}System.out.println("Demo1过滤后");}public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stubSystem.out.println("===========init========过滤后");}}

web.xml配置

Demo1Filtercom.lg.filter.LoginFilterDemo1Filter*.jsp

二、ajax提交

提交页面,我的页面提示弹出框架用的asyncBox,可以改成其他的跳转

$.ajax({type: "post",url:"a.jsp",async:false,//同步data:{"name":"fdgh"}success:function(msg){//checkLogin2(msg)判断是否登录超时,超时返回false,跳到登录页面if(checkLogin2(msg)){var obj=eval('('+msg+')');if(obj.result.indexOf("suc")>-1){alert("成功");}else{alert("失败");}}});//是否登录超时,超时返回false,跳到登录页面function checkLogin2(msg){if(msg!=null&&msg.length>0){if(msg.indexOf("DOCTYPE")>-1){checkLogin();return false;}}return true;}function checkLogin(){if(window.top != window.self){top.asyncbox.alert('登录超时,请重新登录', '提示', function(action){ top.location.href='/login.jsp';}); }else{asyncbox.alert('登录超时,请重新登录', '提示', function(action){_window.location.href='/login.jsp';}); }}

后台:

1.处理数据前

if(checkLogin())return; //检查登录,session过期,或者未登录,自动跳转public boolean checkLogin() throws IOException{boolean result = false;String html = "";NativeObject u = SessionMng.getCurrentUser(request);//检验是否登录超时if (u == null){html = "\n" +"\n" +"\n" + "\n" + "\n";response.getWriter().println(html); result = true;}return result;}

三、异步导入excel

用AjaxUpload.js导入excel功能

前端提交页面参考上面的;

后台处理页面:

if(!isLogin()){response.getWriter().print("DOCTYPE");return ;}//是否登录public boolean isLogin(){NativeObject u = SessionMng.getCurrentUser(request);if (u != null){return true;}else{return false;}}

四。用window.open导出excel文件

后台同二

前端导出页面

function export_excel(){ $.ajax({type: "post",url:"/admin/inc/checkLogin.jsp",async:false,//同步success:function(msg){if(checkLogin2(msg)){window.open("perfm_excel.jsp?"+$('#Form1').serialize());}}}); login.jsp<%@ page contentType="text/html; charset=utf-8"%><%//========================当前登陆用户信息========================================if(checkLogin())return;%>

上述内容就是如何处理web登录超时给出提示跳到登录页面的问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0