您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > JSP程序设计教程(第4章)
JSP程序设计教程第4章JSP内置对象第4章JSP内置对象4.1JSP内置对象概述4.2request对象4.3response对象4.4session对象4.5application对象4.6out对象4.7其他内置对象√√√√√√√4.1JSP内置对象概述为了Web应用程序开发的方便,在JSP页面中内置了一些默认的对象,这些对象不需要预先声明就可以在脚本代码和表达式中随意使用。JSP提供的内置对象共有9个,如下表所示。4.1JSP内置对象概述内置对象名称所属类型有效范围说明applicationjavax.servlet.ServletContextapplication该对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息configjavax.servlet.ServletConfigpage该对象允许将初始化数据传递给一个JSP页面exceptionjava.lang.Throwablepage该对象含有只能由指定的JSP“错误处理页面”访问的异常数据outjavax.servlet.jsp.JspWriterpage该对象提供对输出流的访问pagejavax.servlet.jsp.HttpJspPagepage该对象代表JSP页面对应的Servlet类实例pageContextjavax.servlet.jsp.PageContextpage该对象是JSP页面本身的上下文,它提供了唯一一组方法来管理具有不同作用域的属性,这些API在实现JSP自定义标签处理程序时非常有用requestjavax.servlet.http.HttpServletRequestrequest该对象提供对HTTP请求数据的访问,同时还提供用于加入特定请求数据的上下文responsejavax.servlet.http.HttpServletResponsepage该对象允许直接访问HttpServletReponse对象,可用来向客户端输入数据sessionjavax.servlet.http.HttpSessionsession该对象可用来保存在服务器与一个客户端之间需要保存的数据,当客户端关闭网站的所有网页时,session变量会自动消失4.1JSP内置对象概述request、response和session是JSP内置对象中重要的3个对象,这3个对象体现了服务器端与客户端(即浏览器)进行交互通信的控制,如下图所示。从该图可以看出,当客户端打开浏览器,在地址栏中输入服务器Web服务页面的地址后,就会显示Web服务器上的网页。客户端的浏览器从Web服务器上获得网页,实际上是使用HTTP协议向服务器端发送了一个请求,服务器在收到来自客户端浏览器发来的请求后要响应请求。JSP通过request对象获取客户浏览器的请求,通过response对客户浏览器进行响应。而session则一直保存着会话期间所需要传递的数据信息。4.2request对象request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。4.2request对象4.2.1访问请求参数4.2.2在作用域中管理属性4.2.3获取Cookie4.2.4获取客户信息4.2.5访问安全信息4.2.6访问国际化信息√√√√√√4.2.1访问请求参数在Web应用程序中,经常还需要完成用户与网站的交互。例如,当用户填写表单后,需要把数据提交给服务器处理,服务器获取到这些信息并进行处理。request对象的getParameter()方法,可以用来获取用户提交的数据。访问请求参数的方法如下:StringuserName=request.getParameter(name);参数name与HTML标记name属性对应,如果参数值不存在,则返回一个null值,该方法的返回值为String类型。【例4-1】访问请求参数示例4.2.2在作用域中管理属性有时,在进行请求转发时,需要把一些数据带到转发后的页面进行处理。这时,就可以使用request对象的setAttribute()方法设置数据在request范围内存取。设置转发数据的方法使用如下:request.setAttribute(key,Object);参数key是键,为String类型。在转发后的页面取数据时,就通过这个键来获取数据。参数object是键值,为Object类型,它代表需要保存在request范围内的数据。获取转发数据的方法如下:request.getAttribute(Stringname);4.2.2在作用域中管理属性参数name表示键名。在页面使用request对象的setAttribute(name,obj)方法,可以把数据obj设定在request范围内。请求转发后的页面使用使用“getAttribute(name);”就可以取得数据obj。【例4-2】在作用域中管理属性示例使用request对象的setAttribute()方法设置数据,然后在请求转发后取得设置的数据。4.2.3获取CookieCookie为Web应用程序保存用户相关信息提供了一种有用的方法。Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。例如,当用户访问站点时,可以利用Cookie保存用户首选项或其他信息,这样当用户下次再访问站点时,应用程序就可以检索以前保存的信息。在JSP中,可以通过request对象中的getCookies()方法获取Cookie中的数据。获取Cookie的方法如下:Cookie[]cookie=request.getCookies();4.2.3获取Cookierequest对象的getCookies()方法,返回的是Cookie[]数组。【例4-3】获取Cookie示例使用request对象的addCookie()方法实现记录本次及上一次访问网页的时间。4.2.4获取客户信息request对象提供了一些用来获取客户信息的方法,如下表所示。方法说明getHeader(Stringname)获得Http协议定义的文件头信息getHeaders(Stringname)返回指定名字的requestHeader的所有值,其结果是一个枚举的实例getHeadersNames()返回所有requestHeader的名字,其结果是一个枚举的实例getMethod()获得客户端向服务器端传送数据的方法,如get,post,header,trace等getProtocol()获得客户端向服务器端传送数据所依据的协议名称getRequestURI()获得发出请求字符串的客户端地址getRealPath()返回当前请求文件的绝对路径getRemoteAddr()获取客户端的IP地址getRemoteHost()获取客户端的机器名称getServerName()获取服务器的名字getServerPath()获取客户端所请求的脚本文件的文件路径getServerPort()获取服务器的端口号4.2.4获取客户信息【例4-4】获取客户信息示例使用request对象的相关方法获取客户信息,4.2.5访问安全信息request对象提供了对安全属性的访问,如下表所示。方法说明isSecure()返回布尔类型的值,它用于确定这个请求是否使用了一个安全协议,例如HTTPisRequestedSessionIdFromCookie()返回布尔类型的值,表示会话是否使用了一个Cookie来管理会话IDisRequestedSessionIdFromURL()返回布尔类型的值,表示会话是否使用URL重写来管理会话IDisRequestedSessionIdFromValid()检查请求的会话ID是否合法例如,可以通过使用request对象来确定当前请求是否使用了一个类似HTTP的安全协议:用户安全信息:%=request.isSecure()%4.2.6访问国际化信息浏览器可以通过accept-language的HTTP报头向Web服务器指明它所使用的本地语言。request对象中的getLocale()和getLocales()方法允许JSP开发人员获取这一信息,获取的信息属于java.util.Local类型。java.util.Local类型的对象封装了一个国家和一种国家所使用的语言。使用这些信息,JSP开发者就可以使用语言所特有的信息作出响应。使用这个报头的代码如下:4.2.6访问国际化信息%java.util.Localelocale=request.getLocale();if(locale.equals(java.util.Locale.US)){out.print(WelcometoBeiJing);}if(locale.equals(java.util.Locale.CHINA)){out.print(北京欢迎您);}%这段代码,如果所在区域为中国,将显示“北京欢迎您”,而所在区域为英国,则显示“WelcometoBeiJing”。4.3response对象response对象和request对象相对应,用于响应客户请求,向客户端输出信息。response对象是javax.servlet.http.HttpServletResponse接口类的对象,它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。4.3response对象4.3.1重定向网页4.3.2设置HTTP响应报头4.3.3缓冲区配置√√√4.3.1重定向网页在JSP页面中,可以使用response对象中的sendRedirect()方法将客户请求重定向到一个不同的页面。例如,将客户请求转发到login_ok.jsp页面的代码如下:response.sendRedirect(login_ok.jsp);在JSP页面中,还可以使用response对象中的sendError()方法指明一个错误状态。该方法接收一个错误以及一条可选的错误消息,该消息将在内容主体上返回给客户。例如,代码“response.sendError(500,请求页面存在错误)”将客户请求重定向到一个在内容主体上包含了出错消息的出错页面。4.3.1重定向网页上述两个方法都会中止当前的请求和响应。如果HTTP响应已经提交给客户,则不会调用这些方法。response对象中用于重定向网页的方法如下表所示。【例4-5】重定向网页示例使用request对象的相关方法重定向网页。方法说明sendError(intnumber)使用指定的状态码向客户发送错误响应sendError(intnumber,Stringmsg)使用指定的状态码和描述性消息向客户发送错误响应sendRedirect(Stringlocation)使用指定的重定向位置URL想客户发送重定向响应,可以使用相对URL4.3.2设置HTTP响应报头response对象提供了设置HTTP响应报头的方法,如下表所示。方法说明setDateHeader(Stringname,longdate)使用给定的名称和日期值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值setHeader(Stringname,Stringvalue)使用给定的名称和值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值setHeader(Stringname,intvalue)使用给定的名称和整数值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值addHeader(Stringname,longdate)使用给定的名称和值设置一个响应报头ad
本文标题:JSP程序设计教程(第4章)
链接地址:https://www.777doc.com/doc-3943569 .html