精华内容
下载资源
问答
  • session超时

    2017-04-27 13:07:00
    设置Session超时时间方式: 方式一:在web.xml中设置session-config如下:<session-config><session-timeout>2</session-timeout></session-config> 客户端连续两次与服务器交互间隔时间...

    设置Session超时时间方式:

    方式一:
     在web.xml中设置session-config如下:
    <session-config>
      <session-timeout>2</session-timeout>
    </session-config>

    客户端连续两次与服务器交互间隔时间最长为2分钟,2分钟后session.getAttribute()获取的值为空。

    方式二:
     在Tomcat的/conf/web.xml中session-config,默认值为:30分钟
     <session-config>
        <session-timeout>30</session-timeout>
     </session-config>

    方式三:
     在Servlet中设置
     HttpSession session = request.getSession();
     session.setMaxInactiveInterval(60);//单位为秒

    说明:
     优先级:Servlet中API设置 > 程序/web.xml设置 > Tomcat/conf/web.xml设置

    转载于:https://www.cnblogs.com/liluredhat/p/6773583.html

    展开全文
  • session 超时

    2019-03-27 04:00:51
    NULL 博文链接:https://master3003.iteye.com/blog/1178419
  • 【摘要】PHP即“超文本预处理器”,是一种...下面是php怎么设置session超时时间,让我们一起来看看php怎么设置session超时时间的具体内容吧!php怎么设置session超时时间php设置session超时时间的方法:可以利用ini...

    【摘要】

    PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php怎么设置session超时时间,让我们一起来看看php怎么设置session超时时间的具体内容吧!

    php怎么设置session超时时间

    php设置session超时时间的方法:可以利用ini_set()函数来改变当前上下文环境的属性值,从而达到设置会话超时时间的目的,如:【ini_set('session.gc_maxlifetime', "3600");】。

    第一种方法:

    (推荐教程:php图文教程)

    设置php.ini配置文件,设置session.gc_maxlifetime和session.cookie_lifetime节点属性值,当然也可以使用ini_set函数改变当前上下文环境的属性值:ini_set('sessi

    998ecc56af7b687f28c4f5fcafe721a2.pngon.gc_maxlifetime', "3600"); // 秒

    ini_set("session.cookie_lifetime","3600"); // 秒

    第二种方法:

    设置Session时间戳

    在登录成功时设置时间戳为当前时间推后1小时,$_SESSION['expiretime'] = time() + 3600;。

    (视频教程推荐:php视频教程)

    在检查用户登录情况使用如下代码:if(isset($_SESSION['expiretime'])) {

    if($_SESSION['expiretime'] < time()) {

    unset($_SESSION['expiretime']);

    header('Location: logout.php?TIMEOUT'); // 登出

    exit(0);

    } else {

    $_SESSION['expiretime'] = time() + 3600; // 刷新时间戳

    }

    }

    以上就是php怎么设置session超时时间的内容,对PHP感兴趣的小伙伴们可以关注考必过,获取更多PHP前沿资讯和最新技术。最新消息小编会第一时间发布,助力大家考试,加油!

    展开全文
  • Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。设置Session超时时间方式:...

    在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。

    设置Session超时时间方式:

    方式一:

    在web.xml中设置session-config如下:

    2

    即客户端连续两次与服务器交互间隔时间最长为2分钟,2分钟后session.getAttribute()获取的值为空

    API信息:

    session.getCreationTime()   获取session的创建时间

    session.getLastAccessedTime()  获取上次与服务器交互时间

    session.getMaxInactiveInterval() 获取session最大的不活动的间隔时间,以秒为单位120秒。

    方式二:

    在Tomcat的/conf/web.xml中session-config,默认值为:30分钟

    30

    方式三:

    在Servlet中设置

    HttpSession session = request.getSession();

    session.setMaxInactiveInterval(60);//单位为秒

    说明:

    1.优先级:Servlet中API设置 > 程序/web.xml设置 > Tomcat/conf/web.xml设置

    2.若访问服务器session超时(本次访问与上次访问时间间隔大于session最大的不活动的间隔时间)了,即上次会话结束,但服务器与客户端会产生一个新的会话,之前的session里的属性值全部丢失,产生新的sesssionId

    3.客户端与服务器一次有效会话(session没有超时),每次访问sessionId相同,若代码中设置了session.setMaxInactiveInterval()值,那么这个session的最大不活动间隔时间将被修改,并被应用为新值。

    4.Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁;或者客户端关掉浏览器

    5.对于JSP,如果指定了,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自动执行request.getSession()操作获取session。

    总结:

    在程序开发过程中,我们可以在客户端每次与服务器交互时检查SessionID(Session中属性值,非HttpServlet环境开发中也可以用其它的Key值代替),用于会话管理。

    展开全文
  • Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。0.需求需要对所有的/web/**...

    在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。

    0.需求

    需要对所有的/web/**请求进行登录拦截,Session超时时跳转到登录页面。

    1.引入

    一般来说,在项目使用中都会配置Session超时时间,如果不配置,则默认值为30分钟,即用户不操作30分钟以后,Session就会失效,此时用户就需要重新登录系统。

    Session超时时间的配置主要的项目的web.xml中进行配置,如下:

    60

    COOKIE

    2.请求的分类

    现在的项目中请求主要分为两种:一种是普通请求,即发起请求返回视图和模型;另外一种是Ajax请求,主要返回模型数据。后端进行处理时就要根据不同的请求返回不同的内容。

    对于普通请求,我们直接返回JavaScript脚本,脚本内容可以是将页面跳转到登录页面。

    对于Ajax请求,则需要返回非200的状态码,这样ajax请求才会进入到error回调函数中以及全局的Ajax错误回调函数AjaxError中。

    3.后端处理Session超时

    后端采用SpringMVC的拦截器处理,这里为什么用拦截器呢?一方面,请求URL不能限制的太死,比如/*,这样对所有的请求都进行过滤是浪费资源的。另一方面,有些URL不需要进行拦截处理,比如到登录页面的请求肯定是不能拦截,要不然会循环重定向。再一方面,我们只需要拦截控制器请求,其它请求不拦截。

    下面看一下拦截器的实现:

    /**

    * Web端登录拦截器

    * 处理请求时Session失效的问题,包含Ajax请求和普通请求

    * @ClassName WebLoginInterceptor

    * @author zhangshun

    * @date 2016年10月20日 上午11:14:52

    */

    public class WebLoginInterceptor extends HandlerInterceptorAdapter{

    /**

    * 日志对象

    */

    private Logger logger = LoggerFactory.getLogger(WebLoginInterceptor.class);

    /**

    * 默认注销URL

    * 即Session超时后,发起请求到此地址,只对普通请求有效

    */

    private static final String DEFAULT_LOGOUT_URL = "/web/logout";

    /**

    * 注销URL

    */

    private String logoutUrl;

    @Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,

    Object handler) throws Exception {

    User user = SessionUtils.getUserFromRequestAcrossCas(request);

    String uri = request.getRequestURI();

    if(user == null){

    response.setContentType("text/html;charset=UTF-8");

    if(request.getHeader("x-requested-with") != null

    && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){

    // Ajax请求, 前段根据此header进行处理

    response.setHeader("sessionTimeout", "Session time out, you need relogin !");

    // 返回未认证的状态码(401)

    response.setStatus(HttpStatus.UNAUTHORIZED.value());

    logger.debug("请求路径:" + uri + ", 请求方式 :Ajax请求, Session超时, 需要重新登录!");

    }else{

    // 普通请求

    String path = request.getContextPath();

    StringBuffer basePath = new StringBuffer()

    .append(request.getScheme())

    .append("://")

    .append(request.getServerName())

    .append(":")

    .append(request.getServerPort())

    .append(path)

    .append("/");

    StringBuffer responseStr = new StringBuffer()

    .append("

    .append("window.location.href=\"")

    .append(basePath).append(getLogoutUrl()).append("\";")

    .append("");

    response.getWriter().write(responseStr.toString());

    logger.debug("请求路径:" + uri + ",请求方式 :普通请求, Session超时, 需要重新登录!");

    }

    return false;

    }

    return true;

    }

    public String getLogoutUrl() {

    // 使用默认值

    if(StringUtils.isEmpty(logoutUrl)){

    return DEFAULT_LOGOUT_URL;

    }

    return logoutUrl;

    }

    public void setLogoutUrl(String logoutUrl) {

    this

    }

    通过获取Session中的User对象是否存在来判断Session是否超时,如果Session超时,则根据不同的请求方式进行返回。如果是普通请求,则直接返回JavaScript脚本,该脚本可以将页面跳转到其它URL。如果是Ajax请求,则返回401状态码,并且在返回的header中加入sessionTimeout,该数据将会在前端使用。

    该拦截器在SpringMVC配置文件中的配置如下:

    4.前端处理Session超时

    对于普通请求,后端返回的是JavaScript脚本,会立刻执行,这里前端不需要任何处理。

    对于Ajax请求,后端返回401状态码,并在header中设置的sessionTimeout。这里使用jQuery的ajaxComplete回调函数处理,具体如下:

    // 实现ajax请求时判断Session是否失效

    $(document).ajaxComplete(function(event, response, settings) {

    var sessionTimeout = response.getResponseHeader("SessionTimeout");

    if(sessionTimeout != null && typeof sessionTimeout != "undefined" && sessionTimeout.length > 0){

    // 这里写Session超时后的处理方法

    }

    });

    好了,可以了,Session超时的用户都会得到处理。

    总结

    关于Javaweb项目session超时解决方案就到这里,希望对大家有所帮助。

    展开全文
  • Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。0.需求需要对所有的/web/**...
  • 一:前言:最近支付后台登录一段时间后如果没有任何操作,总是需要重新登录才可以继续访问页面,出现这个问题的原因就是session超时,debug代码后发现session的超时时间是1800s。也就是说当1800秒内没有任何操作,...
  • php使用session 超时设置的方法:1、设置【php.ini】配置文件,用【ini_set】函数改变当前上下文环境的属性值;2、设置Session时间戳,代码为【unset($_SESSION['expiretime'])】。php使用session 超时设置的方法:...
  • php设置session超时过期时间的方法是:可以通过ini_set()函数来实现。...要设置session超时过期时间,可以通过ini_set()函数来实现。(推荐教程:php教程)函数介绍:PHP ini_set用来设置php.ini的值,在函数执...
  • 在web容器中设置(以tomcat为例)在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置:30tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间这里要...
  • JSP Session超时设置的实现方法 在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)...
  • 针对spring boot 2.0 以下版本(亲测1.5.10)设置session超时的方法如下: 1.添加依赖,代码如下: <dependency> <groupId>org.springframework.session</groupId> <artifactId>...
  • Session超时设置

    千次阅读 2018-07-06 10:45:18
    Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。设置Session超时时间方式...
  • 主要介绍了Javaweb项目session超时解决方案,关于解决方案分类比较明确,内容详细,需要的朋友可以参考下。
  • session 超时设置

    2017-09-17 08:48:00
    Java Web开发Session超时设置 博客分类: Java Web 在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长...
  • 2.0版本以下设置session超时时间 1. springboot 2.0版本以下配置session超时 1.1application.properties配置文件:spring.session.store-type=none 1.2 引入 spring-boot...
  • [color=red][b][align=center][size=large]web.xml之session超时设置[/size][/align][/b][/color] [color=red][b]先说正题,web.xml之session超时设置 [/b][/color] [code="java"] 30 ...
  • session超时设置

    2017-05-29 19:51:42
    Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。   设置Session超时...
  • 设置Session超时

    2016-08-09 10:41:15
    Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。   设置Session...
  • 主要介绍了IIS 7.5中asp Session超时时间设置方法,需要的朋友可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,455
精华内容 1,782
关键字:

session超时