第5章JSP主要内置对象.ppt

上传人:本田雅阁 文档编号:3430875 上传时间:2019-08-24 格式:PPT 页数:87 大小:1.41MB
返回 下载 相关 举报
第5章JSP主要内置对象.ppt_第1页
第1页 / 共87页
第5章JSP主要内置对象.ppt_第2页
第2页 / 共87页
第5章JSP主要内置对象.ppt_第3页
第3页 / 共87页
第5章JSP主要内置对象.ppt_第4页
第4页 / 共87页
第5章JSP主要内置对象.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《第5章JSP主要内置对象.ppt》由会员分享,可在线阅读,更多相关《第5章JSP主要内置对象.ppt(87页珍藏版)》请在三一文库上搜索。

1、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,页

2、面对象 exception,例外对象,6,7,request和response,“request” 对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值 “response” 对象代表的是对客户端的响应,也就是说可以通过“response”对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out” 对象即可。,8,5.1 Requ

3、est对象方法,Request内置对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表。它通常是HttpServlet-Request的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有:,9,5.1 Request对象方法,getCookies():返回客户端的cookie对象,结果是一个cookie数组。 getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么

4、当create变量为true,则创建一个HttpSession对象并返回;反之,返回null。 getHeader(String name):获得http协议定义的传送文件头信息 。,10,getAttribute(String name):返回name指定的属性值,若不存在指定的属性,就返回null。 getattributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。 getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例。getHeaders(Strin

5、g name):返回指定名字的request header的所有值,结果集是一个Enumeration(枚举)类的实例。 getMethod():返回客户端向服务器端传送数据的方法,一般方法有GET、POST、PUT等类型。 getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。,11,getparameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返

6、回null。 getParameterValues(String name):以字符串数组的形式返回指定参数所有值。 getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。 getRequestURI():获得发出请求字符串的客户端地址。 getServletPath():获得客户端所请求的脚本文件的文件路径。 setAttribute(String name,Java.lang.Object o):设定名字为name的request参数值,该值由Object类型的o指定。 getServerName():获得服务器的名字,如果没有设定服务器名,则返回服

7、务器IP地址。,12,getServerPort():获得服务器的端口号。 getRemoteAddr():获得客户端的IP地址。 getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。 getProtocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。 getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。 getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。 getInputStream():以二进制的形式将客户

8、端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。,13,isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false. getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。 getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。 getContextPath():返回环境路径。对于JSP来说,一般是当前Web应用程序的根目录。 isRequestedS

9、essionIdValid():返回一个指示客户端请求发送Session ID是否仍然有效的布尔值。 isRequestedSessionIdFromCookie():返回一个指示客户端请求发送Session ID是否存在于Cookie中的布尔值。 isRequestedSessionIdFromURL():返回一个指示客户端请求发送Session ID是否存在于URL中的布尔值。,14,request对象示例, 姓名 ,15,request对象示例: Hello_req.jsp, 你好, , 今天是 号,星期 ,输入: 独孤求败,16,request对象示例(输出结果), 你好, 独孤求败,

10、 今天是 9号,星期1 ,17,常用request请求对象,1getAttribute 原型:public java.lang.Object getAttribute(java.lang.String name) 说明:以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。 ( Servlet为服务器端小程序,所有JSP页面都事先翻译成Servlet后才执行),18,request请求对象,如果所给名称的属性不存在将返回空值。 属性名应该遵循和包命名方式同样的约定,不要采用如“java.*”、“ javax.*”及 “sun.*”.这样的命名。 参数:na

11、me 一个标示属性名的字符串 返回值:一个包含属性值的对象,当属性不存在是为空。,19,request对象使用示例, request 用户登录 用户名: 密码: ,20,浏览器类型: IE Netscape 资料选项: 标题 详细 ,21,Post.jsp代码, test “); out.println(“密码:“+request.getParameter(“pwd“)+“); out.println(“浏览器:“+request.getParameter(“radio“)+“); out.println(“标题:“+request.getParameter(“check1“)+“); out

12、.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.print

