内蒙古科技大学 教案 第三章JSP内置对象 有些成员变量不用声明就可以在JSP页面的脚本(Java程序片和Java表达式 中使用,这就是所谓的内置对象。 二、内置对象有:resquest、response、session、application、out。 §3.1 request对象 一、内置对象 equest对象是实现了ServletRequest接口类的一个实例 (一)request对象获取客户提交的信息 1.表单的组成对象:输入字段、提交按钮、处理程序 <form action=“.”method-"get/post'”name=“.> - 2.表单的几个重要属性: aciton:表示按下提交钮之后,指定Sever端处理这个输入表单的程序。 method:表示表单数据传送到Server的方式,其设置值有get和post两种, ype:表单类型 name:表单 3.get与poa的区别 (I)gt方式以显式提交表单,可以在URL(地址栏)看见我们传的参数:pot方 式是隐式传值,不可见 或据量较,不能大于2KB。P0传送的数据量较大,一 (3)gt安全性非常低,post安全性较高 (4)get执行效率却比Post方法好。 4.读取数据的方法 ()获取客户提交的信息最常用的方法是; (2)reques 二、request对象处 汉字信息 g到 (一)当用r©quest对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉 字字符的信息必须进行特殊的处理。 (二)首先,将获取的字符串用S0-88591进行编码,并将编码存放到一个字节数组 中,然后再将这个数组转化成字符串对象。 String te Content=requestgetParameter("boy) byte b[]=textContent.getBytes("ISO-8859-1"). textContent=new String(b): 三、request对象常用方法举例 (一)getProtocol():获取请求使用的通信协议,如http/L.1等。 (仁)getServletPath():获取请求的JSP页面所在的目录。 (三)geiContentLength():获取HTTP请求的长度。 (四)getMethod():获取表单提交信息的方式,如POST或GET。 第1页
内 蒙 古 科 技 大 学 教 案 第 1 页 第三章 JSP 内置对象 一、有些成员变量不用声明就可以在 JSP 页面的脚本(Java 程序片和 Java 表达式) 中使用,这就是所谓的内置对象。 二、内置对象有:resquest、response、session、application、out。 §3.1 request 对象 一、内置对象 request 对象是实现了 ServletRequest 接口类的一个实例. (一) request 对象获取客户提交的信息 1. 表单的组成对象:输入字段、提交按钮、处理程序 <form action=“.” method=“get/post” name=“.”> . <input type=“submit”> </form> 2. 表单的几个重要属性: aciton:表示按下提交钮之后,指定 Sever 端处理这个输入表单的程序。 method:表示表单数据传送到 Server 的方式,其设置值有 get 和 post 两种。 type:表单类型 name:表单名称 3. get 与 post 的区别 (1)get 方式以显式提交表单,可以在 URL(地址栏)看见我们传的参数;post 方 式是隐式传值,不可见 (2)get 传送的数据量较小,不能大于 2KB。post 传送的数据量较大,一般被默认为 不受限制 (3)get 安全性非常低,post 安全性较高。 (4)get 执行效率却比 Post 方法好。 4. 读取数据的方法 (1)获取客户提交的信息最常用的方法是: (2)request.getParameter(String s) 二、request 对象处理汉字信息 (一) 当用 request 对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉 字字符的信息必须进行特殊的处理。 (二) 首先,将获取的字符串用 ISO-8859-1 进行编码,并将编码存放到一个字节数组 中,然后再将这个数组转化成字符串对象。 String textContent=request.getParameter("boy"); byte b[]=textContent.getBytes("ISO-8859-1"); textContent=new String(b); 三、request 对象常用方法举例 (一) getProtocol():获取请求使用的通信协议,如 http/1.1 等。 (二)getServletPath():获取请求的 JSP 页面所在的目录。 (三)getContentLength():获取 HTTP 请求的长度。 (四)getMethod():获取表单提交信息的方式,如 POST 或 GET
内蒙古科技大学 教 案 (五)getRemoteAddr():获取客户的IP地址。 (六)getRemoteHost(:获取客户机的名称(如果获取不到,就获取P地址)。 :获取服务器的名称 (八)getServerPort(O:获取服务器的端口号 (九)getParameter0):返回包含指定参数的单独值的字符串 四、request对象用户注册 (一)散列表:使用相关关键字查找被存储的数据项的一种数据结构。关键字不可以发 生逻辑冲突。散列表在他需要更多存储空间时会自动增大容量。HashTable通常称为哈 希表,它表示健(key)值(value)对的集合 l.HashTable的构造函数:HashTable(0/初始化为0个元素的空实例:Hash Table(32)W 初始化为32个元素的新实例。 例子:HashTable myHash Tablel=new hash Tabler: Hash Table myHashTablel =new HashTable(5). 2,插入相应的键和值组成的元素 myHashTable.put(1."H"); myHashTable put(2 "e") myHashTable.put("int".5) myHashTable ut“double"3g 相应的健和值维成 元素 myHash Table["int]=3 myHashTablef"double"]=1.5: 4.输出相应的键和值组成的元素 Console writeline(myHashTablel11) Console.WriteLine(myHashTable[2]) Console.WriteLine(myHashTable["int). Console.WriteLine(myHashTable["double"): 5.删除操作: HashTable Clearo 刚除所有元素,不带任何参数,清空后Hash Table的元素个 数为0。 示例:myHashTable.Clear(( HashTable.Remove(∥除指定"键"所在的元素。 其定义如下: public virtual void Remove(Obiect kev) 示例:myHashTable.Remove("int"方 6.Hashtable的查询 Hashtable.Contains /判断HashTable中是否包含指定"键 Hashtable.ContainsKey 判断Hash'Table中是否包含指定“键” Hashtable.ContainsValue∥判断HashTable中是否包含指定值。 示例: myHashTable.Contains(1) myHashTable.ContainsKey(6) myHashTable.ContainsValue(3.9) 第2页
内 蒙 古 科 技 大 学 教 案 第 2 页 (五)getRemoteAddr():获取客户的 IP 地址。 (六)getRemoteHost():获取客户机的名称(如果获取不到,就获取 IP 地址)。 (七)getServerName():获取服务器的名称。 (八)getServerPort():获取服务器的端口号。 (九)getParameter ()::返回包含指定参数的单独值的字符串 四、request 对象用户注册 (一)散列表:使用相关关键字查找被存储的数据项的一种数据结构。关键字不可以发 生逻辑冲突。散列表在他需要更多存储空间时会自动增大容量。HashTable 通常称为哈 希表,它表示键(key)/值(value)对的集合。 1.HashTable 的构造函数:HashTable() //初始化为 0 个元素的空实例:HashTable(32) // 初始化为 32 个元素的新实例。 例子: HashTable myHashTable1 = new HashTable(); HashTable myHashTable1 = new HashTable(5); 2.插入相应的键和值组成的元素 myHashTable. put(1,"H"); myHashTable. put(2,"e"); myHashTable. put(“int”,5); myHashTable. put(“double”,3.9); 3.修改相应的键和值组成的元素 myHashTable["int"] = 23; myHashTable["double"] = 1.5; 4.输出相应的键和值组成的元素 Console.WriteLine(myHashTable[1]); Console.WriteLine(myHashTable[2]); Console.WriteLine(myHashTable[“int”]); Console.WriteLine(myHashTable[“double”]); 5.删除操作: HashTable.Clear() //删除所有元素,不带任何参数,清空后 HashTable 的元素个 数为 0。 示例:myHashTable.Clear() HashTable.Remove() //删除指定“键”所在的元素。 其定义如下: public virtual void Remove(Object key) 示例:myHashTable.Remove("int"); 6.Hashtable 的查询 Hashtable.Contains //判断 HashTable 中是否包含指定“键”。 Hashtable.ContainsKey //判断 HashTable 中是否包含指定“键”。 Hashtable.ContainsValue //判断 HashTable 中是否包含指定值。 示例: myHashTable.Contains(1) myHashTable.ContainsKey(6) myHashTable.ContainsValue(3.9);
内蒙古科技大学 教 案 8.Hash Table表的优点 HashTable中的key/value均为object类型,所以HashTable可以支持任何类型的 key/value键/值对 HashTable的优点就在于其索引的方式,速度非常快。 (二)散列表和数组的区别: 1.哈希表是通过元素ky直接查找元素存储位置的数据结构:数组是通过下标可以 直接访问到下标对应位置上元素的数据结构: 对应的元素上去:。但是由于散射函数的作用 3.哈希表:优点:直接访问到ky对应的元素: 缺点:占用空间很大: 数组: 优点:结构紧漆: 缺点:不能直接访问到关键码值所对应的元素 五、request对象获取HTML表单提交的数据 表单的一般格式: ■例:radio.jsp answer.jsp ■例:select.isD sum.jsp §3.2 response对象 一、r心sponse对象对客户的请求做出响应,向客户端发送数据 (一)由于page指令只能为contentType属性指定一个值来决定响应的MME类 型,如果想动态的改变这个属性的值来响应客户,就要使用response对象的 setContentType(Strings)方法来改变contentType的属性值 (二)该方法动态设置响应的MME类型, 般MIME 类型可以取text/htm application/msword (三)response重定向 可以使用response对象的sendRedirect(URLurl)方法实现客户的重定向。 二、request和re rqut是客户端向服务端发出请求,在服务端可以获得客户端提交过来的参数 r©p0c用于动态响应客户端请求,并将动态生成的响应结果返回到客户端测览 §3.3 session对象 、伸用会话记录连接的有关信息 二、客户打开浏览馨连接服务馨的某个服务目录,到客户关闭浏览器离开服务器称 个会话。对一个页面的请求称为一个TCPP连接;一个会话包含多个连接。 三、服务器通过如下办法知道这是同一个客户.-session(会活)对象。 (一)session对象的id 1.当一个客户首次访问服务目录中的一个JSP页面时,JSP引擎产生一个session 对象,这个对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息 Session对象被分配 个String类型的id号,JSP引擎将该id号发送给 户端,存放有 客户的cookies中,这样,session对象就和客户端建立起一一对应的关系。 第3页
内 蒙 古 科 技 大 学 教 案 第 3 页 8.HashTable 表的优点 HashTable 中的 key/value 均为 object 类型,所以 HashTable 可以支持任何类型的 key/value 键/值对。 HashTable 的优点就在于其索引的方式,速度非常快。 (二)散列表和数组的区别: 1.哈希表是通过元素 key 直接查找元素存储位置的数据结构;数组是通过下标可以 直接访问到下标对应位置上元素的数据结构; 2.哈希表可以直接访问到元素 key 对应的元素上去;。但是由于散射函数的作用, 元素不能占满整个哈希表,哈希表不是每一个位置都有元素的; 3.哈希表:优点:直接访问到 key 对应的元素; 缺点:占用空间很大; 数组: 优点:结构紧凑; 缺点:不能直接访问到关键码值所对应的元素; 五、request 对象获取 HTML 表单提交的数据 表单的一般格式: ◼ 例:radio.jsp answer.jsp ◼ 例:select.jsp sum.jsp §3.2 response 对象 一、response 对象对客户的请求做出响应,向客户端发送数据 (一) 由于 page 指令只能为 contentType 属性指定一个值来决定响应的 MIME 类 型,如果想动态的改变这个属性的值来响应客户,就要使用 response 对象的 setContentType(String s)方法来改变 contentType 的属性值。 (二) 该方法动态设置响应的 MIME 类型,一般 MIME 类型可以取 text/html; application/msword 等. (三)response 重定向 可以使用 response 对象的 sendRedirect(URL url)方法实现客户的重定向。 二、request 和 response 区别: request 是客户端向服务端发出请求,在服务端可以获得客户端提交过来的参数 response 用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器 中 §3.3 session 对象 一、使用会话记录连接的有关信息。 二、客户打开浏览器连接服务器的某个服务目录,到客户关闭浏览器离开服务器称作 一个会话。对一个页面的请求称为一个 TCP/IP 连接;一个会话包含多个连接。 三、服务器通过如下办法知道这是同一个客户-session(会话)对象。 (一)session 对象的 id 1.当一个客户首次访问服务目录中的一个 JSP 页面时,JSP 引擎产生一个 session 对象,这个对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息。 Session 对象被分配一个 String 类型的 id 号,JSP 引擎将该 id 号发送给客户端,存放在 客户的 cookies 中,这样,session 对象就和客户端建立起一一对应的关系
内蒙古科技大学 教 案 Cookies就是服务器暂存放在你的电脑里的资料(.wt格式的文本文件),好让服务 器用来辨认你的计算机。cookies右什么作用呢? (山现在上许多网站都用新用户注册这一项,有时注册了一下,等到下次再访问该 站点时,会自动识别到你 (2)网站可以利用cookies跟踪统计用户访问该网站的习惯,比如什么时间访问, 访问了哪些页面,在每个网页的停留时间等 (3)生存周期 C0oke可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问 同一网站时, 会发现不必输入用户名和密码就已经登录了。 Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在运 个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存 周期设置为0"或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用广 信息,加安全 ()④使用和禁用Cookie 用户可以改变汹览墨的设置,以使用或者禁里Cookies。 (5)微软Internet Explorer 工具>Internet选项>隐私页,调节滑块或者点击“高级”,进行设置 2直到攻户关闭浏览器或这个邓s0n对象达到最大生存时间,服务婴岩该客户的 对象被取消,和客户的会话对应关系消失。 ·当客户重新打开测览器再连接到该服务目录时,服务器为该客户再创建一个新 的session对象. ·同一个客户在不同的服务目录中的s心ssion是互不相同的。 二)ession对象与URL重写 1 session对象 ()Session对象是否与客户建立起 一一对应的关系依赖于客户的浏览器是否支持 Cookie。如果客户端不支持Cookie,.那么客户在不同的网页之间的session对象可能是 互不相同的。 (2)可以通过URL重写来实现session对象的唯一性 2URL重写 当客户 一个页面重新连接到另一个页面,通过向这个新的UL添加参数,把 sion对象的id传带过去,这样就可以保障客户在该网站各个页面中的session对象 是完全相同的。 使用response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。 (三)session对象的常用方法 e(s ing Key.Object obj session对象类似于散列表,可以调用该方法将参数Object指定的对象o添加到 ession对象中,并为其添加的对象指定了一个索引关键字Ky如果添加的两个对象的 关键字相同,则先前添加的对象被清除 object是JAVA类中的超类~任何JAVA类都是object类的子类,所以当object 作为参数传值时,你可以用任意类型作为参数传进去。 2.public Object getAttribute(String y 获取session对象中含有的关键字是Ky的对象由于任何对象都可以添加到 第4页
内 蒙 古 科 技 大 学 教 案 第 4 页 Cookies 就是服务器暂存放在你的电脑里的资料(.txt 格式的文本文件),好让服务 器用来辨认你的计算机。cookies 有什么作用呢? (1)现在上许多网站都用新用户注册这一项,有时注册了一下,等到下次再访问该 站点时,会自动识别到你; (2)网站可以利用 cookies 跟踪统计用户访问该网站的习惯,比如什么时间访问, 访问了哪些页面,在每个网页的停留时间等 (3)生存周期 Cookie 可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问 同一网站时,用户会发现不必输入用户名和密码就已经登录了。 Cookie 在生成时就会被指定一个 Expire 值,这就是 Cookie 的生存周期,在这 个周期内 Cookie 有效,超出周期 Cookie 就会被清除。有些页面将 Cookie 的生存 周期设置为“0”或负值,这样在关闭浏览器时,就马上清除 Cookie,不会记录用户 信息,更加安全。 (4)使用和禁用 Cookie 用户可以改变浏览器的设置,以使用或者禁用 Cookies。 (5)微软 Internet Explorer 工具 > Internet 选项 > 隐私页 ,调节滑块或者点击“高级”,进行设置. 2.直到客户关闭浏览器或这个 session 对象达到最大生存时间,服务器端该客户的 session 对象被取消,和客户的会话对应关系消失。 ·当客户重新打开浏览器再连接到该服务目录时,服务器为该客户再创建一个新 的 session 对象。 ·同一个客户在不同的服务目录中的 session 是互不相同的。 (二)session 对象与 URL 重写 1.session 对象 (1)Session 对象是否与客户建立起一一对应的关系依赖于客户的浏览器是否支持 Cookie。如果客户端不支持 Cookie,那么客户在不同的网页之间的 session 对象可能是 互不相同的。 (2)可以通过 URL 重写来实现 session 对象的唯一性。 2.URL 重写 (1) 当客户从一个页面重新连接到另一个页面,通过向这个新的 URL 添加参数,把 session 对象的 id 传带过去,这样就可以保障客户在该网站各个页面中的 session 对象 是完全相同的。 使用 response 对象调用 encodeURL()或 encodeRedirectURL()方法实现 URL 重写。 (三)session 对象的常用方法 1.public void setAttribute(String Key,Object obj) session 对象类似于散列表,可以调用该方法将参数 Object 指定的对象 obj 添加到 session 对象中 ,并为其添加的对象指定了一个索引关键字 Key.如果添加的两个对象的 关键字相同,则先前添加的对象被清除. object 是 JAVA 类中的超类~任何 JAVA 类都是 object 类的子类,所以当 object 作为参数传值时,你可以用任意类型作为参数传进去。 2. public Object getAttribute(String Key) 获取 session 对象中含有的关键字是 Key 的对象.由于任何对象都可以添加到
内蒙古科技大学 教 案 sess1on对象中,因此,该方法取回对象时,应进行强制类型转换 3.public Enumeratio Atc个牧举对象该枚举对象使用pextElement方法宠' 0对象调用该方法产生 历session对象所含有的全部对象 4.public long getCreationTime() sss1on对象调用该方法要以获取对象创建的时间,单位是毫秒从1970年7月 日午夜起至该对象创建时刻所走过的毫秒数) 5.p ong getLastA 6.public int getMaxInactivelnterval() 得到允许session对象处于非活动状态的最长时间, 7 public vodi n) 设置允许sCs1On对象处于非活动状态的最长时间(单位是秒) 8.publicvoid removeAuribute(String Key) 从当前session对象中刚除关健字是key的对象。 9.public String getld() 获取ession对象的编号 10.invalidate() 使得session对象无效 (四)计数器 1.使用session对象设计计数器时,可以禁止客户通过刷新页面增加计数。 2.当客户刷新页面时,可以使用session对象的public boolean isNew()方法判断是否 是同一个客户。因为客户刷新页面不会改变服务器分配给该客户的session对象。 §3.40ut对象 0t对象是一个输出流,用来向客户端输出数据 一、out对象的数据输出方法 (一(boolean),out.printin(booean)用于输出一个布尔值。 out.printin(char) ()outprint(double),out.printin(double) 铃出一个双精度的浮点数。 (out print(float),out println(float 用于输出一个单精度的浮点数。 out.printin(long) (六)out.print(String) (out.println(String) 输出一个字符串对象的内容 (九)out.flush(0 第5页
内 蒙 古 科 技 大 学 教 案 第 5 页 session 对象中,因此, 该方法取回对象时,应进行强制类型转换. 3 .public Enumeration getAttributeName() session对象调用该方法产生一个枚举对象.该枚举对象使用nextElement()方法遍 历 session 对象 所含有的全部对象. 4.public long getCreationTime() session 对象调用该方法要以获取对象创建的时间.单位是毫秒(从 1970 年 7 月 1 日午夜起至该对象创建时刻所走过的毫秒数). 5. public long getLastAccessedTime() 获取当前 session 对象最后一次被操作的时间. 6.public int getMaxInactiveInterval() 得到允许 session 对象处于非活动状态的最长时间. 7. public vodi setMaxInactiveInterval(int n) 设置允许 session 对象处于非活动状态的最长时间.(单位是秒) 8.public void removeAttribute(String Key) 从当前 session 对象中删除关键字是 key 的对象. 9. public String getId() 获取 session 对象的编号. 10.invalidate() 使得 session 对象无效. (四)计数器 1.使用 session 对象设计计数器时,可以禁止客户通过刷新页面增加计数。 2.当客户刷新页面时,可以使用 session 对象的 public boolean isNew()方法判断是否 是同一个客户。因为客户刷新页面不会改变服务器分配给该客户的 session 对象。 §3.4 out 对象 out 对象是一个输出流,用来向客户端输出数据 一、 out 对象的数据输出方法 (一)out.print(boolean),out.println(boolean)用于输出一个布尔值。 (二)out.print(char),out.println(char) 输出一个字符。 (三)out.print(double),out.println(double) 输出一个双精度的浮点数。 (四)out.print(float),out.println(float) 用于输出一个单精度的浮点数。 (五)out.print(long),out.println(long) 输出一个长整型数据。 (六)out.print(String), (七)out.println(String) 输出一个宇符串对象的内容。 (八)out.newLine() 输出一个换行符。 (九)out.flush()