JSP 的内置对象是指在 JSP 页面系统中已经默认内置的 Java 对象,这些对象不需要
开发人员显式声明即可使用。所有的 JSP 代码都可以直接访问 JSP 的内置对象。
1 JSP 内置对象作用域
JSP 内置对象中的
request、session 和 application
对象,可以形象地对照生活中
的
“茶杯”、“衣袋”、“书包”
等“容器”去理解,它们名称不同,但功能相似,都可用于
存放东西,但存放的时间长短不一。“茶杯”里仅存放一杯茶,喝完茶后(一杯茶的时间
后),“茶杯”就空了,这相当于
JSP 里的“request”对象,里面存放的数据的生命周期
仅是一次请求的时间
;“衣袋”里放的东西可以从穿上衣服开始,到将衣服脱下送洗都有
效,这相当于 JSP 里的
“session”对象,它里面存放的数据的生命周期较长
;而“书包”
里一般放着学生证、学习用品等,从学期开始到学期结束都有效,相当于 JSP 里的
“application”对象,它里面存放的数据生命周期最长,从服务器启动到服务器关闭为
止。
2 out 对象
<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat"
pageEncoding="gbk"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>out</title>
</head>
<body>
<%SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date=new Date();
out.println("原始格式日期:"+date);
String str1=sdf.format(date);
out.println("<br>定义格式日期:"+str1);
sdf.applyPattern("yyyy 年 MM 月 dd 日");
String str2=sdf.format(date);
out.println("<br>另一格式日期:"+str2);
%>
</body>
</html>
3 page 对象
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info="版权单位:计算机科学与技术学院"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=this.getServletInfo()%>
</body>
</html>
4 request对象
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.println("请求使用的协议:"+request.getProtocol()+"<br>");
out.println("请求使用的 Schema:"+request.getScheme()+"<br>");
out.println("访问服务的名称:"+request.getServerName()+"<br>");
out.println("访问端口号:"+request.getServerPort()+"<br>");
out.println("Servlet 容器:"+getServletConfig().
getServletContext().getServerInfo()+"<br>");
out.println("客户 IP 地址:"+request.getRemoteAddr()+"<br>");
out.println("请求的类型(Method): "+request.getMethod()+"<br>");
out.println("Session Id :"+request.getRequestedSessionId()+"<br>");
out.println("请求的资源定位(Request URI):"+request.getRequestURI()+"<br>");
out.println("servlet 在相对服务器文件夹的位置(Servlet Path):"+
request.getServletPath()+"<br>");
out.println("Host:"+request.getHeader("Host")+"<br>");
out.println("Accept-Language:"+request.getHeader("Accept-Language")+"<br>");
out.println("得到链接的类型(Connection):"+request.getHeader("Connection")+"<br>");
out.println("得到 Cookie 的字符串信息:"+request.getHeader("Cookie")+"<br>");
out.println("session 的相关信息-创建时间:"+session.getCreationTime()+"<br>");
out.println("session 的相关信息-上次访问时间:"+session.getLastAccessedTime()+"<br>");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Demo10.jsp" method="post" name="frm">
<font size="4">基本资料</font></strong>
<table width="700" cols="2" border=1>
<tr><td ><font color="#ff8000" size="2">*</font>姓名:</td>
<td><input type="text" size="18" name="name"></td></tr>
<tr><td ><font color="#ff8000" size="2"> *</font>性别:</td>
<td ><input type="radio" name="rdo" value="男"checked>
<font size="3">男</font><input type="radio" name="rdo" value="女">
<font size="3">女</font></td></tr>
<tr><td><font color="#ff8000" size="2"> *</font>民族:</td>
<td><input type="radio" name="rdo1" value="汉族" checked>汉族<
<input type="radio" name="rdo1" value="回族" >回族
<input type="radio" name="rdo1" value="壮族" >壮族
</td></tr>
<tr ><td align="left"><font color="#ff8000" size="2"> *</font>专业:</td>
<td> <select name="Major">
<option value="计算机科学与技术">计算机科学与技术</option>
<option value="软件工程">软件工程</option>
<option value="网络工程">网络工程</option>
<option value="信息安全">信息安全</option>
</select>专业
</td> </tr>
</table>
<strong><font size="4">兴趣爱好:</font></strong>
<table width="700" cols="2" border=1>
<tr><td width="15%">兴趣爱好:</td>
<td width="22%" >
<input type="checkbox" name="ckbx" value="电影">电影
<input type="checkbox" name="ckbx" value="戏剧">戏剧</td>
<td><input type="checkbox" name="ckbx" value="音乐">音乐
<input type="checkbox" name="ckbx" value="美术">美术</td></tr>
</table><br>
<input type="submit" value="注册" name="submit1">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.lang.reflect.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% request.setCharacterEncoding("utf-8") ;%>
用户注册信息<br>
基本资料<br>
姓名:<%=request.getParameter("name") %><br>
性别:<%=request.getParameter("rdo") %><br>
民族:<%=request.getParameter("rdo1") %><br>
专业:<%=request.getParameter("Major") %> 专业 <br>
兴趣爱好:<%String ckbx1[]=request.getParameterValues("ckbx");
if(ckbx1!=null){
int lng=Array.getLength(ckbx1);
for(int i=0;i<lng;i++) out.println(ckbx1[i]+" "); }%>
</body>
</html>
5 response 对象
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int count=0; %>
<%
response.setHeader("refresh", "2"); //页面 2 秒一刷新
%>
<h3>已经访问了<%=count++ %>次!</h3>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>3 秒后跳转到 notexist.html 页面,如果没有跳转请按<a href="index.html">这里</a>!
</h3>
<% response.setHeader("refresh","3;URL=index.jsp"); %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="4;url=index.html">
<title>html 的方式设置定时跳转的头信息</title>
</head>
<body>
<h3>4 秒后跳转到 index.html 页面,
如果没有跳转请按<a href="index.html">这里</a>!</h3>
</body>
</html>