13、ln(“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(“get

14、Method()=“+request.getMethod()+“); out.println(“getServletPath()=“+request.getServletPath()+“); out.println(“isRequestedSessionIdValid()=“+request.isRequestedSessionIdValid()+ “); % ,23,运行结果,24,25,5.2 Response对象方法,Response对象实现HttpServletResponse接口,可对客户的请求做出动态的响应,向客户端发送数据,如Cookie、HTTP文件头信息等,一般是HttpSe

15、rvlet.Response类或其子类的一个对象。该对象的常用方法为: addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个Cookie。 addHeader(String name,String value):添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。,26,5.2 Response对象方法,containsHeader(String name):判断指定名字的HTTP文件头是否存在,并返回布尔值。 从send

16、Error(int sc):向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。 setHeader(String name,String value):设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖。,27,setContenType(String type):响应设置内容类型头。 sendRedirect(URL):可以将用户重定向到一个不同的页面(URL)。sendRedirect(URL)方法通过返回特定的状态代码而起作用,当它被调用时,返回一个状态代码,然后在响应中定位,给新页面一个新地址。状态代码和定位头会自动把浏览器重定位到新页

17、面。不过,用户通常不能被顺利重定位到新的页而,特别是老一些的浏览器,而且一些新版本的浏览器在自动响应定向作用状态代码时会有些问题,当浏览器无法自动响应状态代码时,会收到一些字段信息。,28,5.3 Session对象方法,Session是一种服务器个别处理与记录用户端上网使用者信息的技术。当使用者与服务器联机时,服务器可以给每一个上网的使用者一个Session并设定其中的内容,这些Session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。 Session对象的常用方法为: getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回

18、null。 getAttributeNames():返回Session对象中存储的每个属性对象,结果集是一个Enumeration类的实例。,29,session 对象,当客户端用户向服务器提出请求打开网页后,若该网页中包含了为用户建立session的程序代码,则便会产生session 对象。,30,5.3 Session对象方法,setAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在Session对象中。 isNew():判断目前Session是否为新的Session,若是则返回ture,否则返回false。 g

19、etId():返回Session对象在服务器端的编号。每生成一个Session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别Session,并且正确的处理某一特定的Session及其提供的服务。,31,getCreationTime():返回Session对象被创建的时间,单位为毫秒。 getLastAccessedTime():返回当前Session对象最后一次被操作的时间,时间的单位为毫秒。 getMaxInactiveInterval():获取Session对象的生存时间,时间的单位为秒。 setMaxInactiveInterval(int interv

20、al):设置Session的有效时间(也叫超时时间),时间的单位为秒。 removeAttribute(String name)“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看作一个新的用户,此时,服务器将创建一个新的Session,旧的Session信息将会丢失。,32,Session对象期限,session和application相同,有其存在的期限。当发生以下四种情形其中之一时,session对象中的数据便会清空 : 用户关闭目前正在使用的浏览器程序。 关闭网页服务器。 用户未向服务器提出请求超过预设的时间,Tomcat服务器预设为30分

21、钟。 运行程序结束session。,33,存取 session 数据,建立session变量 session.setAttribute(“变量名称”,变量內容) 在session中设定变量数据: ,34,存取 session 数据,返回session中的变量 session.getAttribute(“变量名称”) 返回所有session中的变量名称 session.getAttributeNames() 移除session中的变量 session.removeAttribute(“变量名称”) 移除session session.invalidate(),35,session对象示例, se

22、ssion 请输入您的姓名: ,36,post1.jsp, post.jsp 您的姓名是: 您最喜欢的娱乐是: ,37,post11.jsp, post1.jsp 您的姓名是: 您喜欢的娱乐是: ,38,运行结果,39,提交后,40,输入值,41,再次提交(保存名字),42,Application 对象,Application 是一个所有在线用户共享的数据存取区,application中的变量数据在程序设定其值时被初始化,而当关闭网页服务器,或者超过预设时间而未有任何用户联机时自动消失 。,43,存取application中的数据,建立application变量: application.se

23、tAttribute(“变量名称”,变量內容) 返回application中的变量 application.getAttribute(“变量名称”) 移除application变量 application.removeAttribute(“变量名称”) 返回所有application变量 application.getAttributeNames(),44,application-获取服务器与网页信息,45,application对象运行示例, application “); out.println(“peixun2.13.jsps MIME type is:“+application.get

24、MimeType(“peixun2.13.jsp“) +“); out.println(“URL of peixun2.13.jsp is: “+application.getResource(“/peixun2.13.jsp“)+“); out.println(“getServerInfo()=“+application.getServerInfo()+“); out.println(application.getRealPath(“ “); application.log(“Add a Record to log_file“); % ,46,运行结果,47,application对象实现网

25、页计数器, 网页计数器 您是第位访问者! ,48,运行结果(第一次访问),49,刷新一次,50,exception对象示例, Error page login An error occured in the bean. Error Message is: ,51,内置对象小结,全面介绍了JSP的几种内置对象。熟练使用这些内置对象是开发JSP应用程序的基本要求,尤其是对于request、session和application对象更是必须要掌握的。 会使用对象所具有的方法,能熟练使用每一种对象的几种常用方法。,52,综合例子, 表单 用户注册 用户名: 密码: 你喜欢: 足球 篮球,53,综合例子

26、, 性别: 男 女 你的计算机 CPU PIV 1500 Memory 512M 你计算机的操作系统 ,54,综合例子, 你所在地: 北京 天津 上海 重庆 ,55,运行结果,56,表单的确认,客户端确认 减少服务器负载 缩短用户等待时间 兼容性难 服务器端确认 统一确认 兼容性强 服务器负载重,57,客户端确认,采用javascript进行确认 常用函数 isBetween isDate isTime isDigit isEmail isEmpty isInt isReal,58,客户端确认例子, 客户端确认 用户登录 用户名: 密码: ,59,客户端确认例子, function check

27、form(frm) var flag=true; if(frm.name.value=“) alert(“姓名不能为空,请输入值!“); frm.name.focus(); flag=false; return flag; ,60,运行结果,61,JSP与客户机的交互,从表单中获得参数 返回参数 表单的服务器端确认,62,从表单中获得参数,JSP通过request内置对象获取表单信息 用不同的方法获取不同种类的信息 获取参数的主要方法: getParameter() 获取参数的值 getParameterNames() 获取参数的名称 getParameterValues() 获取多个值,63

28、,getParameter(),可以获得文本框、文本区域、单选、多选的值 表单中各元素的NAME属性是它的唯一标识,用它获取参数。 参考peixun2.11.jsp及post.jso request.getParameter(“User“);,64,向客户端输出,使用内置对象out out.println(content) 使用“=” 参看peixun2.11.jsp和post.jsp out.println(“用户名:“ +User+“); 参看peixun2.14.jsp 您是第位访问者!,65,表单的服务器端确认,在客户端不能用JSP进行确认 分工:数据处理在服务器端 实效性:客户端得到

29、服务器确认后表明数据已经到达服务器 客户端兼容性好 缺点:加大服务器负载和用户等待时间,66,服务器端确认方法,采用Java类对表单数据进行复杂的检查 采用JSP进行确认,67,服务器端确认的例子, 服务器端确认 用户登录 用户名: 密码: ,68,loginAction.jsp, 确认JSP “); out.println(“密码:“+pwd+“); else %,69,loginAction.jsp,用户名不能为空 用户登录 用户名:“ 密码:“ ,70,运行结果(TOMCAT),71,(未输入姓名)直接提交,72,输入用户名,73,输入用户名后提交,74,JSP的汉字问题的原理,客户端和

