JavaWeb【五、内置对象】
简介
Web容器创建的一组对象,不用new即可使用。
共有9种,out、request、response、session、application,五种比较常用,page、pageContent、exception、config四种不太常用。
4种作用域范围
- page
变量当前页面有效,页面跳转了就无效了
除了request、session、application三种内置对象的作用域分别与自身名称相同,其他内置对象的作用域全部是page - request
变量在该次请求有效,即从page1跳转到page2,变量在page1、page2都有效 - session
变量在当前回话有效,即变量在浏览器启动期间都有效,当浏览器重启变量刷新 - application
变量在当前应用有效,即tomcat服务器不重启,变量都有效
out
缓冲区:临时保存数据的区域
out对象:JspWriter类的实例,向客户端输出内容常用的对象。
常用方法:
println() 打印字符串
clear() 清除缓冲区内容,flush调用后调用会抛异常
clearBuffer() 清除缓冲区内容,flush调用后调用不抛异常
flush() 将缓冲区的数据输出到客户端
getBufferSize() 返回缓冲区大小,若不设置返回0
getRemaining() 返回缓冲区还剩多少可用
isAutoFlush() 返回缓冲区满时,是否自动清空还是抛出异常
close() 关闭输出流
<%
out.println("鹅鹅鹅<br>");
out.println("曲项向天歌<br>");
out.flush();//清除后,剩余空间会增大
out.clear();//会异常,以下不输出
out.println("白毛浮绿水<br>");
out.println("红掌拨青波<br>");
%>
<br>
缓冲区大小:<%=out.getBufferSize()%><br>
缓冲区剩余容量:<%=out.getRemaining()%><br>
是否自动清空:<%=out.isAutoFlush() %><br>
request/response
表单提交方式:
get:url明文传输,2k量小,不安全,效率高
post:封装在header里,量大,相对安全,效率偏低
request 对象
客户端请求信息被封装在request对象中,通过它才能获取客户的请求,并做出响应,HttpServletRequest类下的实例。
request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
getParameter(String name) 获取参数,通过参数名
getParameterValues(String name) 获取参数数组,通过参数名
setAttribute(String,Object) 存储此请求中的属性
getAttribute(String name) 获取指定属性的属性值
getContentType() 获取MIME类型
getProtocol() 获取协议类型及版本号
getServerName() 获取服务器主机名
getServerPort() 获取服务器端口
getCharacterEncoding() 获取字符编码方式
setCharacterEncoding() 设置请求的编码方式
getContentLength() 获取请求体长度(字节)
getRemoteAddr() 获取客户端地址
getRealPath(String Path) 返回一个虚拟路径的真实路径
getContextPath() 获取上下文路径response对象
包含了相应客户端请求的相关信息,很少使用。是HttpServletResponse的实例。
页面作用域,即访问一个页面时该页面的response对象只对这次访问有效,其他页面的response对象对当前页面无效。
getCharacterEncoding() 获取响应的编码方式
setContentType(String type) 设置响应的MIME类型
PrintWriter getWriter() 返回一个对象,可以向客户端输出字符(与out对象有区别)
sendRedirect(String location) 重定向客户端请求
PrintWriter与out的区别:
PrintWriter对象打印输出总是提前于out对象,若想调整顺序,需要使用out.flush()
请求转发与请求重定向的区别:
request.getRequestDispatcher().forward(req.resp) 请求转发是服务端行为,原请求对象会发给新地址,URL不会改变。
response.sendRedirect() 请求重定向是客户端行为,本质是两次请求,URL会改变。
session
session的定义:表示客户端与服务器端的一次会话,即用户访问某个网站到关闭浏览器的这段时间
服务器端保存的session是对应于每一个用户的,即有n个用户在访问该网站,则该网站的服务器端就保存有n个session
session在第一个jsp页面被加载时创建,Session对象是HttpSession类的实例
getCreationTime() 获取创建时间
getId() 在session创建时jsp引擎为它设置的唯一id
setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话
getAttribute(String name) 通过名称获取当前会话下的对象,若无此名称对象则返回null
String[] getValueNames() 返回一个该会话中所有可用属性的数组
int getMaxInactiveInterval() 获取两次请求间隔多长时间此session被取消
session的声明周期:
创建-当客户端第一次访问某个jsp或servlet时创建,并创建一个id,每次客户请求都会携带此id,服务器端会进行校验。
活动-每次打开新页面属于同一次会话,除非页面全部关闭,重新访问时才会创建新的session,但原有的session仍会保留在服务器中。
销毁-三种方式,1、session.invalidate(),2、session过期,3、重启服务器
- 设置超时时间的两种方式
1、session.setMaxInactiveInterval()
2、web.xml
配置 10//单位是分钟
application
实现了用户间数据共享,可存放全局变量。
开始于服务器启动,终止于服务关闭。
是ServletContext类的实例。
setAttribute(String name,Object value) 存储对象到application
getAttribute(String name,Object value) 通过名称获取对象
getAttributeNames() 返回所有可用属性名枚举
getServerInfo() 返回JSP(Servlet)引擎名及版本号
其他内置对象
- page:
指当前页面本身,类似与this指针,是java.lang.Object类的实例 - pageContext:
提供了对JSP页面内所有对象及命名空间的访问,可以访问session及application的某一属性,是pageContext类的实例
常用方法:
forward("pagename") 页面跳转
include("pagename") 当前位置页面嵌套 - config:
config对象是在一个Servlet初始化时,JSP引擎向其传递信息用的,包含初始化必须的信息以及一些服务器的信息
常用方法:
ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象
String getInitParameter() 返回初始化参数的值
Enumeration getInitParameterNames() 获取初始化所有参数的枚举 - Exception:
当页面发生异常时,即产生该对象;若一个页面需要应用此对象,需要将isErrorPage设为true,否则无法编译;是java.lang.Throwable类的对象
常用方法:
String getMessage() 获取异常信息
void printStackTrace() 打印异常堆栈信息
Throwable FillInStackTrace() 重写异常堆栈信息
待续。。。
JavaWeb【五、内置对象】的更多相关文章
- JavaWeb——JSP内置对象application,JSP属性范围
application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...
- JavaWeb——JSP内置对象request,response,重定向与转发 学习总结
什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...
- JavaWeb#JSP内置对象
[1.JSP内置对象简介] 内置对象:不加声明就可以在JSP页面脚本中使用的成员变量.(使用这些对象可以更容易收集客户端发送的请求信息,响应客户端的请求及存储客户信息.) 主要介绍:out,reque ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改
一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用R ...
- JSP最常用的五种内置对象(out,request,response,session,application)
为了简化开发过程,JSP提供了一些内置对象,它们由容器实现和管理.开发者在JSP页面中无需声明,无需实例化就可使用.主要有out,request,response,session,applicatio ...
- java web学习总结(二十五) -------------------JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- 第五天:内置对象(7.Javascript内置对象)
1)中所术是内置对象,2)中为自定义对象 代码说明如下 2.1.1 定义并创建对象实例方式1,代码如下: <!DOCTYPE html><html lang="en&quo ...
- JavaWeb学习总结(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
随机推荐
- JAVA反射机制,总结下
1.总体概述 Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法:对于给定的一个对象,都能够调用它的任意一个属性和方法.这种动态获取类的内容以及动态调用对 ...
- 数据中心网络架构的问题与演进 — 云网融合与 SD-WAN
目录 文章目录 目录 前文列表 云网融合 云网融合的应用场景 SD-WAN SD-WAN 的应用场景 企业组网互联 SD-EN 数据中心互联 SD-DCI 云间互联 SD-CX 企业用户接入云 数据中 ...
- 操作 SQL语句之数据操作语言(DML)详解
一.插入数据(INSERT) MariaDB [(none)]> help insertName: 'INSERT'Description:Syntax:INSERT [LOW_PRIORITY ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-08 断路器监控仪表参数
笔记 8.断路器监控仪表参数讲解和模拟熔断 简介:讲解 断路器监控仪表盘参数和模拟熔断 1.sse server-send-event推送到前端 资料:https://github.com/ ...
- 使用Mock 测试 controller层
package action; import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import ...
- 树莓派-Ubuntu Mate开启ssh服务
1. 运行 apt search openssh-server 查看是否安装ssh服务. 2. 如已安装,运行 sudo dpkg-reconfigure openssh-server 重新配置shh ...
- React Native创建项目等待时间长解决
1. 初始化工程 在终端输入命令 :react-native init AwesomeProject 从命令上看,看起来是初始化一个工程,于是, 1分钟...... 10分钟...... 1小时... ...
- DevOps - 微服务与Serverless
微服务 简介 "微服务"强调的是服务的大小,它关注的是某一个点. "微服务架构"则是一种架构思想,需要从整体上对软件系统进行通盘的考虑. 通俗来说,微服务架构就 ...
- LeetCode.1170-比较字符串中最小字符的出现频率(Compare Strings by Frequency of the Smallest Char)
这是小川的第412次更新,第444篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第263题(顺位题号是1170).在一个非空字符串s上定义一个函数f(s),该函数计算s中最小字 ...
- 关于python脚本头部设置#!/usr/bin/python
今天又是贼几把菜的一天0.0 读别人程序的时候看到在python文件头部设置签名,感觉贼几把酷,自己也试着在文件前段设置了一下. 设置还是蛮简单的,设置过程如图所示. 设置后如图所示: 当然你也可能看 ...