《JSP主要内置对象》PPT课件.ppt_第1页
《JSP主要内置对象》PPT课件.ppt_第2页
《JSP主要内置对象》PPT课件.ppt_第3页
《JSP主要内置对象》PPT课件.ppt_第4页
《JSP主要内置对象》PPT课件.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第5章JSP主要内置对象,教学目标教学重点教学过程,2,教学目标,了解和掌握Request对象方法了解和掌握Response对象方法了解和掌握Session对象方法,3,教学重点,Request对象方法Response对象方法Session对象方法,4,教学过程,Request对象方法Response对象方法Session对象方法,5,JSP有以下九种内置对象,request,请求对象response,响应对象pageContext,页面上下文对象session,会话对象application,应用程序对象out,输出对象config,配置对象page,页面对象exception,例外对象,6,7,request和response,“request”对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值“response”对象代表的是对客户端的响应,也就是说可以通过“response”对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out”对象即可。,8,5.1Request对象方法,Request内置对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表。它通常是HttpServlet-Request的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有:,9,5.1Request对象方法,getCookies():返回客户端的cookie对象,结果是一个cookie数组。getSession(booleancreate):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么当create变量为true,则创建一个HttpSession对象并返回;反之,返回null。getHeader(Stringname):获得http协议定义的传送文件头信息。,10,getAttribute(Stringname):返回name指定的属性值,若不存在指定的属性,就返回null。getattributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。getHeaderNames():返回所有requestheader的名字,结果集是一个Enumeration(枚举)类的实例。getHeaders(Stringname):返回指定名字的requestheader的所有值,结果集是一个Enumeration(枚举)类的实例。getMethod():返回客户端向服务器端传送数据的方法,一般方法有GET、POST、PUT等类型。getParameter(Stringname):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。,11,getparameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。getParameterValues(Stringname):以字符串数组的形式返回指定参数所有值。getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。getRequestURI():获得发出请求字符串的客户端地址。getServletPath():获得客户端所请求的脚本文件的文件路径。setAttribute(Stringname,Java.lang.Objecto):设定名字为name的request参数值,该值由Object类型的o指定。getServerName():获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址。,12,getServerPort():获得服务器的端口号。getRemoteAddr():获得客户端的IP地址。getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。getProtocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。getInputStream():以二进制的形式将客户端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。,13,isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false.getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。getContextPath():返回环境路径。对于JSP来说,一般是当前Web应用程序的根目录。isRequestedSessionIdValid():返回一个指示客户端请求发送SessionID是否仍然有效的布尔值。isRequestedSessionIdFromCookie():返回一个指示客户端请求发送SessionID是否存在于Cookie中的布尔值。isRequestedSessionIdFromURL():返回一个指示客户端请求发送SessionID是否存在于URL中的布尔值。,14,request对象示例,姓名,15,request对象示例:Hello_req.jsp,你好,今天是号,星期,输入:独孤求败,16,request对象示例(输出结果),你好,独孤求败,今天是9号,星期1,17,常用request请求对象,1getAttribute原型:publicjava.lang.ObjectgetAttribute(java.lang.Stringname)说明:以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。(Servlet为服务器端小程序,所有JSP页面都事先翻译成Servlet后才执行),18,request请求对象,如果所给名称的属性不存在将返回空值。属性名应该遵循和包命名方式同样的约定,不要采用如“java.*”、“javax.*”及“sun.*”.这样的命名。参数:name一个标示属性名的字符串返回值:一个包含属性值的对象,当属性不存在是为空。,19,request对象使用示例,request用户登录用户名:密码:,20,浏览器类型:IENetscape资料选项:标题详细,21,Post.jsp代码,test);out.println(密码:+request.getParameter(pwd)+);out.println(浏览器:+request.getParameter(radio)+);out.println(标题:+request.getParameter(check1)+);out.println(详细:+request.getParameter(check2)+);out.println(隐含:+request.getParameter(hidden)+);out.println(getContentLength()=+request.getContentLength()+);,22,out.println(getContentType()=+request.getContentType()+);out.println(getRequestURI()=+request.getRequestURI()+);out.println(getServerPort()=+request.getServerPort()+);out.println(getServerName()=+request.getServerName()+);out.println(getProtocol()=+request.getProtocol()+);out.println(getRemoteAddr()=+request.getRemoteAddr()+);out.println(getHeaderNames()=+request.getHeaderNames()+);out.println(getMethod()=+request.getMethod()+);out.println(getServletPath()=+request.getServletPath()+);out.println(isRequestedSessionIdValid()=+request.isRequestedSessionIdValid()+);%,23,运行结果,24,25,5.2Response对象方法,Response对象实现HttpServletResponse接口,可对客户的请求做出动态的响应,向客户端发送数据,如Cookie、HTTP文件头信息等,一般是HttpServlet.Response类或其子类的一个对象。该对象的常用方法为:addCookie(Cookiecookie):添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个Cookie。addHeader(Stringname,Stringvalue):添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。,26,5.2Response对象方法,containsHeader(Stringname):判断指定名字的HTTP文件头是否存在,并返回布尔值。从sendError(intsc):向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。setHeader(Stringname,Stringvalue):设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖。,27,setContenType(Stringtype):响应设置内容类型头。sendRedirect(URL):可以将用户重定向到一个不同的页面(URL)。sendRedirect(URL)方法通过返回特定的状态代码而起作用,当它被调用时,返回一个状态代码,然后在响应中定位,给新页面一个新地址。状态代码和定位头会自动把浏览器重定位到新页面。不过,用户通常不能被顺利重定位到新的页而,特别是老一些的浏览器,而且一些新版本的浏览器在自动响应定向作用状态代码时会有些问题,当浏览器无法自动响应状态代码时,会收到一些字段信息。,28,5.3Session对象方法,Session是一种服务器个别处理与记录用户端上网使用者信息的技术。当使用者与服务器联机时,服务器可以给每一个上网的使用者一个Session并设定其中的内容,这些Session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。Session对象的常用方法为:getAttribute(Stringname):获得指定名字的属性,如果该属性不存在,将会返回null。getAttributeNames():返回Session对象中存储的每个属性对象,结果集是一个Enumeration类的实例。,29,session对象,当客户端用户向服务器提出请求打开网页后,若该网页中包含了为用户建立session的程序代码,则便会产生session对象。,30,5.3Session对象方法,setAttribute(Stringname,java.lang.Objectvalue):设定指定名字的属性值,并且把它存储在Session对象中。isNew():判断目前Session是否为新的Session,若是则返回ture,否则返回false。getId():返回Session对象在服务器端的编号。每生成一个Session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别Session,并且正确的处理某一特定的Session及其提供的服务。,31,getCreationTime():返回Session对象被创建的时间,单位为毫秒。getLastAccessedTime():返回当前Session对象最后一次被操作的时间,时间的单位为毫秒。getMaxInactiveInterval():获取Session对象的生存时间,时间的单位为秒。setMaxInactiveInterval(intinterval):设置Session的有效时间(也叫超时时间),时间的单位为秒。removeAttribute(Stringname)“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的Session,旧的Session信息将会丢失。,32,Session对象期限,session和application相同,有其存在的期限。当发生以下四种情形其中之一时,session对象中的数据便会清空:用户关闭目前正在使用的浏览器程序。关闭网页服务器。用户未向服务器提出请求超过预设的时间,Tomcat服务器预设为30分钟。运行程序结束session。,33,存取session数据,建立session变量session.setAttribute(“变量名称”,变量內容)在session中设定变量数据:,34,存取session数据,返回session中的变量session.getAttribute(“变量名称”)返回所有session中的变量名称session.getAttributeNames()移除session中的变量session.removeAttribute(“变量名称”)移除sessionsession.invalidate(),35,session对象示例,session请输入您的姓名:,36,post1.jsp,post.jsp您的姓名是:您最喜欢的娱乐是:,37,post11.jsp,post1.jsp您的姓名是:您喜欢的娱乐是:,38,运行结果,39,提交后,40,输入值,41,再次提交(保存名字),42,Application对象,Application是一个所有在线用户共享的数据存取区,application中的变量数据在程序设定其值时被初始化,而当关闭网页服务器,或者超过预设时间而未有任何用户联机时自动消失。,43,存取application中的数据,建立application变量:application.setAttribute(“变量名称”,变量內容)返回application中的变量application.getAttribute(“变量名称”)移除application变量application.removeAttribute(“变量名称”)返回所有application变量application.getAttributeNames(),44,application-获取服务器与网页信息,45,application对象运行示例,application);out.println(peixun2.13.jspsMIMEtypeis:+application.getMimeType(peixun2.13.jsp)+);out.println(URLofpeixun2.13.jspis:+application.getResource(“/peixun2.13.jsp)+);out.println(getServerInfo()=+application.getServerInfo()+);out.println(application.getRealPath();application.log(AddaRecordtolog_file);%,46,运行结果,47,application对象实现网页计数器,网页计数器您是第位访问者!,48,运行结果(第一次访问),49,刷新一次,50,exception对象示例,ErrorpageloginAnerroroccuredinthebean.ErrorMessageis:,51,内置对象小结,全面介绍了JSP的几种内置对象。熟练使用这些内置对象是开发JSP应用程序的基本要求,尤其是对于request、session和application对象更是必须要掌握的。会使用对象所具有的方法,能熟练使用每一种对象的几种常用方法。,52,综合例子,表单用户注册用户名:密码:你喜欢:足球篮球,53,综合例子,性别:男女你的计算机CPUPIV1500Memory512M你计算机的操作系统,54,综合例子,你所在地:北京天津上海重庆,55,运行结果,56,表单的确认,客户端确认减少服务器负载缩短用户等待时间兼容性难服务器端确认统一确认兼容性强服务器负载重,57,客户端确认,采用javascript进行确认常用函数isBetweenisDateisTimeisDigitisEmailisEmptyisIntisReal,58,客户端确认例子,客户端确认用户登录用户名:密码:,59,客户端确认例子,functioncheckform(frm)varflag=true;if(.value=)alert(姓名不能为空,请输入值!);.focus();flag=false;returnflag;,60,运行结果,61,JSP与客户机的交互,从表单中获得参数返回参数表单的服务器端确认,62,从表单中获得参数,JSP通过request内置对象获取表单信息用不同的方法获取不同种类的信息获取参数的主要方法:getParameter()获取参数的值getParameterNames()获取参数的名称getParameterValues()获取多个值,63,getParameter(),可以获得文本框、文本区域、单选、多选的值表单中各元素的NAME属性是它的唯一标识,用它获取参数。参考peixun2.11.jsp及post.jsorequest.getParameter(User);,64,向客户端输出,使用内置对象outout.println(content)使用“=”参看peixun2.11.jsp和post.jspout.println(用户名:+User+);参看peixun2.14.jsp您是第位访问者!,65,表单的服务器端确认,在客户端不能用JSP进行确认分工:数据处理在服务器端实效性:客户端得到服务器确认后表明数据已经到达服务器客户端兼容性好缺点:加大服务器负载和用户等待时间,66,服务器端确认方法,采用Java类对表单数据进行复杂的检查采用JSP进行确认,67,服务器端确认的例子,服务器端确认用户登录用户名:密码:,68,loginAction.jsp,确认JSP);out.println(密码:+pwd+);else%,69,loginAction.jsp,用户名不能为空用户登录用户名:密码:,70,运行结果(TOMCAT),71,(未输入姓名)直接提交,72,输入用户名,73,输入用户名后提交,74,JSP的汉字问题的原理,客户端和服务器用gb2312HTTP传输编码用ISO8859_1服务器需要指示客户端文档的编码方式,75,JSP的汉字问题出现环节,客户端显示文档时的编码方式(由服务器中的JSP、Servlet指明)客户端发送汉字时自动转换为iso8859_1服务器中采用gb2312对汉字编码,接收到客户端汉字需要转换为gb2312服务器端将JSP转换为Servlet时自动将汉字转换为iso8859_1服务器端应该告诉客户端汉字的编码方式,76,JSP汉字问题的范围,JSP文件的汉字问题表单处理的汉字问题Servlet的汉字问题(以后讲解)JDBC的汉字问题(以后讲解),77,JSP文件的汉字问题,JSP中的汉字字符串在服务器端用gb2312在编译为Servlet时自动转换为iso8859_1汉字在传输中是正确的在没有特别指示下,浏览器中无法正确显示在HTML中指示浏览器文档的编码(myJSPindex.html)在JSP中指示JSP引擎文档的编码每个要显示汉字的JSP文档都应该包含该语句,78,JSP文件的汉字问题(JSPhanzi.jsp),JSP中的汉字问题,JSP中的汉字问题你好,79,JSP中增加编码指示后,JSP中的汉字问题,JSP中的汉字问题你好,80,表单处理中的汉字问题,表单处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论