30、服务器用gb2312 HTTP传输编码用ISO8859_1 服务器需要指示客户端文档的编码方式,75,JSP的汉字问题出现环节,客户端显示文档时的编码方式(由服务器中的JSP、Servlet指明) 客户端发送汉字时自动转换为iso8859_1 服务器中采用gb2312对汉字编码,接收到客户端汉字需要转换为gb2312 服务器端将JSP转换为Servlet时自动将汉字转换为iso8859_1 服务器端应该告诉客户端汉字的编码方式,76,JSP汉字问题的范围,JSP文件的汉字问题 表单处理的汉字问题 Servlet的汉字问题(以后讲解) JDBC的汉字问题(以后讲解),77,JSP文件的汉字问题,

31、JSP中的汉字字符串在服务器端用gb2312 在编译为Servlet时自动转换为iso8859_1 汉字在传输中是正确的 在没有特别指示下,浏览器中无法正确显示 在HTML中指示浏览器文档的编码(myJSPindex.html) 在JSP中指示JSP引擎文档的编码 每个要显示汉字的JSP文档都应该包含该语句,78,JSP文件的汉字问题(JSPhanzi.jsp), JSP中的汉字问题 , JSP中的汉字问题 你好 ,79,JSP中增加编码指示后, JSP中的汉字问题 , JSP中的汉字问题 你好 ,80,表单处理中的汉字问题,表单处理涉及到客户端和服务器的完整交互过程 在客户端和服务器是gb2

32、312,传输用ISO8859_1 在服务器端接收到客户端数据时需要转换为gb2312后进行处理,方法 name=new String(name.getBytes(“ISO8859_1“), “gb2312“); 服务器端指示客户端汉字的显示编码 ,81,表单处理的汉字问题, 表单处理的汉字问题 用户登录 用户名: , 表单处理的汉字问题 用户登录 用户名: ,82,处理过程(修改前), 表单中汉字的处理 “); % , 表单中汉字的处理 用户名:? ,83,处理过程(修改后), 表单中汉字的处理 “); % , 表单中汉字的处理 用户名:测试 ,84,上机:练习JSP编程,分析softshop

33、的首页及用户认证 编写综合练习的首页、认证和注册页面 注意汉字问题,85,综合练习,综合练习:我的网上商店myshop,具有以下功能 用户登录、注册 口令空转向loginError.jsp(采用) 建立web应用myshop,参考softshop目录结构 体会表单的两种发送方法 页面设计: 完成首页、用户登录、注册(index.jsp、login.jsp、registor.jsp) 首页index.jsp包括简介、商品分类、新注册用户、登录用户计数,按钮:用户登录、注册 用户计数采用application对象 login.jsp包括输入用户名、口令的表单,用户名是否为空由服务器端确认,口令是否

34、为空由客户端确认,处理表单的jsp为check.jsp,当口令为空时转向显示错误页面,登录成功时显示用户名和口令(表单采用GET方法发送),86,综合练习,registor.jsp中录入用户信息,综合使用表单的功能: form标记(表单采用POST方法发送) text:用户名、口令 radio按钮:性别 select:出生年月、所在地、行业 其中会使用到option标记 checkbox:选择兴趣 textarea:自我介绍 按钮:提交和重新输入 处理registor.jsp的jsp为record.jsp, record.jsp接收text、textarea、radio、select的数据,并显示出来(注意汉字问题)。 record.jsp中用session存储新注册的用户名。 record.jsp包含返回首页index.jsp的超链接 index.jsp中用session提取新注册用户并显示,87,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1