JavaWeb学习笔记2

JavaWeb学习笔记2

转发与重定向

转发

  • RequestDispatcher对象
  • forward()方法

语法

request.getRequestDispatcher("url").forward(request.response);
<jsp:forward page="url"/>

重定向

  • 将用户请求重新定位到一个新的URL

语法

response.sendRedirect(''url'');

转发的工作方式
[外链图片转存失败(img-rlweXykT-1567697606511)(en-resource://database/488:0)]

重定向的工作方式
[外链图片转存失败(img-ApYx4gZk-1567697606515)(en-resource://database/490:0)]

转发与重定向的区别

比较项转发重定向
URL变化
重新发出请求不会
目标URL要求
目标URL要求仅本Web应用任意URL

注意: 重定向是客户端行为,转发是服务器行为

session的原理与使用

session可以在多次请求中保存和使用数据

语法

session.setAttribute("userName","张三丰");
String userName=(String)session.getAttribute("userName");

session的工作方式

每个session都有一个唯一的sessionid

  • session.getId();
  • public String getId();

[外链图片转存失败(img-G5HndKTI-1567697606516)(en-resource://database/492:0)]

会话的清除和过期

  • session的数据是在服务端的,服务器保存的会话数据量会原来越大,从而导致性能问题。
  • 若没有清理机制,会导致性能问题或服务器崩溃
    • 程序主动清除session数据
    • 服务器主动清除长时间没有再次发出请求的session

程序主动清除session数据

  • 设置会话失效:session.invalidate();
  • 移除会话的一个属性
session.removeAttribute("userName");

服务器主动清除长时间[默认30分钟]没有再次发出请求的session

  • 设置会话过期时间
    • 方法一
    //单位:秒
    public void setMaxInactiveInterval(int interval);
    
    • 方法二
    <session-config>
       <!--单位:分钟-->
        <session-timeout>30</session-timeout>
    </session-config>
    

小结

  1. 用浏览器访问服务器–产生会话
  2. 通过浏览器在网站东路–在会话中保存数据
  3. 登陆成功后用个人身份进行访问–会话有效期内
  4. 关闭了浏览器–结束会话
  5. 服务器主动结束会话–会话到期
  6. 使会话失效、删除属性–及时释放会话资源
  7. 程序主动结束会话、会话到期–会话中的数据丢失

cookie

cookie以文件方式保存数据

  • 添加数据
    public void addCookie(Cookie cookie);
    
  • 获取数据
    public Cookie[] getCookies();
    
  • 设置有效期
    public void setMaxAge(int expiry);
    
  • 用户可以禁用cookie
  • cookie保存在客户端

application

主要方法

public void setAttribute(String name,Object object);
public Object getAttribute(String name);

三个对象对比

request、session、application

  • 相同点
    • 都可以存储属性
  • 不同点
    • request中存储的数据仅在一个请求中可用
      [外链图片转存失败(img-8NzeL2AF-1567697606517)(en-resource://database/496:0)]

    • session中存储的数据在一个会话的有效期内可用
      [外链图片转存失败(img-qvUBYetn-1567697606517)(en-resource://database/498:0)]

    • application中存储的数据在整个Web项目中可用
      [外链图片转存失败(img-wRt1rQb1-1567697606518)(en-resource://database/500:0)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值