9个内置对象为:pageContext,request,response,session,application,config,out,page,exception
需要常用的五个内置对象
1.Response
Response内置对象和Request内置对象时对应的,Response内置对象用于响应客户请求,向客户端输出信息;
javax.servlet.HttpServletResponse接口
自动刷新应用
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
//每隔一秒刷新一次页面
response.setHeader("refresh","1");
//获取当前时间
Date myDate=new Date();
%>
当前时间:<%=myDate.toLocaleString()%>
</body>
</html>
页面重定向应用 客户端跳转
<body>
<%
//重定向,客户端跳转
response.sendRedirect("index.html");
%>
</body>
操作cookie应用
存放在客户端的与session不同
post get方法比较 post放数据包里 get放url后面 get数据量小,不安全;
response03.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
function resetValue() {
document.getElementById("userName").value = "";
document.getElementById("pwd").value = "";
}
</script>
<%
String userName = null;
String pwd = null;
Cookie[] cookies = request.getCookies();
for (int i = 0; cookies != null && i < cookies.length; i++) {
if (cookies[i].getName().equals("userNameAndPwd")) {
userName = cookies[i].getValue().split("-")[0];
pwd = cookies[i].getValue().split("-")[1];
}
}
if (userName == null) {
userName = "";
}
if (pwd == null) {
pwd = "";
}
%>
</head>
<body>
<form action="userLogin.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" id="userName" name="userName"
value="<%=userName%>" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" id="pwd" name="pwd"
value="<%=pwd%>" /></td>
</tr>
<tr>
<td>记住密码:</td>
<td><input type="checkbox" id="remember" name="remember"
value="remember-me" /></td>
</tr>
<tr>
<td><input type="submit" value="登录" /></td>
<td><input type="button" value="重置" οnclick="resetValue()" /></td>
</tr>
</table>
</form>
</body>
</html>
userLongin.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="javax.servlet.http.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String userName=request.getParameter("userName"); // 获取用户名
String pwd=request.getParameter("pwd"); // 获取密码
String remember=request.getParameter("remember"); // 获取记住密码
if("remember-me".equals(remember)){
Cookie userNameAndPwd=new Cookie("userNameAndPwd",userName+"-"+pwd);
userNameAndPwd.setMaxAge(1*60*60*24*7); // cookie记录一个星期
response.addCookie(userNameAndPwd); // 保存cookie
System.out.println("设置Cookie成功");
}
response.sendRedirect("response03.jsp");
%>
</body>
</html>
2.out对象
Out内置对象主要用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。
所以out内置对象的方法是向客户端输出数据和管理缓冲区;
底层 javax.servlet.jsp.JspWriter抽象类
out01.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
out.println("<h1>");
out.println("Hello Jsp Servlet");
out.println("</h1>");
%>
</body>
</html>
out02.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
int totalbuffer=out.getBufferSize(); // 获取总共缓冲区的大小
int available=out.getRemaining(); // 获取未使用的缓冲区的大小
int user=totalbuffer-available; // 获取使用的缓冲区大小
out.println("总共缓冲区的大小:"+totalbuffer);
out.println("未使用的缓冲区的大小:"+available);
out.println("使用的缓冲区大小:"+user);
%>
</body>
</html>
3.config对象
Config内置对象是Jsp页面通过Jsp容器进行初始化时被传递的对象。
javax.ServletConfig。
在Servlet初始化的时候,JSP引擎通过config向它传递信息。
这种信息可以是属性名和属性值匹配的参数,也可以是通过SerletContext对象传递的服务器的有关信息。
4.exception对象
Exception内置对象用来处理JSP文件在执行时发生的所有异常,它是java.lang.Throwable类的一个对象。
5.pageContext对象
是一个比较特殊的对象。它相当于页面中所有对象功能的集合,即使用它可以访问到本页面中所有对象。
pageContext内置对象由Jsp容器创建并初始化,pageContext对象提供了对Jsp页面所有对象及控件的访问。