Javaweb第4章JSP内置对象.ppt

上传人:本田雅阁 文档编号:2201784 上传时间:2019-03-03 格式:PPT 页数:41 大小:103.01KB
返回 下载 相关 举报
Javaweb第4章JSP内置对象.ppt_第1页
第1页 / 共41页
Javaweb第4章JSP内置对象.ppt_第2页
第2页 / 共41页
Javaweb第4章JSP内置对象.ppt_第3页
第3页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、2019年3月3日,1,JSP 内置对象,2019年3月3日,2,教学内容:,request对象 response对象 out对象 session对象 application对象 exception对象 pageContext对象 config对象 page对象,2019年3月3日,3,一、request 对象,HTTP通信协议是客户与服务器之间一种提交(请求)信息与响应信息(request/respone)的通信协议。在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信息。 示例:Example3_1.jsp tree.jsp,2019年3月3日,

2、4,HTTP请求中包括一个请求行、头域和可能的信息体,如: GET/hello.html HTTP/1.1 HOST: accept-encoding:gzip,deflate 一个典型的请求通常包含许多请求头,有些头是标准的,有些和特定的浏览器有关。包含的信息提可能是表单的内容。,2019年3月3日,5,Request对象包括很多方法,主要有: getCookies():返回客户端的cookie对象,结果是一个cookie数组。 getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对

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

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

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

6、获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址。,2019年3月3日,8,getServerPort():获得服务器的端口号。 getRemoteAddr():获得客户端的IP地址。 getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。 getProtocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。 getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。 getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么

7、返回-1。 getInputStream():以二进制的形式将客户端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。,2019年3月3日,9,isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false. getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。 getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。 getContextPath():返回环

8、境路径。对于JSP来说,一般是当前Web应用程序的根目录。 isRequestedSessionIdValid():返回一个指示客户端请求发送Session ID是否仍然有效的布尔值。 isRequestedSessionIdFromCookie():返回一个指示客户端请求发送Session ID是否存在于Cookie中的布尔值。 isRequestedSessionIdFromURL():返回一个指示客户端请求发送Session ID是否存在于URL中的布尔值。,2019年3月3日,10,客户通常使用HTML表单向服务器的某个JSP页面提交信息,表单的一般格式: 提交手段 请求的方法有get

9、 、post、head 、delete、trace 、put 等. 例: request.jsp,2019年3月3日,11,当用request对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊的处理方式。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。 例: Example3_3.jsp tree1.jsp,处理汉字信息,2019年3月3日,12,二、response 对象,用response对象对客户的请求作出动态响应,将JSP 处理数据后的结果传回到客户端。 比如,当一个客户请求访问一个

10、JSP页面时,该页面用page指令设置页面的contentType属性的值是text/html,那么JSP引擎将按着这种属性值响应客户对页面的请求,将页面的静态部分返回给客户。 如果想动态地改变contentType的属性值就需要用response对象改变页面的这个属性的值,作出动态的响应。,2019年3月3日,13,Response对象的常用方法为: addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个Cookie。 addHeader(String name,String value

11、):添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。 containsHeader(String name):判断指定名字的HTTP文件头是否存在,并返回布尔值。,2019年3月3日,14,sendError(int sc):向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。 setHeader(String name,String value):设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖。 setContenType(String type):响应设置内容类型头。

12、sendRedirect(URL):可以将用户重定向到一个不同的页面(URL)。,2019年3月3日,15, response内置对象 使用response内置对象刷新页面 显示时间: ,2019年3月3日,16,动态响应contentType属性,如果想动态的改变这个属性的值来响应客户,就需要使用response对象的setContentType(String s)方法来改变contentType的属性值,该方法动态设置响应的MIME类型,参数s可取:text/html、application/x-msexcel、application/msword 示例: response.jsp,201

13、9年3月3日,17,respose重定向,在某些情况下,当响应客户时,需要将客户重新引导至另一个页面。例如,如果客户输入的表单信息不完整,就会再被引导到该表单的输入页面。 可以使用response的sendRedirect(URL url)方法实现客户的重定向。 示例: Example3_13.jsp tree4.jsp,2019年3月3日,18,out对象用来向客户端输出数据,并且管理应用服务器上的输出缓冲区,其基类是JspWriter。通常使用out.println(String name)和out.print(String name),它们两者最大的差别在于println( )在输出的数

