jsp

response 代表 服务器 对 客户端的响应。

一、 response 可 响应 生成 非字符响应,如:图片、pdf 文件、excel文件等;

二、 response 重定向

      response 重定向会丢失所有的请求参数 和 request 范围的 属性,因为 重定向将生成第二次请求,与前一次请求不在同一个request范围内,所以发送一次请求的请求参数和request范围的属性全部丢失。

      另外,进行重定向操作时,地址栏中的Url 将发生变化,变成新地址;

      转发(forward) 与 重定向(redirect) 的 比较

      1、执行forward后依然是上一次请求,而执行redirect后生成第二次请求;

      2、forward 的目标页面可以访问原请求的请求参数,以为依然是同一次请求,所有原请求的请求参数、request范围的属性全部存在;redirect的目标页面不能访问原请求的请求参数,因为是第二次请求了,所有原请求的请求参数、request范围的属性将全部丢失;

      3、执行forward后,地址栏里的请求url不会改变;而执行redirect后,则地址栏改为重定向的目标url,相当于在浏览器地址栏里输入新的url后按回车键;    

三、增加 Cookie         

      Cookie 通常用于网站记录客户的某些信息,比如客户的用户名等。一旦用户下次登录,网站可以获取客户的相关信息,根据这些客户信息,网站可以对客户提供更好的服务。Cookie与session不同之处在于:Session会随着浏览器的关闭而失效,但Cookie会一直存放在客户端机器上,除非超出了Cookie的生命期限。 

      创建设置Cookie:(使用Cookie对象必须为其设置生存期限,否则Cookie将会随浏览器的关闭而自动消失。)

   

     遍历获取Cookie 值:

   

    Cookie 值为中文的处理方式:

    Cookie c = new Cookie("cnName",URLEncoder.encode("孙悟空", "gbk"));  // 编码

    out.println("cookie值:" + URLDecoder.decode(c.getValue()));  // 解码

四、Session 对象

      session 对象 也是非常常用的对象,这个对象代表一次用户会话。一次用户会话的含义是:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次会话。

     session通常用于跟踪用户的会话信息,如 判断用户是否登录系统,或者在购物车应用中,用户跟踪用户购买的商品等。

     session 范围内的属性可以在多个页面的跳转之间共享。一旦关闭浏览器,即session结束,session范围内的属性将全部丢失。

     eg: 购物小案例

     session1.jsp 购买页面

    

     session2.jsp 业务处理页面

    

    session3.jsp  购买物品显示页面

   

    注意:考虑到session 本身的目的,通常只应该把与用户会话状态相关的信息放入到session 范围内。不要仅仅为了2个页面之间交换信息,就将该信息放入到session范围内。如果仅仅为了2个页面交换信息,可以将该信息放入到request范围内,然后forward请求即可。

     

原文地址:https://www.cnblogs.com/pan1308/p/4369481.html