九大内置对象

JSP 9大内置对象(自带的,不需要new也能使用)

1.out(输出对象 )

​ 向客户端输出内容

2.pageContext(jsp页面容器)

3.request(请求对象)

1.请求对象:

​ 存储“客户端向服务端发送的请求信息”

2.常见方法:

  • String getParameter(String name):根据请求的字段名(key),返回字段值(value)

  • String[] getParameterValues(String name):根据请求字段名(key),返回多个字段值(value)eg:checkbox(多选按钮)

  • void setCharacterEncoding(“编码格式utf-8”):设置请求编码(根据tomcat默认)

  • getRequestDisoacher(“b.jsp”).forward(request,response):请求转发的跳转页面 A->B

  • getServiceContex():获取项目的ServiceContext对象

    1. get提交方式:method=‘get’ 和 地址栏 ,超链接(< a href = “xx" >)请求方式,默认都属于get提交方式。

      地址栏:连接/文件?参数名1 = 参数值1 & 参数名2 = 参数值2 …

    2. get 和 post 请求方式的区别

      • get方式在地址栏显示请求信息(但是地址栏容纳的信息有限,一般为4-5kb;如果请求数据存在大文件,图片等,会出现施子岚无法容纳数据而报错),post不显示

      • 文件上传,必须是post

        ***注 ** :一般推荐使用post

4.response(响应对象)

1.提供方法:

  • void addCookie(Cookie cookie):向客户端增加cookie对象
  • void sendRedirect(String location) throws IOEcciption:页面跳转的一个方法(重定向)
  • void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)

2.重定向(respone.sendRedirect(String location))和请求转发(request.getRequestDisoacher(“String loction”))的区别:

  • 地址栏是否改变:请求转发不改变,重定向改变
  • 是否保留第一次请求时的数据:请求转发保留,重定向不保留
  • 请求次数:请求转发1次,重定向2次

3.形象化描述:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nk8Q19Bd-1614950900663)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20201226213452332.png)]

5.session(服务端)

1.Cookie(客户端,不是内置对象)

  1. Cookie是由服务端生成,在发给客户端保存,相当与缓存的作用:

  2. 作用;提高访问服务端的效率,但是安全性较差

  3. Cookie:key(name) = value

  4. 由javax.servlet.http.Cookie提供

    public Cookie (String key,String value)
    String getName():获取name
    String getValue():获取value
    void setMaxAge(int expiry):最大有效期(秒)
    

    服务端准备Cookie(增加Cookie):response.addCookie(Cookie cookie)

    页面跳转(转发,重定向)

    客户端获取cookie:request.getCookies();(必须获取全部的Cookie)

    • 注:
      1. 服务端增加cookie:response对象;客户端获取对象:request对象
      2. 不能直接获取某一个单独对象,只能一次性将全部的cookie全部拿到
      3. cookie中只保存英文,数字,否则将进行编码解码的处理

2.session 运行机制

  1. 客户端第一次请求服务端时,(JSESSIONID和sessionId匹配)服务端会产生一个session对象(用于保护该客户的信息)并且每个session对象都会有一个sessionID(用于区分其他的session)

    服务器会产生一个cookic,并且该Cookie的name = JSESSIONID,value = 服务端sessionID的值,然后服务端会在响应客户端的同时,将cookie发送给客户端,至此客户端就有了一个cookie(JSESSIONISD),因此客户端的cookie就可以和服务端的session一一对应(JSESSION-sessionID)

  2. 客户端第N次请求服务端时:服务端先用客户端的cookie中的JSSESSION,去服务端的session中匹配sessionId,如果匹配成功(cookie JESSIONID和session sessionID),说明此用户不是第一次访问,无需登录;

3.session

  1. session存储在服务端
  2. session是在同一个用户(客户)请求时共享
  3. 实现机制:第一次客户请求时产生一个sessionID并复制给cookie的就JsessionID然后发给客户端。最终通过session的sessionID和cookie的JsessionID对应实现

4.session方法

  1. String getID();获取sessionID
  2. boolean isNew();判断是否是新用户(第一次访问)
  3. void invalidate();使session失(推出登录,注销)
  4. void setAttribute();
  5. Object getAttribute();
  6. void setMaxInactiveInterval(秒);设置最大有效非活动时间
  7. int getMaxInactiveInterval();获取最大有效非活动时间

5.cookie和session的区别

  • 保存位置:session在服务端,cookie在客户端
  • 安全性:服务器比较安全,客户端比较不安全
  • 保存类型:session为Object,cookie为String

6.cookie

  • 不是内置对象,要使用必须new
  • 但是,服务器会自动生成与一个(服务端自动new一个cookie)name = JSSIONISD的cookie并返回给客户端

6.application(全局对象)

1.常用方法

  • String getContextPath(); 虚拟路径
  • String getRealpath(); 绝对路径(相对于虚拟路径的绝对路径)

7.config(配置对象)(服务器配置信息)

8.page(当前jsp页面对象,相当于java 中的this)

9.exception(异常对象)

10.四种范围对象(小-----大)

  1. ​ pageContext JSP页面容器 当前页面有效
  2. ​ request 请求对象 同一次请求有效
  3. ​ session 会话对象 同一次会话有效
  4. ​ appliation 全局对象 全局有效(整个项目有效)

以上对象共有的方法:

  • Object getAttribute(String name): 根据属性名,或者属性值

  • void setAttribute(String name,Object obj); 设置属性值(新增,修改)

    ​ setAttribute(“a”,“b”);//如果a对象之前不存在.则新建一个a对象,并把值给b;

    ​ //如果a之前存在,则将a的值改为b;

  • void remoesetAttribute(String name); 根据属性名,删除对象

1.pageContext JSP页面容器 当前页面有效 ( 页面跳转后失效 )

2.request 请求对象 同一次请求有效

3.session 会话对象 同一次会话有效

4.appliation 全局对象 全局有效(整个项目有效)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值