内置对象就是在jsp中不需要创建(不用new)就可以使用的对象,对象是由服务器(像tomcat)来创建的。
在jsp中一共有九大内置对象:
request,response,out,session,application,pageContext,page,config,exception
api的使用介绍:
(由于中文版的api也不好查看,所以最好用英文版api。通过类名来查找,因为out是对象,所以没法通过对象查找。因为对象是通过类来实现的,所以类的方法就是对象out打点能够出现的方法)
1.out对象
1.作用:
向客户端输出信息
2.使用方法:
out.print("Hello");
out是属于JspWriter类的对象,由容器(Tomcat)来创建。那么他是有许多方法的,具体要在J2EE api中查看。
3.常用方法:
print() 打印
2.request对象
1.作用:
获取客户端传输到服务器的信息
2.使用方法:
request.getParameter("");
request属于HttpServletRequest接口的,接口不能创建对象,所以是实现接口。要想知道这个对象属于哪个类,利用反射方法,直接打印request.getClass().getName(),对于不同服务器,打印出来的类是不同的。而
HttpServletRequest
继承于
ServletRequest
3.常用方法:
当我们找方法的时候,在
HttpServletRequest中是找不到
getParameter()的,但是在他的父类
ServletRequest中可以找到。
getParameter("zhi"); 获取传来的 一个参数 zhi属性对应的值
getParameterNames(); 获取传来的 所有属性名字 形成一个数组
getParameterValue("aihao"); 获取传来的 多个值 aihao属性下的值,形成一个数组
Attribute对属性进行操作(struts框架使用),需要在一次请求中使用(一条流程上)
setAttribute("height","100"); 设置属性
get
Attribute("height"); 获取属性
remove
Attribute("height"); 去掉height这个属性
get
AttributeName(); 获取设置的所有属性的名字 形成一个数组
了解即可
getCookies() 保存计算机中存放的信息
getCharacterEncoding() 获取你设置的字符编码
getContentLength() 获取整个网页的长度
getRequestURL() 获取当前的网页地址(访问路径)
getRequestURI() 获取 去掉协议,主机,端口 后的网页地址
getMethod() 获得网页提交的方法(地址栏输入:get 表格提交:post)
getRemoteAddr() 获取网页的远程地址ip
getRemoteHost() 获取远程主机的ip
getServerName() 获取服务器的名称
getServerPort() 获取端口
getServletPath() jsp会转化为一个类,servlet的路径就是这个类的路径
getContextPath() 上下文路径,也就是上一个目录的名字
getHeaderNames,getHeaders , getHeader 获取网页头信息,网页控制信息(里面有用户系统,游览器等等)
getHeader("Referer"); 获取用户来自的网站(广告常用)
3.response对象
1.作用:
向客户端浏览器输出信息,对用户请求做响应
2.使用方法:
r
esponse
.sendRedirect("url");
response属于HttpServletR
esponse
接口的,
而
HttpServletR
esponse
继承于
ServletR
esponse
(在jsp网页上session=false就可以关闭session功能)
3.常用方法:
sendRedirect("url") 转走到该url页面上
getWriter().print("你好"); 获得输出对象后往网页输出内容
了解即可
addCookie() 写入信息操作内容
addHeader() 添加头文件信息,键值对形式
containsHeader() 判断是否包含header
setHeader() 对header信息进行修改
4.session对象
1.作用:
会话对象,客户端跟服务器联系的那段时间存在。
每个用户的会话空间是隔离的。
2.使用方法:
setAttribute("COLOR",color); 设置COLOR的session为color值的内容
(ajax的使用:当我们点击按钮的时候,前端背景色变成红色,但是还要把数据传到后台,一般传到后台都需要对页面进行刷新,这样背景色就会消失,为了解决这个问题,可以用ajax无声息提交后台数据)
session属于HttpSession 接口的实现接口。
3.常用方法:
getAttribute("Ming") 获取对象
set
Attribute("Ming",list) 设置对象
setMaxInactiveInterval(int) 设置最大活跃时间(以秒为单位)
5.application对象
1.作用:
所有客户端共用的会话空间(聊天室的方式)
(application,session,request都可以通过setAttribute设置属性,application的范围是所有会话,session需要在同一个session,而request则是同一次请求可见)
2.使用方法:
setAttribute("COLOR",color);
application的使用跟session一样,他实现了ServletContext接口。 ServletContext==application
3.常用方法:
getRealPath(""); 获取实际的路径,部署完的目录,跟request获取的不同
6.page对象(少用)
1.作用:
page对象就是网页本身,jsp转化为servlet类的实例。
7.config对象(少用)
1.作用:
配置jsp参数(在web.xml中),如同servlet中配置参数。
2.使用方法:
getInitParameter("xml设置的参数名") 获取配置文件中绑定的参数值
config实现了ServletConfig接口
8.exception对象
1.作用:
在可能产生错误的文件中用pahe指令指定errorpage
在所指的errorpage中,设置isErrorPage="true"(需要设置才能用exception对象)这个page指令,用exception获取错误信息。
2.使用方法:
getMessage() 获取页面错误信息
9.pageContext对象
1.作用:
1.可以获取其他八大内置对象的句柄
2.设置和获取四个范围内的值
2.使用方法:
getOut().print("hello");
getSession().setAttribute("","");
3.常用方法:
八大对象的获取,比较鸡肋
getOut()
getRequest()
getResponse()
getSession()
getServletContext()
getServletConfig()
getException()
getPage()
范围的指定
setAttribute("name","zhang",PageContext.???_SCOPE);
???的内容可以为:SESSION,APPLICATION,REQUEST(不加最后一个参数则默认为page范围)