14、据后面会自动加上换行的符号;反之,print( )不会在数据后自动换行。 out 对象除了这两种方法最常使用之外,它还有一些方法(见下表),这些方法主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。,三、out 对象,2019年3月3日,19,2019年3月3日,20, out对象示例 “); int out2=19810407; out.println(out2+“); out.println(out1=(String.valueOf(out2)+“); % ,2019年3月3日,21,session对象和客户端的会话联系在一起,由容器自动创建。 一个客户

15、从打开浏览器连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称作一个会话。 一个客户在一个会话期间,在该网站上不同页面之间跳转时,可以得用session对象来实现信息的共享。,四、 session对象,2019年3月3日,22,当使用者与服务器联机时,服务器可以给每一个上网的使用者一个Session并设定其中的内容,这些Session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。 Session对象的常用方法为: getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null。 getAttributeNames():返

16、回Session对象中存储的每个属性对象,结果集是一个Enumeration类的实例。 setAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在Session对象中。 isNew():判断目前Session是否为新的Session,若是则返回ture,否则返回false。,2019年3月3日,23,getId():返回Session对象在服务器端的编号。每生成一个Session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别Session,并且正确的处理某一特定的Session及其提供的

17、服务。 getCreationTime():返回Session对象被创建的时间,单位为毫秒。 getLastAccessedTime():返回当前Session对象最后一次被操作的时间,时间的单位为毫秒。 getMaxInactiveInterval():获取Session对象的生存时间,时间的单位为秒。 setMaxInactiveInterval(int interval):设置Session的有效时间(也叫超时时间),时间的单位为秒。 removeAttribute(String name)“删除指定的属性(包含属性名、属性值)。如果在有效时间内,用户做出了新的请求,那么服务器就会将其看

18、作一个新的用户,此时,服务器将创建一个新的Session,旧的Session信息将会丢失,2019年3月3日,24,关于session ID的示例 客户在访问以下三个页面中,所获取到的session对象是完全相同的。 示例 : Session.jsp (Session.jsp、Tom.jsp、jerry.jsp),2019年3月3日,25,在重定向到新的页面利用session对象实现 数据的传递。 reponse.sendRedirect(URL); 见示例: ch05/ ( session_login.html Check_login.jsp Loginsuccess.jsp ),2019年

19、3月3日,26,五、application对象 服务器启动后就产生一个application对象。所有的客户在页面之间跳转时用的都是同一个对象。也就是说这些线程共享这个application对象 使用Session对象时,各个客户端共享一个Session对象。 Application对象主要方法为: getAttribute(String name):返回由name指定名字的Application对象属性的值,这是个Object对象,如果没有,就返回null。 getAttributeNames():返回所有Application对象的属性的名字,结果集是一个Enumeration(枚举)类的

20、实例。,2019年3月3日,27,getInitParameter(String name):返回由name指定的名字的application对象的某个属性的初始值,如果没有参数,就返回null。 getServerInfo():返回servlet编译器当前版本信息。 setAttribute(String name,Object object):将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个属性。,2019年3月3日,28,常用方法 public void setAttribute(key,Object o) public Object getA

21、ttribute(key) public Enumberation getAttributeNames() public void removeAttributes(String key),2019年3月3日,29, application对象示例 ,2019年3月3日,30,示例: (Test_application.jsp Application.jsp ) Test_application2.jsp,2019年3月3日,31,Exception对象用来处理JSP文件在执行时所有发生的错误和异常,Exception对象可以配合page指令一起使用,通过指定某一个页面为错误处理页面,把所有的

22、错误都集中那个页面进行处理,可以使得整个系统的健壮性得到加强,也使得程序的流程更加简单明晰。 Exception对象的主要方法为: getMessage():返回错误信息。 printStackTrace():以标准错误的形式输出一个错误和错误的堆栈。 toString():以字符串的形式返回一个对异常的描述。,六、Exception对象,2019年3月3日,32,exception对象是java.lang.Throwable类的一个实例,指的是运行时异常,只有被声明为错误页面中(在页面指令里有 isErrorPage=true)才可以使用。 例子: syntax_error.jsp Exce

23、ption.jsp ( Error.jsp Exception.jsp),2019年3月3日,33,七、pageContext对象 pageContext对象被用来对属于JSP中可见部分中已经命名对象的访问。 可以根据不同的对象范围来实现对这些对象的管理。 其主要方法为: getAttribute():返回与指定范围内名称有关的变量或null。 findAttribute():用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。 setAttribute():用来设置默认页面的范围或指定范围之中的已命名对象。 removeAttribute():用来删除默认页面范围或指定

24、范围之中已命名的对象。,2019年3月3日,34,常见的方法有: forward()、getAttribute()、setAttribute()、findAttribute()、removeAttribute()、getRequest()、getResponse()、getServletConfig()、getServletContext()、getSession(). 例子:(pagecontext_form.html pageContext1.jsp pageContext2 .jsp ),2019年3月3日,35,Config对象是JSP页面通过JSP container进行初始化时被传

25、递的对象。Config对象具有Web服务器所需的多种环境设定值,简单点说,Config对象就是提供对初始化JSP的配置数据的访问。 Config对象的主要方法为: getInitParameter():以字符串类型返回指定初始参数的内容,如果参数不存在,则返回null。 getInitParameterNames():以Enumeration类型返回所有初始参数的名称,如果没有初始化参数,则返回null。 getServletContext():返回的Servlet是属于哪一个application。 getServletName():以字符串类型返回Servlet的名称。,八、Config对

26、象,2019年3月3日,36, config对象示例 “); % ,2019年3月3日,37,Page对象是java.lang.Object类的一个实例,它代表JSP编译后的产生的SERVLET类的实例,代表JSP页面本身,只有在当前的JSP页面才有效。 例: page.jsp,九、page对象,2019年3月3日,38,2019年3月3日,39,总结:通常会将request、session、application 和pageContext 归为一类,原因在于:它们皆能借助属性来做到数据分享。,2019年3月3日,40,下面列出了一般储存和取得属性的方法,2019年3月3日,41,使用属性的一般注意事项,当我们使用getAttribute(String name)取得name 属性的值时,它返回一个java.lang.Object类型的对象,因此,还必须根据name 属性值的类型进行类型转换工作。例如,如果要取得String 类型的Name 属性时: String userName = (String)pageContext.getAttribute(“user”); 如果是Integer 类型的Year 属性时: Integer Year =(Integer)session.getAttribute(“Year“);,

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

当前位置:首页 > 其他


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