JSP 有哪些内置对象?作用分别是什么?
JSP 有 9 大内置对象:
- request:封装客户端的请求,其中包含来自 get 或 post 请求的参数;
- response:封装服务器对客户端的响应;
- pageContext:通过该对象可以获取其他对象;
- session:封装用户会话的对象;
- application:封装服务器运行环境的对象;
- out:输出服务器响应的输出流对象;
- config:Web 应用的配置对象;
- page:JSP 页面本身(相当于 Java 程序中的 this);
- exception:封装页面抛出异常的对象。
说一下 JSP 的 4 种作用域?
- page:代表与一个页面相关的对象和属性。
- request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以置于此作用域。
- session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
- application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。
b:四种对象的范围
pageContext、cookie、session、appliation的范围对象从小到大的增长。
1、pageContext:仅仅在当前的页面有效
2、cookie:仅仅是对于一次请求有效
也就是说,请求转发有效,重定向无效
这里我们可以从请求转发和重新的原理上理解一番
请求转发:客户端向服务端发送一个请求,这个页面请求转发,就在服务端内部自动转发出去了。不用我们的服务端再一次发送请求。
重定向:客户端向服务端发送请求,需要再一次打开页面的时候。就需要我们的服务端再一次发送请求,寻找这个新的页面。
另类理解:我们去银行办理业务,假如取款窗口和存款窗口分开的。而我们的业务是需要先取款在存款。第一次你先去的是 取款窗口,如果银行人员内部就立马把你的业务转向了存款窗口,这就叫做请求转发。一次排队,两个业务都完成了。但是如果你先去了取款窗口,发现还需要去存款窗口办理业务。这急速需要两次排队,两次办理业务,这就叫做重定向。
3、session:仅仅对于一次会话有效
也就是说,请求转发,重定向均有效。
同一个浏览器打开多个页面是有效的,打开其他页面就无效
4、appliation:对于一个项目内部均有效,这就是相当于一个全局变量。