简介

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【五、内置对象】的更多相关文章

  1. JavaWeb——JSP内置对象application,JSP属性范围

    application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...

  2. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  3. JavaWeb#JSP内置对象

    [1.JSP内置对象简介] 内置对象:不加声明就可以在JSP页面脚本中使用的成员变量.(使用这些对象可以更容易收集客户端发送的请求信息,响应客户端的请求及存储客户信息.) 主要介绍:out,reque ...

  4. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改

    一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用R ...

  6. JSP最常用的五种内置对象(out,request,response,session,application)

    为了简化开发过程,JSP提供了一些内置对象,它们由容器实现和管理.开发者在JSP页面中无需声明,无需实例化就可使用.主要有out,request,response,session,applicatio ...

  7. java web学习总结(二十五) -------------------JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  8. 第五天:内置对象(7.Javascript内置对象)

    1)中所术是内置对象,2)中为自定义对象 代码说明如下 2.1.1 定义并创建对象实例方式1,代码如下: <!DOCTYPE html><html lang="en&quo ...

  9. JavaWeb学习总结(十七)——JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

随机推荐

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock

    笔记 6.微信扫码登录回调本地域名映射工具Ngrock         简介:讲解微信扫码回调本地域名ngrock讲解 1.为什么要用这个,微信扫码需要配置回调,需要配置对应的域名          ...

  2. Scala面向对象01

  3. Expecting "jsp:param" standard action with "name" and "value" attributes

    浏览器访问报如下jsp标签错误: 根据提示,定位到jsp页面124行,代码如下: 查找原因,当<jsp:include></jsp:include>标签中没有参数时,不允许有空 ...

  4. VS2012编译php扩展

    注意:用VS2015来做会比较好! 开发前准备工作:cygwinvisual studio 2012php编译后的程序      使用的是 xampp集成安装包,所以编译后的程序路径为D:\xampp ...

  5. 【JVM学习笔记】字节码文件结构实例

    上一篇笔记的内容大部分没有实际动手操作,因此决定完成这个完整的练习并记录下来. 另注,idea环境下有jclasslib插件用于更好的查看类似于javap结果的内容. 源代码如下: package c ...

  6. pageoffice实现网页打开编辑保存word文档(基于SSM框架)

    pageoffice是一款网页集成word.excel...等office工具 并不免费,但可以试用练习 SSM框架搭建过程就省略了 注意:由于谷歌/火狐升级,不支持插件嵌入,建议使用POBrowse ...

  7. RocketMQ之九:RocketMQ消息发送流程解读

    在讨论这个问题之前,我们先看一下Client的整体架构. Producer与Consumer类体系 从下图可以看出以下几点:(1)Producer与Consumer的共同逻辑,封装在MQClientI ...

  8. antd <BackTop>组件的使用

    <Content className={style.content} style={{ maxHeight: 'calc(100vh - 175px)',overflowY:"auto ...

  9. springboot整合elasticSearch客户端

    一 ES客户端 ES提供多种不同的客户端: 1.TransportClient ES提供的传统客户端,官方计划8.0版本删除此客户端. 2.RestClient RestClient是官方推荐使用的, ...

  10. SpringMvc框架 解决在RESTFUL接口后加任意 “.xxx” 绕过权限的问题

    问题描述: 框架使用的是SpringMVC.SpringSecurity,在做权限拦截的时候发现一个问题,假设对请求路径/user/detail进行了权限拦截,在访问/user/detail.abc的 ...