一、实验题目
Jsp内置对象
二、实验目的
- 了解JSP中4个内置对象request、reponse、session、pagecontext的基本概念。
- 理解JSP内置对象的常用方法的功能。
- 掌握JSP内置对象的应用。
三、实验内容
- request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
- response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
- session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
- pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者。
- 练习(自己完成)
四、实验实现
1、实验要求:
实验1 request对象使用
实验2 response对象
实验3 session对象使用
实验4 pageContext对象使用
2、核心代码:
实验1:
<%@ 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>
请求way:<%=request.getMethod()%><br>
请求的resourse:<%=request.getRequestURI()%><br>
请求用的协议:<%=request.getProtocol()%><br>
请求的文name:<%=request.getServletPath()%><br>
请求的服务器的IP:<%=request.getServerName()%><br>
请求服务器的port:<%=request.getServerPort()%><br>
客户端IP address:<%=request.getRemoteAddr()%><br>
客户端主机名:<%=request.getRemoteHost()%><br>
表单提交来的值:<%=request.getParameter("qwe")%><br>
<%
String str = "";
if (request.getParameter("qwe") != 9999999999999) {
Enumeration enumt = request.getParameterNames();
while (enumt.hasMoreElements()) {
str = enumt.nextElement().toString();
out.println(str + ":" + request.getParameter(str) + "<br>");
}
}
%>
</body>
</html>
实验2 :
<%@ 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>what you want?</title>
</head>
<body>
<%
String address = request.getParameter("where");
if (address != null) {
if (address.equals("baidu"))
response.sendRedirect("http://www.baidu.com");
else if (address.equals("unioncom"))
response.sendRedirect("http://www.unioncom.cn");
else if (address.equals("myfavorite"))
response.sendRedirect("myfavorite.jsp");
}
%>
<b>Please select:</b>
<br>
<form action="" method="GET">
<select name="where">
<option value="baidu" selected>go to baidu</option>
<option value="unioncom">go to unioncom</option>
<option value="myfavorite">go to myfavorite</option>
</select>
<input type="submit" value="go">
</form>
</body>
</html>
实验3 :
<%@ 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()?"yes" : "no"%><br>
<br>
<%
session.setAttribute("my name", "刘大咖");
session.setAttribute("nuuuumber", "666666");
%>
<%
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:
<%@ 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", "人工智能007");
session.setAttribute("name", "数据分析008");
application.setAttribute("name", "程序员669");
%>
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>
实验1:
实验2:
实验3:
实验4:
- 实验心得