Jsp的九个内置对象
个人博客地址:https://www.vastyun.com
一、什么是内置对象?
在jsp开发中,会频繁使用到一些对象。例如HttSession,ServletContext,HttpServletRequest。如果我们每次要使用这些对象都去创建这些对象,就会显得非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,从而开发者只需要直接使用这些对象调用方法即可。这些创建好的对象就叫内置对象。
例如:
session.getId();
不需要再写HttpSession session;
二、九大内置对象简介
| 内置对象名 | 类型 |
| request | HttpServletRequest |
| response | HttpServletResponse |
| session | HttpSession |
| application | ServletContext |
| config | ServletConfig |
| out | JspWriter |
| page | Object(this) |
| exception | Throwable |
| pageContext | PageContext |
1.request对象
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息。
request常用的方法:
getParameter(String arg0);//获取对象提交的表单信息。
getProtocol();//获取客户端使用的协议。
getServletPath();//获取客户提交信息的页面。
getMethod();获取客户提交信息的方法。
getHeader(Enumeration args);获取Http头文件。
getRemoteHost();//获取客户机名称。
getServerName();//获取服务器名称。
getServerPort();//获取服务端口号。
//获取客户端提交的所有表单信息所有信息,并输出
Enumeration enums = request.getParameterNames();
while(enums.hasMoreElements()){
String s=(String)enums.nextElement();
String paramValue = getParameter(s);
out.write(s+"=" + paramValue);
}
2.response对象
对客户的请求作出动态的响应,向客户端发送请求。这个对象中封装了向客户端发送的数据、发送的响应头、响应状态码。
response常用方法:
//通过设置响应头控制浏览器以UTF-8的编码显示数据。
response.setHeader("text/html;charset=utf-8");
//设置页面自动刷新时间,设置每隔3秒刷新一次
response.setHeader("refresh","3");
//设置重定向
response.sendRedirect("http://baidu.com");
3.session对象
用于保存会话数据.
session常用方法:
getId();//获取session的Id值,根据浏览器的请求。
isNew();//判断是否是新的session
invalidate();//让session失效
setMaxInactiveInterval(int interval);//设置会话的最大持续时间,单位是秒,负数表明会话永不失效。
getMaxInActiveInterval();//获取会话的最大持续时间。
4.application对象
用于保存所有应用系统中的公有数据,服务器启动并且自动创建application对象以后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。
5.config对象
用于获取服务器初始化参数。
config常用的方法:
getInitParameter(String name);//获取默认的参数值
getInitParameterNames()//返回枚举类型,获取参数名
6.out对象
JspWiter类实例,用于向客户端发送文本数据,相当于带缓存的PrintWriter。
writer();//将内容写到缓冲区,不是输出到页面。向外写出的条件:缓存区满了;刷新缓存区;关闭缓冲区;执行完jsp页面。默认的缓冲区大小为8kb。
getBufferSize();//获取缓冲区大小
getRemaining();//缓冲区剩余大小
clear();//清除缓冲区的当前内容
flush();//刷新缓冲区,可以将缓冲区的内容展示到jsp页面。
close();//关闭缓冲区
7.page对象
表示当前一个jsp页面,可以理解为一个对象的本身,拜一个jsp当做对象来看待。page对象在开发中几乎不用。
8.exception对象
用于抛出异常,主要用于抛出异常的简短信息,如果一个jsp页面要应用此对象,就必须把isErrorPage设置为true,默认情况下是false。
exception常用方法:
getMessage();//返回描述异常的消息
toString();//返回关于异常的简短描述消息
9.pageContext对象
pageContext对象时jsp技术中重要的一个对象。这个对象不仅封装了对其他8大隐式对象的引用,它自身还是一个域对象。可以用来保存数据。并且这个对象还封装了web开发中经常设计到的一些操作,例如引入和跳转到其他资源,检索其他域对象中的属性等。
通过pageContext获取其他对象
getException方法返回exception隐式对象
getPage方法返回page隐式对象
getRequest方法返回request隐式对象
getResponse方法返回response隐式对象
getServletConfig方法返回config隐式对象
getServletContext方法返回application隐式对象
getSession方法返回session隐式对象
getOut方法返回out隐式对象
三、编码举例page.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
isErrorPage="true"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//-----------------------request对象应用------------------------
//获取对象提交的表单请求
String id = request.getParameter("id");//在地址栏url后面带上参数id=s145
//获取客户端使用的协议
String portValue = request.getProtocol();
//获取客户提交信息的页面
String pagePath = request.getServletPath();
//获取客户提交信息的方法
String methodValue = request.getMethod();
//获取http头信息
String header = request.getHeader("accept");
//获取客户机名称
String remoteValue = request.getRemoteHost();
//获取服务器名称
String serverName = request.getServerName();
//获取表单提交的所有信息,并输出
Enumeration enums = request.getParameterNames();
while (enums.hasMoreElements()){
//获取参数名
String s = (String)enums.nextElement();
//获取参数值
String paramValue = request.getParameter(s);
//输出参数名和值
out.write(s + " = " + paramValue+"<br />");
}
//--------------------------response对象应用--------------------
//设置自动刷新时间
response.setHeader("refresh", "3");
//获取响应头信息
String responseHeader = response.getHeader("refresh");
//设置重定向
//response.sendRedirect("http://vastsum.com");
//--------------------------session应用------------------------
//获取sessionId
String sid = session.getId();
//判断是否为新session
session.isNew();
//让session失效
//session.invalidate();
//设置会话的最大持续时间,单位为秒
session.setMaxInactiveInterval(60);
//获取会话的最大持续时间
int nums = session.getMaxInactiveInterval();
//---------------------------out应用---------------------------
//将内容写出缓冲区
out.write(id+"<br />");
out.write(portValue+"<br />");
out.write(pagePath+"<br />");
out.write(methodValue+"<br />");
out.write(header+"<br />");
out.write(remoteValue+"<br />");
out.write(serverName+"<br />");
out.write(responseHeader+"<br />");
out.write(sid+"<br />");
out.write(nums+"<br />");
//获取缓冲区大小
out.getBufferSize();
//获取缓冲区剩余大小
out.getRemaining();
//刷新缓冲区
out.flush();
//-------------------------exception应用-------------------------
//exception.getMessage();
%> </body>
</html>
Jsp的九个内置对象的更多相关文章
- Java Web学习总结(16)——JSP的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- java web学习总结(二十五) -------------------JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb---总结(十七)JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb学习总结(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- javaWeb学习总结(8)- JSP中的九个内置对象(4)
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb学习 (十六)————JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JSP学习(三)JSP中的九个内置对象
JSP中的九个内置对象 NO. 内置对象 类型 1 pageContext javax.servlet.jsp.PageContext 2 request javax.servlet.http.Htt ...
- JSP学习 三大指令、九个内置对象、JavaBean、EL表达式
1.page-->最复杂:<%@page language="java" info="xxx"...%> * pageEncoding和con ...
随机推荐
- Unit Of Work的设计
在DDD开发过程中,一个良好的Uow设计必不可少,我心目中的Uow设计应该具备以下几点: 1.有着良好的抽象,有着恰如其分的命名: 2.能够应付不同的组件,比如你的系统中可能会存在EfUnitOfWo ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- Glide源码导读
最近比较无聊,为了找点事干,就花了两天时间把Glide的源码大概看了一下.刚开始看Glide的源码头脑还是比较乱的,因为作者引入了几个概念,又大量用了泛型,如果不了解这些概念读起代码来就比较痛苦,我也 ...
- datepickerx设置默认日期
datepicher插件是jQuery UI的一个插件,它提供一个日期弹出窗口(或直接显示在页面),供用户选择日期.在Web开发中,总会遇到需要用户输入日期的情况.一般都是提供一个text类型的inp ...
- 如何隐藏DIV对象
DIV对象在网页里面,相当于一个容器,在其内部,可以显示文字.图片.视频控件等等. 以下的教程,和大家一起来学习,如何隐藏DIV对象. 这必须使用CSS来控制,才能达到隐藏的目的,那么,就得使用CSS ...
- 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步
Sql Data Compare 是比较两个数据库的数据是否相同.生成同步sql的工具. 这一款工具由Red Gate公司出品,我们熟悉的.NET Reflector就是这个公司推出的,它的SQLTo ...
- 【Win 10 应用开发】手写识别
记得前面(忘了是哪天写的,反正是前些天,请用力点击这里观看)老周讲了一个14393新增的控件,可以很轻松地结合InkCanvas来完成涂鸦.其实,InkCanvas除了涂鸦外,另一个大用途是墨迹识别, ...
- [.Net] 手把手带你将自己打造的类库丢到 NuGet 上
手把手带你将自己打造的类库丢到 NuGet 上 序 我们习惯了对项目右键点击“引用”,选择“管理NuGet 程序包”来下载第三方的类库,可曾想过有一天将自己的打造的类库放到 NuGet 上,让第三者下 ...
- SQL Tuning 基础概述04 - Oracle 表的类型及介绍
Tables A table describes an entity such as employees. You define a table with a table name, such as ...
- SQL Tuning 基础概述07 - SQL Joins
N多年之前,刚刚接触SQL的时候,就被多表查询中的各种内连接,外连接,左外连接,右外连接等各式各样的连接弄的晕头转向. 更坑的是书上看到的各种表连接还有两种不同的写法, 比如对于表A,表B的查询 1, ...