• Request和Session的生命周期


    request的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制(一般是20分种)后,session注销而失效 或是人为使用session.invalidate();使用session失效; 或是关闭浏览器后,session还存在,但是这里已经无法获取session了,过一会它还是失效。

    request和session的优点和缺点很明显 request占用资源比较少 安全性也比较高 可是相对来说 缺乏持续性 而session则相对来说 对资源的消耗会大点 安全性相对来说也会稍微低点 可是它能实现比如会话跟踪技术 个有优点和缺点 不过 个人觉得 如果可以使用request的情况下 尽量使用request 因为相对于服务器来说 资源的消耗这个问题还是比较重要的。



    当从一个jsp发出一个request,即表明了这个request生命周期的开始,当到达action之后一般有两种处理request的方式,一种为request.getDispatcher.forward,一种是response.sendRedirect.
    对于request的forward,该request的生命周期将会继续延续下去,当采用forward如果到达JSP页面,那么之前从第一个JSP页面中发送出来的request的消息将仍然存在,新的页面同样能够取得该request里所包含的一些信息,比如之前的JSP发送request中所包含的参数信息.事实上,它们是同一个request.

    而如果是使用response.sendRedirect那么该request的生命周期将结束.

         对于request,对request信息的传递,只有setAttribute()这一个方法,该方法将设置一个Object对象到request中.
    但是,如果当一个request是从jsp从发出,包含的信息段为param1=test这样的方式,那么只能通过getParameter()得到,getAttribute()是得不到param1的value的.
         再次,对于JSP的EL表达式,${}这中方式只能得到setAttribute中的值,因此当从一个JSP发送request到达action并且被forward到新的JSP中时,如果想在该JSP中取得JSP发送时的参数信息需要写为这种形式:${param.patam1}.

    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    如何定义开发完成?(Definition of Done)
    Git协同工作流介绍
    Git常用命令拾遗
    搭建基于Docker社区版的Kubernetes本地集群
    Mqtt学习指南
    JavaWeb 学习总结
    异常:org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    MySQL 插入中文错误:java.sql.SQLException: Incorrect string value:
    Servlet 中文乱码问题解析及详细解决方法
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834871.html
Copyright © 2020-2023  润新知