会话超时后,返回登录界面,
如何才能让其返回到原来的登录界面
(有中、英文登录界面)即:
中文登录超时后,返回中文登录界面
英文登录超时后,返回英文登录界面

解决方案 »

  1.   

    传参数这个我清楚,问题是传参数后,老是报错~`
    每个页面都引入
    checkSession.jsp<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
    <%
    Object obSession = session.getAttribute("Crminfo");
    if(obSession==null){
    String lan = session.getAttribute("userLanguage").toString(); if (lan.equals("en_US")){
    %><script>
    alert("User login time long,please login again,TKS!");
    window.open('../index.jsp?locale=en_US','d','toolbar=yes, menubar=yes, scrollbars=no, resizable=yes,location=yes,left=0,top=0,width=' + screen.availWidth + ',height=' + screen.availHeight);
    top.opener = null;
    top.close();
    </script>
      <% }else {  %>
    <script>
    alert("用户登陆时间过长,请重新登陆,TKS!");
    window.open('../index.jsp?locale=zh_CN',"",'toolbar=yes, menubar=yes, scrollbars=no, resizable=yes,location=yes,left=0,top=0,width=' + screen.availWidth + ',height=' + screen.availHeight);
    top.opener = null;
    top.close();
    </script>
    <% }
        return;
    }%>比如有个页面
    <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
    <%@ page import="crm.Crminfo"%>
    <%@ include file="checkSession.jsp"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><fmt:requestEncoding value="UTF-8"/>
    <HTML>
    <c:set var="loc" value="zh_CN"/>
    <c:if test="${!(empty param.locale)}">
      <c:set var="loc" value="${param.locale}"/>
    </c:if>
    <fmt:setLocale value="${loc}" />
    <fmt:bundle basename="app">
    <HEAD>
    <TITLE><fmt:message key="CRMP"/></TITLE>
    <HEAD>
    <TITLE>selena system</TITLE>
    </HEAD>
    <BODY>
    <table width="100%" height="100%">
    <tr>
      <td background="../images/background.jpg">
      </td>
     </tr>
    </table>
    </BODY>
     </fmt:bundle>
    </HTML>
      

  2.   

    1楼的可以吗?连接都丢失了。还能运行String lan = session.getAttribute("userLanguage").toString();吗?  session是在客户端的吗?是在服务器端的,既然连接都没有了。怎么获得?   是我理解错了吗?
      

  3.   

    发错了~~
    应该是这样的
    checkSession.jsp<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
    <%
    Object obSession = session.getAttribute("Crminfo");
    if(obSession==null){
    String lan = request.getParameter("locale");if (lan.equals("en_US")){
    %><script>
    alert("User login time long,please login again,TKS!");
    window.open('../index.jsp?locale=en_US','d','toolbar=yes, menubar=yes, scrollbars=no, resizable=yes,location=yes,left=0,top=0,width=' + screen.availWidth + ',height=' + screen.availHeight);
    top.opener = null;
    top.close();
    </script>
      <% }else {  %>
    <script>
    alert("用户登陆时间过长,请重新登陆,TKS!");
    window.open('../index.jsp?locale=zh_CN',"",'toolbar=yes, menubar=yes, scrollbars=no, resizable=yes,location=yes,left=0,top=0,width=' + screen.availWidth + ',height=' + screen.availHeight);
    top.opener = null;
    top.close();
    </script>
    <% }
        return;
    }%>比如有个页面
    <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
    <%@ include file="checkSession.jsp"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><fmt:requestEncoding value="UTF-8"/>
    <HTML>
    <c:set var="loc" value="zh_CN"/>
    <c:if test="${!(empty param.locale)}">
      <c:set var="loc" value="${param.locale}"/>
    </c:if>
    <fmt:setLocale value="${loc}" />
    <fmt:bundle basename="app">
    <HEAD>
    <TITLE><fmt:message key="CRMP"/></TITLE>
    <HEAD>
    <TITLE>selena system</TITLE>
    </HEAD>
    <BODY>
    <%
       String lan=session.getAttribute("userLanguage").toString();
        //这个从check.jsp页面获的,没有错误
    %>
    <table width="100%" height="100%">
    <tr>
      <td><input type=hidden name=locale value=<%=lan%>>
      </td>
      <td background="../images/background.jpg">
      </td>
     </tr>
    </table>
    </BODY>
     </fmt:bundle>
    </HTML>
      

  4.   

    按道理1楼的想法没错,我原先就是这样想的
    在每个页面加入checkSession.jsp后,显示页面时
    没有错误,但超时后就会出错~~
    那个兄弟有办法解决,速度,急啊~~~~
      

  5.   

    在客户端写个cookie不行吗?
      

  6.   

    每个页面都要加上checkSession.jsp,
    感觉用cookies不行~~
    那位高手帮办忙忙啊~~速度~~`
      

  7.   

    看checkSession.jsp 里String lan = request.getParameter("locale");得到的值是什么。
      

  8.   

    String lan = request.getParameter("locale");
      

  9.   

    太巧了 近期我也遇到了与lz类似问题。 我的界面有英语、西语, 当用es(西语)登陆,等到session过期后,返回到登陆界面永远的都是英语,正确来说应该是返回之前状态(es)。通过在代码中跟踪了下,从登陆后代码里有记录登陆时语言的状态,但sesion过期超时后,在转到登陆前的actoin方法login()里面取出的语言是中文,接着后面有个判断
    if(!languageType.contains("en") || langguageType.contains("es")){languageType== "en"}
    因此返回到登陆页面永远都是英语,
    这就感觉很奇怪了(由于属二次开发的工程,在超时后紧接着后面的代码没有找到,暂时只能发现登陆前的action方法),我在想是不是与我当前的中文系统有关,因此代码哪个位置获取的是当前系统的语言,但一直没有找到超时后紧接着的代码。 
    所以请问下大家sesion超时后想返回到登陆页面的中间环节是通常是怎么处理的?