资源描述
JSP程序设计实验报告(三)
院系:计算机科学与工程学院
【实验题目】
JSP内置对象
【实验目的】
1、 了解JSP中4个内置对象request、reponse、session、pagecontext的基本概念。
2、 理解JSP内置对象的常用方法的功能。
3、 掌握JSP内置对象的应用。
【实验内容】
1、 request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2、 response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3、 session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4、 pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者。
5、 练习(自己完成)
【实验代码】
实验1 request对象使用
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
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>
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
<input type="text" name="qwe">
<input type="submit" value="提交">
</form>
请求方式:<%=request.getMethod()%><br>
请求的资源:<%=request.getRequestURI()%><br>
请求用的协议:<%=request.getProtocol()%><br>
请求的文件名:<%=request.getServletPath()%><br>
请求的服务器的IP:<%=request.getServerName()%><br>
请求服务器的端口:<%=request.getServerPort()%><br>
客户端IP地址:<%=request.getRemoteAddr()%><br>
客户端主机名:<%=request.getRemoteHost()%><br>
表单提交来的值:<%=request.getParameter("qwe")%><br>
<%
String str = "";
if (request.getParameter("qwe") != null) {
Enumeration enumt = request.getParameterNames();
while (enumt.hasMoreElements()) {
str = enumt.nextElement().toString();
out.println(str + ":" + request.getParameter(str) + "<br>");
}
}
%>
</body>
</html>
实验2 response对象
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
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>你想重定向去哪个网站?</title>
</head>
<body>
<%
String address = request.getParameter("where");
if (address != null) {
if (address.equals("sohu"))
response.sendRedirect("");
else if (address.equals("avceit"))
response.sendRedirect("");
else if (address.equals("mypage"))
response.sendRedirect("mypage.jsp");
}
%>
<b>Please select:</b>
<br>
<form action="" method="GET">
<select name="where">
<option value="sohu" selected>go to sohu</option>
<option value="avceit">go to avceit</option>
<option value="mypage">go to mypage</option>
</select>
<input type="submit" value="go">
</form>
</body>
</html>
实验3 session对象使用
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
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>
</head>
<body>
<br>
session的创建时间:<%=session.getCreationTime()%> <%=new
Date(session.getCreationTime())%>
<br>
<br>
session的Id号:<%=session.getId()%><br>
<br>
客户端最近一次请求时间:<%=session.getLastAccessedTime()%> <%=new java.sql.Time(session.getLastAccessedTime())%><br>
<br>
两次请求间隔多长时间此SESSION被取消(ms):<%=session.getMaxInactiveInterval()%><br>
<br>
是否是新创建的一个SESSION:<%=session.isNew()?"是" : "否"%><br>
<br>
<%
session.setAttribute("name", "火星人");
session.setAttribute("nmber", "1234567");
%>
<%
String str;
//Enumeration为枚举类
Enumeration<String> enum1=session.getAttributeNames();
while(enum1.hasMoreElements()){
str=enum1.nextElement().toString();
out.println(str+":"+session.getAttribute(str)+"<br>");
}
%>
<br>
</body>
</html>
实验4 pageContext对象使用
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
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>pageContext对象举例</title>
</head>
<body>
<%
request.setAttribute("name", "软件001");
session.setAttribute("name", "软件002");
application.setAttribute("name", "编程001");
%>
request设定的值:<%=pageContext.getRequest().getAttribute("name")%><br>
session设定的值:<%=pageContext.getSession().getAttribute("name")%><br>
application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
范围1内的值:<%=pageContext.getAttribute("name", 1)%><br>
范围2内的值:<%=pageContext.getAttribute("name", 2)%><br>
范围3内的值:<%=pageContext.getAttribute("name", 3)%><br>
范围4内的值:<%=pageContext.getAttribute("name", 4)%><br>
<!--从最小的范围page开始,然后是reques、session以及application-->
<%
pageContext.removeAttribute("name", 3);
%>
pageContext修改后的session设定的值:<%=session.getAttribute("name")%><br>
<%
pageContext.setAttribute("name", "应用技术培训", 4);
%>
pageContext修改后的application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
值的查找:<%=pageContext.findAttribute("name")%><br>
属性name的范围:<%=pageContext.getAttributesScope("name")%><br>
</body>
</html>
【实验结果】
request对象:
response对象:、
session对象:
pageContext对象:
【实验心得】
通过本次实验,我知道了如何在JSP页面中实现使用request、reponse、session、pagecontext4个内置对象,对这四个内置对象有了一定的了解,并且对JSP编程更加得心应手。
展开阅读全文