对象名 |
对象 |
类型 |
作用域 |
request |
请求对象 |
javax.servlet.ServletRequest的子类 |
Request |
response |
响应对象 |
javax.servlet.SrvletResponse 的子类 |
Page |
session |
会话对象 |
javax.servlet.http.HttpSession |
Session |
application |
应用程序对象 |
javax.servlet.ServletContext |
Application |
out |
输出对象 |
javax.servlet.jsp.JspWriter |
Page |
pageContext |
页面上下文对象 |
javax.servlet.jsp.PageContext |
Page |
config |
配置对象 |
javax.servlet.ServletConfig |
Page |
page |
页面对象 |
javax.lang.Object |
Page |
exception |
异常对象 |
javax.lang.Throwable |
Page |
request
request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,
然后通过getAttribute方法根据属性获取到与该属性对应的对象值(获取到之后一般都需要进行向下类型转换,
将属性值转换为真正的对象)。setAttribute与getAttribute方法都是在服务器端内部执行的,客户端不知道服务
器端是否执行过这两个方法。
request的getParameter方法的作用是获取到客户端 通过表单或URL请求参数所发送过来的参数值,是客户
端与服务器端之间的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法来获取。
没有与getParameter方法对应的setParameter方法。
request对象内数据的存活范围就是在request对象的存活范围内,当客户端向服务器端发送一个请求,服务
器向客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器会创建新的
request对象,该request对象与之前的request对象没有任何关系,因此也无法获得在之前的request对象中所存
放的任何数据。
session
session对象内数据的存活范围也就是session对象的存活范围(只要浏览器不关闭,session对象就会一直
存在),因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个。
application
application(应用程序对象):存活范围最大的对象,只要服务器没有关闭,application对象中的数据就会一直存在。
在整个服务器运行过程当中,application对象只有一个。
【request、session以及application对象的范围区别】request只在一个请求的范围内;
session是在浏览器窗口的范围内;application则是在整个服务器的运行过程中。
exception
此exception是服务器内置对象默认对象名称,属于java.lang.Throwable类型,作用域属于Page(当前页);
“exception”对象代表JSP文件运行时所产生的异常对象,此对象不能在一般JSP文件中直接使用,而只能在使用了
“<%@ page isErrorPage = "true">”的JSP文件中使用,即该JSP页面是被定义为异常页面来进行处理
【请求转发与重定向的区别】
HttpServletResponse对象的sendRedirect(String location)方法称作重定向。
如果location地址前面加上“/”,则表示相对于Servlet容器的根来请求,即
http://localhost:8080,如果location地址前没加上“/”,则表示对于当前请求URI来寻找地址。
RequestDispatcher的forward(request,response)方法称作请求转发。
RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
sendRedirect()是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象
的方法,那就表明整个请求过程结束了,服务器开始向客户端返回执行的结果。