jsp的内置对象:
内置对象是在JSP页面中无需创建就可以直接使用的变量。在JSP中一共有9个这样的对象!它们分别是:
l out(JspWriter);
l config(ServletConfig);
l page(当前JSP的真身类型);
l pageContext(PageContext);
l exception(Throwable);
l request(HttpServletRequest);
l response(HttpServletResponse);
l application(ServletContext);
l Session (HttpSession)。
--------------------------------------------------------------------
pageContext对象
作用域:当前页面,只能在当前访问页面使用或获取属性
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <!-- 设置属性 --> <% pageContext.setAttribute("name", "englishTeacher"); pageContext.setAttribute("birthday", new Date()); %> <!-- 获取属性 --> <% String name = (String)pageContext.getAttribute("name"); Date birthday = (Date) pageContext.getAttribute("birthday"); %> <!-- 打印属性 --> <%=name %> <%=birthday %> </body> </html>
request作用域:
在当前请求范围内有效,服务器跳转也算同一次请求,同样有效
代码:
<body> <!-- 设置属性 --> <% request.setAttribute("name", "englishTeacher"); request.setAttribute("birthday", new Date()); %> <!-- 获取属性 --> <% String name = (String)request.getAttribute("name"); Date birthday = (Date) request.getAttribute("birthday"); %> <!-- 打印属性 --> <h1><%=name %></h1> <h1><%=birthday %></h1> <!-- 跳转代码 --> <jsp:forward page="/success.jsp"></jsp:forward> </body>
跳转之后的success.jsp的代码:
<body> <!-- 获取属性 --> <% String name = (String)request.getAttribute("name"); Date birthday = (Date) request.getAttribute("birthday"); %> <!-- 打印属性 --> <h1><%=name %></h1> <h1><%=birthday %></h1> <h2>success.jsp</h2> </body>
session对象作用域:
在一次会话中有效,既:只要浏览器窗口不关闭 就能获取到session
即使一个浏览器开多个代码都可以,但是一旦浏览器关闭就over....
代码同上:略
application作用域
生命周期随同服务器的开闭。。。既在整个服务器的运行期,。
只要服务器开着,就可以获取到
代码:略 同上