servlet容器会传递给几个对象给它运行的servlet。像什么HttpServeltRequest,ServletConfig等对象。
在jsp中,可以通过使用隐式对象来访问上述对象。
对象 | 描述 |
---|---|
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | JspWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
exception | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
下面的代码从HTTPServletReques对象中返回username参数值:
<%
String userName = request.getParameter("userName");
%>
此外,PageContext提供了另外一组有趣的方法:用于获取和设置属性的方法,即getAttribute和setAttribute方法。属性值可以被储存在4个范围之一:页面,请求,会话和应用程序。
页面是最小的范围,这里存储的属性只在同一个JSP页面可用。请求范围是指当前的ServletRequeset中。会话范围指当前的HttpSession中,应用程序范围指应用的ServletContext中。
PageContext的setAttirbute的方法签名如下:
public abstract void setAttribute(java.lang.String name , java.lang.Object value , int scope) 其中scope的取值范围为PageContext对象的最终静态int值:PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,APPLICATION_SCOPE
要是保存在ServletRequest中,则可以直接<%request.setAttribute("product",product);%>