登录超时给出提示跳到登录页面(ajax、导入、导出)

一、一般页面登录超时验证,可以用过滤器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 stub
System.out.println("===========init========过滤后");
}
}

web.xml配置

<filter>
<filter-name>Demo1Filter</filter-name>
<filter-class>com.lg.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Demo1Filter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping> 

二、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 = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n" +
"<script type='text/javascript' src='/admin/js/jquery.min.js'></script>\n" +
"<script type='text/javascript' src='/admin/js/common.js'></script>\n" +
"<script type='text/javascript' src='/admin/js/dialog/asyncbox.js'></script>\n" +
"<script language=javascript>checkLogin();</script>\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;
%> 

以上内容给大家介绍了登录超时给出提示跳到登录页面(ajax、导入、导出)的相关知识,希望对大家有所帮助!

(0)

相关推荐

  • jsp登录页面的简单实例 雏形

    jsp登录页面的简单实例 雏形 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

  • jQuery Ajax 实现在html页面实时显示用户登录状态

    当网站是全静态的html页面时,而又希望网站会员在登录之后并在所有页面头部显示登录状态,如用户名等,如果未登录就是未登录状态,下面给大家来分享实现的方法. 一.在html静态页面中加入div,并指定ID 如: <div id="ajaxlogin"></div> 二.新建一个动态的ajaxlogin.php文件,用来判断用户是否登录了 代码如下: <? session_start(); if( $_SESSION['u_login']=='turelogi

  • ajax编写简单的登录页面

    AJAX的全称是Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ajax的优点: 1.最大的一点是页面无刷新,用户的体验非常好. 2.使用异步方式与服务器通信,具有更加迅速的响应能力. 3.可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本.并且减轻服务器的负担,ajax的原则是"按需取数据",可以最大程度的减少冗余请求,和响应对服务器造成的负担. 4.基于

  • 防止登录页面出现在frame中js代码

    在使用frame页面嵌套开发的时候,遇到重启了服务器的时候会出现登录页面在frame页面中出现, 所以需要在登录页面里面用js判断下当前的地址信息,然后跳转到登录的单独页面中. js代码如下: $("document").ready(function(){ //防止在frame里面出现登录页面 if(top.location!==self.location){ //alert(top.location); //alert(self.location); top.location.hre

  • JS实现登录页面记住密码和enter键登录方法推荐

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>按enter键触发事件和记住账号密码</title> <script> //方法一: // document.onkeypress=function(e){ // var keycode=document.all?event.keyCode:e.which; // if(keycode

  • 基于JS设计12306登录页面

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <html> <head> <script> function f_validate() { var username=document.getElementById("uname").value; var passwd=document.getElementById("passwd").value; var yzm=document.getElementById("

  • 原生js验证简洁注册登录页面

    序 一个以js验证表单的简洁的注册登录页面,不多说直接上图 效果 主要文件 完整代码 1 sign_up.html 注册表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>sign-up</title> <link rel="stylesheet" href="css

  • Ajax Session失效跳转登录页面的方法

    在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截):一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的HTML代码,这肯定不是我们想要的,那么我们如何解决呢?请看以下步骤: 一.建立拦截器 package com.xxx.planeap.interceptor; import javax.servlet.http.HttpServletRequest; impor

  • 一款经典的ajax登录页面 后台asp.net

    下面实现一个经典的登录页面,有保存密码功能,页面上所有的控件都是html控件,没有服务器控件 1,新建一名为login.htm的静态网页文件,作为登录页面,如图 body标签代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 复制代码 代码如下: <body onkeydown ="enterLogin()"> &

  • JBuilder2005实战JSP之登录页面实现代码[图]

    通过File->New...->Web->双击JSP图标,弹出创建JSP向导的对话框,如下图所示: 图 3 通过向导创建login.jsp ·Web module:如果一个工程下有多个Web模块,你可以通过这儿指定JSP所要加入到的Web模块,因为我们的工程中只有一个webModule,所以是向导将默认设置为webModule. ·Name :键入JSP文件名,你可以键入.jsp后缀,也可以不写后缀,直接键入login就可以了. Generate sample bean选项勾选后JBui

随机推荐