JSP的内置对象简介
- 格式:doc
- 大小:189.00 KB
- 文档页数:17
JSP中的内置对象<j s p:f o r w a r d><jsp:forward>是把一个请求转发到另一个JSP或Servlet或者其他的静态资源(HTML)特点:被forward转发的资源必须与发出请求的页面处于相同的上下文环境中,每当遇到此标签时,容器就会停止执行当前的JSP,转而执行被转发的资源<j s p:p a r a m>l当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用<jsp:param>标签向这个程序传递参数信息。
l语法1:<jsp:include page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l语法2:<jsp:forward page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。
在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
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 val ue="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()%> <%=newDate(session.getCreationTime())%><br><br>session的Id号:<%=session.getId()%><br><br>客户端最近一次请求时间:<%=session.getLastAccessedTime()%> <%=newjava.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编程更加得心应手。
jsp九⼤内置对象什么是内置对象 可以在JSP⽂件中直接拿来使⽤的对象 JSP⽂件翻译后⽣成的⽂件:在service⽅法中就引⼊了9个对象,所以在jsp⽂件中才可以直接使⽤九⼤内置对象有哪些四个范围对象的范围从⼩到⼤是什么: 从⼩范围到⼤范围:pageContext、request、session、applicationpageContext对象是什么 pageContext对象代表jsp页⾯上下⽂对象pageContext对象可以⼲什么 通过pageContext对象可以获取整个JSP页⾯环境中的所有数据: 获取当前JSP页⾯中的请求对象:pageContext.getRequest()。
获取当前JSP页⾯中的会话对象:pageContext.getSession()。
获取ServletContext对象:pageContext.getServletContext()。
通过pageContext对象传递数据(只能存储⼀个页⾯中的数据,⽆法跨页⾯。
可以获取include指令包含的jsp页⾯中存储的数据,但是不能获取include动作包含的jsp页⾯中存储的数据): pageContext.setAttribute(“username”,jack); //存 pageContext.getAttribute(“username”); //取 通过pageContext对象往request,session,application对象中存储数据: 向request范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.REQUEST_SCOPE); 向session范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.SESSION_SCOPE); 向application范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.APPLICATION_SCOPE);。
第三章:Jsp隐式对象(request对象、response对象session对象、application对象、cookie)Jsp隐式对象概述:由JSP规范提供,不用编写者实例化。
通过Web容器实现和管理。
所有JSP页面均可使用。
只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)。
常用九大内置对象的作用和方法1、out对象:代表提供输出流的访问。
2、request对象:request对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息。
常用方法:getparameter()getParameterValues()setAttribute() getAttribute()3、response对象:允许直接访问HttpServletResponse对象常用方法:sendRedirect()4、session对象:允许直接访问HttpServletResponse对象常用方法:setAttribute()、getAttribute()5、application对象:用于多个程序或者多个用户之间共享数据。
常用方法:setAttribute()、getAttribute()6、config :将初始化数据传递给一个JSP页面7、page :代表JSP页面对应的Servlet类实例8、exception:针对错误网页,未捕捉的例外9、pageContext :管理网页的属性内置对象的作用域:◆application:服务器启动到停止这段时间◆session:HTTP会话开始到结束这段时间◆request:HTTP请求开始到结束这段时间◆page:当前页面从打开到关闭这段时间对于每一个用户都共享同一个对象的是:application对象,而每个用户分别使用不同对象实例的是:session对象forword和sendRedirect的区别:forword仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;sendRedirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接getParameter(String name);例题一:文件名:input.html<html>< body bgcolor="white"><font size=1><form action="requestdemo1.jsp" method=post name=form><input type="text" name="boy"><input type="submit" value="Enter" name="submit"></form></font></body></html>文件名:requestDemo1.jsp:<%@ page contentType="text/html;charset=GB2312" %><html><body bgcolor="white"><font size=4><p>获取文本框提交的信息:<%String strContent=request.getParameter("boy");%><%=strContent%> // 输出文本框boy提交的信息<p> 获取按钮的名字:<%String strButtonName=request.getParameter("submit");%><%=strButtonName%> // 输出按钮的value名字</font></body></html>例题二:设计一个简单的“JSP程序设计网上测试系统”,如下图所示。
JSP内置对象本讲主要介绍JSP主要内置对象,包括对象的作用、常用函数,并通过具体实例说明其用法,并介绍了Cookie的概念和使用方法。
通过本讲的学习,重点掌握以下内容:●掌握常用内置对象的作用●掌握常用内置对象的用法●了解Cookie的有关操作1.1 内置对象介绍JSP九大隐式对象:[1]request:表示客户端的请求,包含了所有的请求信息,是Servlet中service(或doPost/doGet方法)方法的resquest参数。
[2]response:处理JSP生成的响应,然后将响应结果发送给客户端。
是service(或doPost/doGet方法)方法的response参数。
[3]out:表示输出流,将作为请求的响应发送给客户端。
是JspWriter的一个实例。
[4]session:表示用户的会话状况,用此机制可以轻易的识别每一个用户,能保存和跟踪用户的会话状态。
是HttpSession的一个实例。
[5]pageContext:作用于此页面,可以访问页面作用域中定义的所有隐式对象。
是PageContext的一个实例。
[6]application:作用于整个应用程序。
是ServletContext的一个实例。
[7]page:提供对网页上定义的所有对象的访问。
是一个Object对象。
是此Servlet的一个引用。
[8]config:存储Servlet的一些初始信息。
是ServletConfig的一个实例。
[9]exception:此对象负责处理程序执行过程中引发的异常。
1.2 out:输出对象out对象是JspWriter类的实例,主要用于向客户端输出数据。
out对象与response.getWriter()得到的PrintWriter对象的关系:一、都是继承自java.io.Writer类。
JspWriter在JSP页面中直接用out对象输出,也可以用pageContext.getOut(); 得到out对象。
JSP的内置对象简介1.request2.reponse3.session4.out5.page6.application7.exception8.pagecontext9.Config1.request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是H ttpServletRequest类的实例。
序号方法说明1 object getAttribute(String name) 返回指定属性的属性值2 Enumeration getAttributeNames() 返回所有可用属性名的枚举3 String getCharacterEncoding() 返回字符编码方式4 int getContentLength() 返回请求体的长度(以字节数)5 String getContentType() 得到请求体的MIME类型6 ServletInputStream getInputStream() 得到请求体中一行的二进制流7 String getParameter(String name) 返回name指定参数的参数值8 Enumeration getParameterNames() 返回可用参数名的枚举9 String[] getParameterValues(String 返回包含参数name的所有值的数组name)10 String getProtocol() 返回请求用的协议类型及版本号11 String getScheme() 返回请求用的计划名,如:http.https及ftp等12 String getServerName() 返回接受请求的服务器主机名13 int getServerPort() 返回服务器接受此请求所用的端口号14 BufferedReader getReader() 返回解码过了的请求体15 String getRemoteAddr() 返回发送此请求的客户端IP地址16 String getRemoteHost() 返回发送此请求的客户端主机名17 void setAttribute(String key,Object obj) 设置属性的属性值18 String getRealPath(String path) 返回一虚拟路径的真实路径1920<%@ page contentType="text/html;charset=gb2312"%><%request.setCharacterEncoding("gb2312");%><html><head><title>request对象_例1</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.getParam eter("qwe")%><br></body></html><%@ page contentType="text/html;charset=gb2312"%><%request.setCharacterEncoding("gb2312");%><%@ page import="java.util.Enum eration"%><html><head><title>request对象_例2</title></head><body bgcolor="#FFFFF0"><form action="" method="post">用户名:<input type="text" name="username"> 密码:<input type="text" name="userpass"> <input type="submit" value="进入" ></form><%String str="";if(request.getParameter("username")!=null &&request.getParameter("userpass")!=null){Enumeration enumt = request.getParam eterNam es();while(enumt.hasMoreElements()){str=enumt.nextElement().toString();out.println(str+":"+request.getParameter(str)+"<br>");}}%></body></html><%@ page contentType="text/html;charset=gb2312"%><%request.setCharacterEncoding("gb2312");%><html><head><title>request对象_例3</title></head><body bgcolor="#FFFFF0"><form action="" method="post">擅长:<input type="checkbox" nam e="cb" value="ON1">VC++ <input type="checkbox" nam e="cb" value="ON2">JAVA <input type="checkbox" nam e="cb" value="ON3">DELPHI <input type="checkbox" nam e="cb" value="ON4">VB <br><input type="submit" value="进入" name="qwe"></form><%if(request.getParameter("qwe")!=null ){for(int i=0;i<request.getParameterValues("cb").length;i++){out.println("cb"+i+":"+request.getParam eterValues("cb")[i]+"<br>"); }out.println(request.getParameter("qwe"));}%></body></html>2.response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
它是HttpServletResponse类的实例。
序号方法说明1 String getCharacterEncoding() 返回响应用的是何种字符编码2ServletOutputStreamgetOutputStream()返回响应的一个二进制输出流3 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象4 void setContentLength(int len) 设置响应头长度5 void setContentType(String type) 设置响应的MIME类型6 sendRedirect(ng.String location) 重新定向客户端的请求783.session对象session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。