JSP脚本包含9个内置对象,这9个内置对象都是servle api接口的实例,由jsp页面对应的servlet的_jspService()方法来创建这些实例,也
就是说他们是对象,可以使用。
application config exception out page pageContext request response session
1 application:对于整个web有效,里边的数据可以被其他所有的jsp servlet访问
<%application.setAttribute("name", "jia"); %>类似map结构
<%=application.getAttribute("name") %>取得值 结果为jia
可以用于获得web应用配置参数 String str=application.getInitParameter(String param-name); 这些配置参数应该在web.xml中使用context-param元素配置
2 config:代表当前JSP配置信息 可以在web.xml配置 使用init-param
3 exception 代码JSP脚本中产生的错误和异常
首先在错误页面 page指令中 指定errorPage="error.jsp"
在error.jsp中page指令指定 isErrorPage="true"
在error.jsp中<%=exception.getClass()%>...
4 out out对象代表一个页面输出流 用于在页面上输出变量和常量
<%out.println("hello JSP");%>
5 pageContext 这个对象代表页面上下文 主要用于访问JSP之间的共享数据,使用它
可以访问page request session application范围的变量
<%pageContext.setAttribute("request2","hello",pageContext.REQUEST_SCOPE);
session.setAttribute("session", "hello"); %>
<%out.println(pageContext.getAttribute("session",PageContext.SESSION_SCOPE));
out.println(pageContext.getAttributesScope("request2"));%>
6 request 每个request对象封装一次用户请求,并且所有的请求参数都被封装在request中。
getParameter(String name1)获取name为name1的值
String[] getParameterValues(String name1) 获取name为name1的值,当该请求有多个值时,该请求将返回多个值
<%
String name=request.getParameter("name");
String gender=request.getParameter("gender");
String[] col=request.getParameterValues("color");
%>
<%=name%><hr/>
<%=gender%><hr/>
<%for(String c:col)
{
out.println(c+" ");
}
%>
7 response代表服务器对客户端的响应 out只能输出字符流 而response可以输出位图 或者pdf文档
1 生产非字符串响应
2 重定向 response.sendRedirect("a.jsp") 和forward不同 forward中request不会改变而 2是重新生成一次请求 原来的request丢失。
3增加Cookies Cookies会一直存放在客户端机器上,除非超出Cookies的生命期限。
Cookie c=new Cookie("user","li");
c.setMaxAge(3600);//设置周期为一小时
response.addCookie(c)
Cookie[] cookies=request.getCookies(); //得到cook
for(Cookie c:cookies)
{
if(c.getName().equals("username"))
out.println(c.getValue());
}
8 session对象代表一次会话 从客户端浏览器与服务器连接到断开