分类:
(1)输入输出对象:request、response、Out
(2)通信控制对象:session、Applicaiton、PageContext
(3)Servlet对象:page、config
(4)错误处理对象:Execption
1、PageContext
PageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说它可以访问到本页的session,也可以取本页所在的Application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫PageContext,是javax.servlet.jsp.PageContext的实例。
作用域:page
2、Execption
Execption对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生了这个对象。如果一个页面要应用此对象,就必须把isErrorPage设为true,否则无法编译,即在页面指令中设置<%@page isErrorPage="true"%>,它实际上是java.lang.Throwable的实例,该实例代表其他页面的错误或异常。
作用域:page
JSP常见错误状态码:
403:禁止访问。比如IP地址被拒绝,站点访问被拒绝等。
404:找不到。没有找到文件或目录。
500:服务器由于遇到错误而不能完成该请求(代码错误)。Web服务器太忙。
3、config
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象),config对象Javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息。
作用域:page
注:事实上,JSP页面通常无需配置,也就不存在配置信息,因此该对象更多的是在servlet中有效。
4、page
JSP网页本身的page对象是当前页面转换后的servlet类实例,page对象是指向当前jsp页面本身的,就像类中的this指针,它是Java.lang.Object类的实例。从转换后的servlet代码中,可以看到这样的关系 Object this = page,在jsp页面中很少使用page对象。
作用域:page
5、Out
Out对象用于各种对象的输出,是用来向客户端输出内容的对象。out对象是JspWriter类的实例。
作用域:page,每个页面都有一个自己的out对象。
重要方法:println()/print()/write()
6、Applicaiton
Applicaiton对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,结束语服务器的关闭,在此期间,此对象一直存在。这样在用户的连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象的属性进行操作;都将影响到其他用户对此对象的访问。服务器的启动和关闭决定了Applicaiton对象的生命。它是ServletContext类的实例。
作用域:Applicaiton
7、session
session对象指的是客户端与服务器的一次对话,从客户端连到服务器的WebApplication开始,知道客户端与服务器断开连接为止。它是HttpSession类的实例。
session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户方位一个服务器时,可能会在这个服务器的几个页面之间切换,服务器通过session对象知道这是同一个客户。session对象具有会话作用域。
作用域:session
重要方法:
(1)session.getid(); 取得session的id号,id是由Tomcat分配
(2)session.isnew(); 判断session是否为新建
(3)session.setAttribute(key,Object); 往当前会话中设置一个属性
(4)session.getAttribute(key); 获取当前会话中的一个属性
(5)session.removeAttribute(key); 删除当前会话中的一个属性
(6)session.setMaxInactiveInterval(1000*60*30);设置当前会话失效时间(ms),Tomcat默认的会话时间为30分钟
(7)session.invalidate(); 初始化当前会话对象(一般在退出的时候使用,可以删除当前会话的数据)
会话结束条件(之一即可):
(1)服务器关闭
(2)会话过期(一般会话时间默认为30分钟)
(3)手动终止会话
8、response
包括了响应客户请求的有关信息,用于对客户的请求做出动态响应,并向客户端发送数据,但在JSP中很少用到它。它是HttpServletResponse类的实例,response对象具有页面作用域,即访问一个页面时,该页面内的response对象只对该次访问有效,其他页面的response对象对当前页面无效。
作用域:page
重要方法:
response.sendRedirect("页面") 页面跳转
response.setCharacterEncoding("gbk"); 设置响应编码
9、request
客户端的请求被封装在request对象中,通过调用该对象相应的方法就可以获得封装的信息,即使用该对象获取用户提交的信息,然后做出响应。它是HTTPServletRequest类的实例,Request在完成客户端的请求之前,该对象一直有效。
作用域:request,即该次请求结束,生命周期结束。
重要方法:
(1)getParameter(key) 获取提交表单的数据
(2)getParameterValues(key) 获取提交表单的一组数据
(3)request.setAttribute(key,Object) 设置请求对象的属性
(4)request.getAttribute(key) 获取请求对象的属性
(5)request.setCharasterEncoding("utf-8") 对请求数据重新编码