JSP内置对象
- out对象:客户端浏览器输出各种数据
- request对象:封装了请求的各种信息
- response对象:封装了服务器的响应信息
- exception对象:封装了jsp执行过程中发生的异常和错误信息
- config对象:封装了application的配置信息
- page对象:指向了当前页面
- session对象:用来保存会话信息,也就是说它可以在同一用户的不同请求之间共享数据。
- application对象:代表了当前应用的上下问,不同用户之间可以共享信息。
- pageContext对象:提供了对jsp页面所有对象以及命名空间的访问。
out对象
out对象除了对页面输出数据外,还可以管理输出缓冲区。
默认的缓冲区大小是8kb,通过page编译指令可以更改缓冲区大小,如
<%@ page buffer = "10kb"%>
<%
out.println("text)");
out.print("elijah");
out.newLine();
out.println("缓冲区大小:"+out.getBufferSize());
out.println("<br />");
out.println("当前缓冲区剩余字节数目:" + out.getRemaining());
out.flush();//刷新缓冲区 冲入页面显示
out.clearBuffer();//清空缓冲区
%>
Request对象
request对象大多数方法都是获取客户端提交的数据,如表单,参数,ip,cookie等。
<form action="" method="post">
<input type="text" name="username"/>
<input type="submit" value="submit">
</form>
请求方法名<%=request.getMethod()%><br/>
请求资源名<%= request.getRequestURI()%>
<br/>
请求使用的协议<%=request.getProtocol()%>
<br/>
请求的服务器IP<%=request.getServerName()%>
<br>
请求的服务器端口<%= request.getServerPort()%>
<br>
客户端的IP<%=request.getRemoteAddr()%>
<br>
客户端的主机名<%=request.getRemoteHost()%>
<br>
表单提交的参数<%=request.getParameter("username")%>//访问表单数据 需要用getParameter方法 然后对应表单中的name关键字
Request对象使用
创建三个jsp
register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/09/do_register.jsp" method="post">
用户名 <input type="text" name="userName"/>
<%--技能--%>
<%--<input type = "checkbox" name = "skills" value="java" />java--%>
<%--<br/> <input type = "checkbox" name = "skills" value="python" />python--%>
<%--<br /> <input type = "checkbox" name = "skills" value="ruby" />ruby--%>
<%--<br /> <input type = "checkbox" name = "skills" value="node.js" />node.js--%>
<%--<br/>--%>
<input type="submit" value="submit"/>
<input type="reset" value="reset"/>
</form>
</body>
</html>
do_register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String userName = request.getParameter("userName");
System.out.println("tag");
String skills = "";
String[] skillAll = request.getParameterValues("skills");
if (skillAll!= null&&skillAll.length>0) {
for (String s : skillAll) {
skills = s+skills;
}
}
request.setAttribute("userName", userName);
//添加一个额外参数
%>
<jsp:forward page="welcome.jsp"/>
welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
welcome!
<%=request.getAttribute("userName")//获取属性
%>
</body>
</html>
Response对象详解
<html>
<head>
<title>Title</title>
</head>
<body>
<%
response.setHeader("Cache-Control", "no-cache");//用于设置网页的缓存策略,no-cache 则表示不会缓存数据
response.setIntHeader("Refresh",2);//设置头信息 网页每隔两秒刷新一次 设置了一个刷新头
out.println("date is = " +
new java.util.Date().toString() + "<br />");
response.sendRedirect("http://www.google.com");//response重定向指令
%>
</body>
</html>
cookie:是由服务器发送的纯文本信息,发送到浏览器后,浏览器将网址和cookie一同提交到服务器。浏览器检查cookie可以识别用户状态等。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Cookie myCookie = new Cookie("elijah", "coder");//设置cookie键值对
myCookie.setMaxAge(3600);//设置cookie最大存活时间
response.addCookie(myCookie);//设置cookie
%>
</body>
</html>