Jsp 内置对象


对与这些对象不要定义,直接使用就可以了
Jsp一共定义了九个这样的对象:request,response,session,application,out,pageConctext,config,page和exception

接下来就来解释一下这些常用的内置对象

一 Request:
  1 访问请求参数:加个问号? eg: <a href="index.jsp?id=1></a>
    获得访问参数: request.getParameter("id") 【其中参数不存在,返回null; 未指定参数值,返回字符串“”】

  2 在作用域中管理属性
    设置值 request.setAttribute(String name,Object object);
    name:变量名(转发后就是通过这个值来获取数据) object:这个指定的值
    获取值: request.getAttribute("name");

  3 获取cookie
    cookie: 指代小段文本信息,在网络服务器上生成,并发送给浏览器
    获取其中的集合:getCookie
    获取名字: getName();
    获取值: getValue()
    将一个cookie发送给客户端: 使用response对象的addCookie()

  重点:
  在想cookie保存信息是,其中包括中文,则需转码 java.net.URLEncoder类的encoder()方法
  eg; String user=URLEncoder.encoder(request.getParameter("user",utf-8);
  如果要读取则需要解码,调用java.net.URLDecoder类的decode()方法
  eg: user=URLDecoder.decode("");

  4 获取客户端的信息
    getHeader(String name) 获取头信息
    getMethod() 获取提交的方法 例如 post get head

  5 显示国际化信息
    这里的信息属于 java.util,Local
  eg:
    

<% 
      java.util.Locale local=request.getLocal();
      String str="";
      if(locale.equals(java.util.locale.US)){
        str="Hello"
      }
      if(locale.equals(java.util.locale.CHINA)){
        str="你好"
      }
    %>

 



二 response
  1 重定向网页
    这里就以此来说明一下重定向和内部转发的一些区别
    1、内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象, 也可以获取到请求中的属性和参数。而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服 务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。
    2、内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。
    3、内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。
    4、内部跳转实现的方法:

      request.getRequestDispatcher("XXX.jsp或者servlet").forward(request,?response),
      request.getRequestDispatcher("XXX.jsp或者servlet").forward(request,?response),

    而外部跳转实现的方法:

      response.sendRedirect("XXX.jsp或者servlet")。

  2 处理Http文件头
    对于我们一般浏览网页的时候,浏览器会先判断这个网页之前是否有缓存,有就直接调用,这样就能提升速度。
    但是对于安全性高的一些网页则需设置禁用缓存
    (1) 设置禁用缓存:response.setHeader("Cache-control","no-store") response.setDateHeader("Expires",0);
    (2) 设置自动刷新 response.setHearder("refresh","10");
    (3) 设置定时跳转 resposne.setHeader("refresh","5;URL=login.jsp");
    (4) 设置缓冲区:response.setBufferSize(32); //缓冲大小为32KB

三 Session
  由于Http协议是无状态的,所以通过Session可以记录这一过程的内容
    1 创建及获取客户的会话
      创建:session.setAttribute(String name,Object obj);
      获取:session.getAttribute(String name);
    2 移除会话绑定的对象
      移除:session.removeAttribute(String name);
      销毁:session.invalidate();

    3 会话的超时管理
      因为系统设置每次时长是有限制的,一般为20-30min
      setMaxInactiveInterval()//设置session的有效时长,以秒为单位

四 Application:
  这个内置对象相比于其他的内置对象要长
  在各对象的配置可以在 web.xml里的<context-param>来配置
  常用方法说明
  getInitParameter(String name) : 返回已命名的参数值 //例如可以获取里面的url
  getAttributeNames() : 返回已定义的应用程序初始化参数名的枚举

    当然还有其他的内置对象就不详解了
  例如 Out 中的out.clearBuffer() 清理缓存
  还有 config 可以通过 pageContext对象的getServletConfig来获取


page 是指生命周期在当前页面范围内。 request 是指生命周期在一次请求范围内,如GET和POST【其中response也差不多】。 session 是指生命周期在一个会话范围内。 application 是指生命周期在整个WEB应用程序从启动到关闭的范围内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值