《五章jsp内置对象.ppt》由会员分享,可在线阅读,更多相关《五章jsp内置对象.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、五章jsp内置对象 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望提交手段通常包括通过文本框、列表、文本区等。例如:该表单使用post方法向tom.jsp页面提交信息,提交信息的手段是在文本框输入信息Request对象可以使用getParameter(String s)方法获取该表单通过text提交的信息。比如;Request.getParameter(“boy”);1.1 获取客户提交的信息Example3_1.jsp在这个例子中Example3_1.jsp通过
2、表单tree.jsp提交信息I am a student;tree.jsp通过request对象获取表单提交的信息,包括text的值以及按钮的值。Example.3_2.jsp 通过自己向自己来提交和获取信息。1.2 处理汉字信息当用request对象获取客户提交的汉字字符时,会出现乱码问题,其解决方法是将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。如下:String str=request.getParameter(“girl”);byte b=str.getBytes(“ISO-8859-1”);str=new Strin
3、g(b);Example3_3.jsp1.3 常用方法举例1.getProtocol()获取客户向服务器提交信息所使用的通信协议2.getServletPath获取客户请求的jsp页面文件的目录3.getContentLength()获取客户提交的整个信息的长度4.getMethod()获取客户提交信息的方式5.getHeader(String s)获取Http头文件中由参数s指定的头名字的值:比如accpet,referer,content-type,accpt-encoding6.getHeaderNames()获取头名字的一个枚举7.getRomateAddr()获取客户的ip地址8.g
4、etServerName()获取服务器的名字9.getRomateHost()获取客户机的名字10.getHeaders(String s)获取头文件中指定头名字的全部值得一个枚举11.getServerPort()获取服务器的端口号12.getParameterNames()Example3_4.jsp1.4 获取HTML表单提交的数据一个表单的数据提交手段部分经常包括如下的标记符号:A.输入对象的GUI类型可以是:text、radio、checkbox、password、submit、reset radio.jspB.、格式在select中增加size属性的值就变成滚动列表。select.
5、jspC.1.5 表格获取数据表格由 标记定义,一般格式:单元格中的数据 单元格中的数据 Table.jsp2.response对象2.1 动态相应contentType属性当一个客户请求访问一个jsp页面时,如果该页面用page指令设置页面的contentType属性值为text/html,那么jsp引擎将按照这种属性做出相应,将页面的静态部分返回给客户。如果想动态的改变这个属性的值来相应客户,就需要使用response对象的setContentType(String s)方法来改变contentType的属性值,格式如下:public void setContentType(String
6、s);该方法动态设置相应的MIME属性,参数s可取text/html,text/plain,application/x-msexcel,application/msword等。Example3_10.jsp2.2 response的HTTP文件头我们知道客户访问一个页面时,会提交一个http头给服务器,同时相应也包括一些头。Response对象可以使用方法 addHeader(String head,String value);或者setHeader(String head,String value)动态添加新的响应头和头的值,并将这些头发送给客户的浏览器。Example3_12.jsp2.3
7、 response 重定向在某些情况下,当响应客户时,需要将客户重新引导到另一个页面。这时就要用到response对象的重定向的方法:sendRedirect(URL url)Example3_13.jsp2.4 response 的状态行当服务器对可以请求进行响应时,发送的首行被称为状态行。状态行包括3位数字的状态代码和对状态代码的描述。下面给出对5类状态代码的大概描述。1*(1开头的3位数字:主要是实验性质的2*:用来表示请求成功。3*:用来表示在清求满足之前应该采取进一步的行动。4*:当浏览器做出无法满足的请求时,返回该状态码。5*:用来表示服务器出现的问题。正常情况下,我们不需修改状态
8、行。但是我们可以通过response对象的setStatus(int n)方法来增加状态行的内容。Example3_14.jsp3 session 对象http协议作为一个无状态协议,无法判断一个客户的分时段的连接是不是属于同一个客户。而一个客户在对一个服务器进行访问的时候,可能会在这个服务器的几个页面之间反复连接、反复刷新一个页面或者不断向一个页面提交信息等,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。3.1 session 对象的id当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,这个session对象调用相应的方法可以存储客户
9、在访问各个页面期间提交的各种信息,比如,姓名、号码等信息。这个session对象被分配一个String类型的id号,jsp引擎同时将这个id号发送给客户端,存放在客户的cookie中。这样session对象和客户之间就建立起一个一一对应的关系。session.jsp3.2 session 对象与URL重写 session对象能和客户建立起一一对应的关系依赖于客户的浏览器是否支持cookie。否则服务器无法将id存放到客户端,就不能建立session对象和客户的一一对应关系。这时就需要URL重写来实现session对象的唯一性。所谓URL重写,就是当客户从一个页面重新连接到另外一个页面时,通过向
10、这个新的URL添加参数,把session对象的id传带过去,这样就可以保障客户在该网站各个页面中的session对象是完全相同的。17 session.jsp3.3 session对象的常用方法1.public void setAttribute(String key,Object obj)session 对象通过调用这个方法将参数Object指定的对象obj添加到session对象中,并为添加的对象制定一个索引关键字。2.public Object getAttribute(String key)获取session对象中含有关键字key的对象。3.public Enumeration get
11、AttributeNames()session 对象调用该方法产生一个枚举对象。4.public long getCreationTime()session 对象调用该方法可以获取该对象创建的时间。3.3 session对象的常用方法5.public int getMaxInactiveIterval(int n)获取session对象的生存时间6.public long getLastAccessedTime()获取当前session对象最后一次被操作的时间7.public void setMaxInactiveIterval(int n)设置session对象的生存时间8.public v
12、oid removeAttribute(String key)从当前的session对象中删除关键字是key的对象9.public String getId()获取session对象的编号Example3_17.jspjsp-examples/num/numguess.jspExample3_18.jsp作业对Example2-2.jsp程序作相应的修改,用session对象禁止客户通过刷新页面增加计数。同时当客户刷新页面时,可以使用session的public boolean isNew()方法判断是否是一个新的客户。4 application 对象 与session对象不同的是,服务器启动
13、后,就产生一个application对象,同时对于所有访问该服务器的客户都是用的这一个application对象,知道服务器关闭.也就是说jsp引擎每每个客户开的线程共享这个application对象.application对象的常用方法1.public void setAttribute(String key,Object obj)application对象调用该方法将参数Object制定的对象obj添加到application对象中,并为添加的对象制定一个索引关键字.2.public Object getAttribute(String key)获取application对象中含有关键字是
14、key的对象.3.public Enumeration getAttributeNames()application对象调用该方法产生一个枚举对象,该枚举对象使用nextElements()方法遍历安排application对象所含有的全部对象4.public void removeAttribute(String key)从当前的application对象中删除关键字是key的对象 21 submit.jsp out 对象 out对象是一个输出流,用来向客户端输出数据.out对象可调用如下方法用于各种数据的输出 out.println(boolean):用于输出一个布尔值out.println(char):out.println(double):out.println(float):out.println(long):out.println(String):out.newLine():输出一个换行符out.flush():输出缓冲区里的内容 out.close():关闭流23 time.jsp