简介

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. selenium webdriver常用函数

    from selenium import webdriver driver = webdriver.Ie(executable_path = "e:\\IEDriverServer" ...

  2. Selenium 2自动化测试实战40(单线程)

    单线程 #onethread.py #coding:utf-8 from time import sleep,ctime #听音乐任务 def music(): print('i was listen ...

  3. 1.ini读写操作

    一.使用 TIniFile implementationvar  ini:tinifile;  path:string;       {ini文件路径}  section,key:string;{表示 ...

  4. composer install与composer update的区别

    1.composer install install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下. php composer.phar i ...

  5. Springboot入门5-项目打包部署(转载)

    前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包.首先 ...

  6. Django前期知识准备

    一. WEB应用 WEB应用程序是一种可以通过WEB访问的应用程序, 程序的最大好处是用户很容易访问应用程序, 用户只需要有浏览器即可, 不需要再安装其他软件. 应用程序有两种模式: C/S, B/S ...

  7. QT下过多点的曲线绘制

    绘制过多点的曲线意义重大.但通过试验,QT的PainterPath不是很如意.当多段曲线围成一个区域时,PainterPath内并不包含该区域的所有面积,只包含曲线和其弦构成的面积. 为了解决这一问题 ...

  8. Windows Server 2019 SSH Server

    Windows Server 2019 SSH Server   在需要安裝的ws2019开启powershell,执行安装 openssh server 指令 Add-WindowsCapabili ...

  9. iterm 2快捷键

    快捷键 作用说明 command + f 搜索&查找,如果输入搜索内容后,按下 tab 键,就会 iTerm 自动帮选中搜索关键词,并且自动的帮我们复制到了剪贴板中.如果输入的是 shift+ ...

  10. day20 logging模块、re模块

    今日内容: 1.logging模块 2.re模块 1.logging模块 -- 什么是logging模块 -- logging模块是用来进行记录日志的模块,主要作用是将想要输出的日志进行分级,然后以不 ...