JSP入门_TWO

主要介绍9大内置对象。

浏览器通常负责完成三件事:
(1)向远程服务器发送请求。
(2)读取远程服务器返回的字符串数据。
(3)负责根据字符串数据渲染出一个丰富多彩的页面。

Web服务器则负责接收客户端请求,每当接收到客户端连接请求之后,Web服务器应该使用单独的线程为该客户端提供服务:接收请求数据、送回响应数据。
这里写图片描述

这种架构叫:“请求/响应”架构。
Web服务器大致需要完成如下几个步骤:
①启动单线程
②使用I/O流读取用户请求的二进制流数据
③从请求数据中解析参数
④处理用户请求
⑤生成响应数据
⑥使用I/O流向客户端发送请求数据

Web应用里的JSP页面,Servlet等程序都将由Web服务器来调用,JSP、Servlet之间通常不会相互调用,这就产生了一个问题:JSP、Servlet之间如何交换数据。

为了解决这个问题,提出了4个Map结构,这四个区别主要是范围不同:
①application 对于整个Web应用有效,即JSP、Servlet数据可以被同一应用下的其他JSP、Servlet访问。
②session 仅对于一次会话有效,即JSP、Servlet数据可以被本次会话的其他所有JSP、Servlet访问。
③request 仅对本次请求有效,即JSP、Servlet数据可以被该次请求的其他的JSP、Servlet访问。
④page 仅堵当前页面有效,即JSP、Servlet数据可以被当前页面的JSP脚本、声明部分访问。

详解九大内置对象::

一、application

application对象代表Web应用本身,通常有如下两个作用:
(1)在整个web应用的多个JSP、Servlet之间共享数据。
(2)访问Web应用的配置参数。

二、config

config代表当前JSP配置信息,但JSP页面通常无需配置,因此也就不存在配置信息,所以JSP页面比较少用该对象。但在Servlet中则用处比较大,因为Servlet需要在web.xml文件中进行配置,可以指定配置参数。

三、exception

exception对象是Throwable的实例,代表JSP脚本中产生的错误和异常,是JSP页面异常机制的一部分。
在JSP脚本中无须处理异常,即使异常是checked异常。事实上,JSP脚本包含的所有可能出现的异常都可以交给错误处理页面处理。这里写图片描述

在JSP页面中,普通的JSP脚本只执行第一部分——代码处理段,而异常处理页面负责第二部分——异常处理段。在异常处理段中,可以看到有个异常对象,该对象就是内置对象exception。

_jspx_page_context对异常处理也非常简单:如果该页面的page指令指定了errorPage属性,则将请求forward到errorPage属性指定的页面,否则使用系统页面来输出异常信息。

四、out

out对象代表一个页面输出流,通常用于在页面上输出变量值和常量。

五、pageContext

pageContext代表页面上下文,该对象主要用于范文JSP之间的共享数据。使用pageContext可以访问page、request、session、application范围的变量。

六、requset

request对象时JSP中重要的对象,每个requset对象封装着一次用户请求,并且所有的请求参数都封装在request对象中,因此request对象是获取请求参数的重要途径。
关于表单域和请求参数的关系遵循如下4点:
①每个有name属性的表单域对应一个请求参数。
②如果有多个表单域有相同的name属性,则多个表单域只生成一个请求参数,只是该参数有多个值。
③表单域的name属性指定请求参数名,value指定请求参数值。
④如果某个表单域设置了disabled=“disabled”属性,则该表单域不在生成请求参数。
request用处:
①获取请求头/请求参数
②操作request范围的属性
③执行forward或include

七、response

response代表服务器对客户端的响应。大部分时候,程序无需使用response来响应客户端请求,因为有个更简单的响应对象——out,它代表页面输出流,直接使用out生成响应更简洁。但out是JspWriter的实例,JspWriter是Writer的子类,Writer是字符流,无法输出非字符流内容。
response用处:
①response响应生成非字符流响应
②重定向
重定向与forward不同的是:重定向会丢失所有的请求参数和request范围的属性,因为 重定向将生成第二次请求,与第一次请求不在同一个request范围内,所以发送一次请求参数和request范围的属性全部丢失。
③增加Cookie
Cookie通常用于网站记录客户的某些信息,比如客户的用户名及客户的喜好等。一但用户下次登录,网站可以获取客户的相关信息,根据这些信息,网站可以对客户提供更友好的服务。Cookie与session的不同之处在于:session会随着浏览器的关闭而关闭,但Cookie会一直存放在客户端机器上,除非超出Cookie的生命周期。
增加Cookie请按如下步骤:
①创建Cookie实例,Cookie的构造器为Cookie(String name ,String value)
②设置Cookie的生命期限,即该Cookie在多长时间内有效
③向客户端写Cookie

八、session

session对象是一个非常常用的对象,这个对象代表一次用户会话。一次用户会话的含义是:客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次会话。
session通常用于跟踪用户的会话消息,如判断用户是否登录系统,或者在购物车应用中,跟踪用户购买的商品等。
session范围的属性可以在多个页面的跳转之间共享。一旦关闭浏览器,即session结束,session范围的属性将全部丢失。
session的属性值可以是任何可序列化的Java对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值