
JSP技术课件.ppt
98页第4章 JSP中的对象,JSP的对象也叫内置对象,也有人叫做JSP的内置隐藏对象它用在jsp表达式和脚本中,不能直接用在jsp声明中JSP的隐藏对象有:out,request,response,config,session,application,page,pageContext,exception这些隐藏对象使得JSP使用比Servlet更加简单和方便这一章,将对JSP的隐藏对象进行介绍4.1 在客户端页面输出信息out对象,out隐藏对象是javax.servlet.jsp.JspWriter类的实例服务器向客户端输出的字符类内容可以通过out对象输出它是在JSP开发中频繁使用的对象之一它常用到的方法有: println(String str):用于向客户端输出内容这个方法是换行输出它输出一个内容后换行,下一个输出内容在下一行输出4.1 在客户端页面输出信息out对象,print(String str):和println(String str)方法一样,是用于向客户端输出内容不同的是:这个方法是不换行输出它输出完一个内容后,不自动换行,下一个输出内容在前面的内容之后继续输出 append(CharSequence cs):用于向out缓存中扩展字符类输出。
当缓存满或者执行out.flush()操作时这些内容会输出到客户端浏览器4.1 在客户端页面输出信息out对象,clear():用于清除缓冲区中的内容,调用这个方法以后,缓冲区里的内容会被清空 flush():将缓存内容flush到客户端浏览器,即:输出缓冲区的数据 isAutoFlush():返回一个布尔值,表示缓存满时是否自动刷新缓冲区如果返回true,缓存满时自动刷新缓冲区;如果为false,缓存满时会抛出IOException异常4.1 在客户端页面输出信息out对象,getBufferSize():以字节为单位,返回缓存大小,单位是KB getRemaining():返回缓冲区中剩余的缓存剩余大小,以KB为单位 close():刷新流以后,关闭流4.2 处理客户请求信息request对象,客户端的请求信息被封装在request对象中这样,在服务端可以通过request对象,接受所有从浏览器发往服务器的请求内的所有信息,然后做出响应request对象是HttpServletRequest接口的实现,获取的信息内容包括请求的头文件(Header)、浏览器的相关配置信息,请求的方式(GET和POST),请求的参数名称,参数值和客户端的主机名等信息。
4.2.1 什么是request对象,对象request是javax.servlet.ServletRequest类的实例,代表着客户端的请求request包含客户端的信息以及请求的信息,如请求哪个文件,附带的地址栏参数等每次客户端请求都会产生一个request实例客户端的请求信息被封装在request对象中这样,在服务端可以通过request对象,接受所有从浏览器发往服务器的请求内的所有信息,然后做出响应request对象是HttpServletRequest接口的实现,,4.2.1 什么是request对象,获取的信息内容包括请求的头文件(Header)、浏览器的相关配置信息,请求的方式(GET和POST),请求的参数名称,参数值和客户端的主机名等信息 request对象是在客户发出请求时才被创建,请求结束后,销毁这个对象它作为_jspService方法的一个形参在传递参数它主要提供的服务有:,4.2.1 什么是request对象,访问客户端请求中的参数 访问客户端请求中的国际化信息 访问客户端请求中的请求报头 访问客户端请求中的安全信息4.2.1 什么是request对象,获取客户端的Cookie信息。
管理请求中的属性 request隐藏对象中有一些常用的方法,通过这些方法来实现request隐藏对象的各个功能,这些方法有以下几种:,4.2.1 什么是request对象,setAttribute(String name, Object value):在request中保存一个对象本页面内或者forward之后的页面中可以通过getAttribute(String name)方法获取该对象 setCharacterEncoding(String encoding):设置request的编码方式 getAttribute(String name):从request中获取name对应的对象4.2.1 什么是request对象,getMethod():返回request中使用的方法名称,一般为GET或者POST getParameter(String key):返回客户端用户提交的参数 getParameterValues(String key):返回提交的多个同名参数值以数组形式返回4.2.1 什么是request对象,getParameterNames():返回所有提交的参数名称 getCookies():返回所有的Cookie。
getContextPath():返回HTTP请求中,指示请求上下文的部分4.2.1 什么是request对象,getHeader(String name):获取request头信息 getHeaderNames():返回所有的request请求名称4.2.2 访问客户端请求中的参数,request隐藏对象中包含了从当前JSP页面的URL查询字符串得到的信息,从MTHL表单中提交的编码数据也包含在request请求中这些信息到了服务器后,服务器会把这些信息当做Java的String对象,这些String对象用来代表传递的参数名和参数值在request隐藏对象访问客户端请求的参数时,会通过4.2.1小节中介绍的一些方法检索到请求参数的信息4.2.2 访问客户端请求中的参数,当提交方式是post时,提交的内容不会出现在URL地址中这只是get提交方式和post提交方式的区别之一下面来简单介绍一下get提交方式和post提交方式的区别: get提交方式是通过在URL里面传递参数,用来传递一些不需要保密的数据,post提交方式是隐式提交参数,在URL中书看不到数据内容的,安全性较高4.2.2 访问客户端请求中的参数,get提交方式对提交数据的大小有限制,通过get提交的数据不能超过2KB。
post提交方式对提交的数据大小没有限制 上面的两个例子中,都用到了getParameter、getParameterNames和getParameterValue,通过它们在页面上显示的值,可以对它们有多了解下面来总结一下他们的用法:,4.2.2 访问客户端请求中的参数,getParameter:是java.lang.String getParameter(java.lang.String name)方法,它以String的形式返回请求参数的值,如果参数不存在,则返回null getParameterNames:是java.lang.Enmeration getParameter()方法,它返回的是String对象,包含有请求参数的名称4.2.2 访问客户端请求中的参数,getParameterValues:是java.lang.String getParameterValues(java.lang.String name)方法,它返回String对象的数组,包含有请求参数的值,如果参数不存在,则返回null4.2.3 访问客户端请求中的国际化信息,软件开发中说的国际化,是指设计和开发出适应不同区域要求的产品。
在应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产国际化信息是指,涉及到国际化操作的相关相信,比如浏览器判断用户所在的语言环境,然后根据语言环境来显示页面的语言文字request隐藏对象可以通过,4.2.3 访问客户端请求中的国际化信息,getLacale()和getLocales()方法,来获取用户浏览器设置的语言环境下面通过例子来了解一下request隐藏对象是如何访问国际化信息的4.2.4 访问客户端请求中的请求报头,request隐藏对象可以通过一些方法来访问在HTTP报头中发送的信息request隐藏对象中,访问请求报头的方法有以下几种: getDateHeader(java.lang.String name)方法:这个方法返回long值,用来获得name参数指定的日期类型报头的值4.2.4 访问客户端请求中的请求报头,getIntHeader(java.long.String name)方法:这个方法返回一个int值,获得name指定的整数类型报头值 getHeader(java.long.String name)方法:该方法返回一个String值,用来获得name指定的报头值,这个报头必须是已命名的。
4.2.4 访问客户端请求中的请求报头,getHeaders(java.long.String name)方法:该方法返回一个Sing对象的枚举,这些对象代表报头的所有值,这些包头都是已命名的 getHeaderNames()方法:该方法返回一个Sing对象的枚举,这些对象代表请求中的所有报头名称,这些报头必须是已命名的4.2.5 访问客户端请求中的安全信息,request隐藏对象能够访问请求中的安全信息它提供了一些方法来访问请求中的安全信息,这些方法有以下几种: isSecure()方法:该方法返回一个boolean值,它用来表示请求是否使用了安全协议 isRequestedSessionValid方法:该方法返回一个boolean值,用来检查会话Id是否合法4.2.5 访问客户端请求中的安全信息,isRequestedSessionIdFromCookie()方法:返回一个boolean值,该方法用来表示是否使用了Cookie来管理会话Id isRequestedSessionIdFromURL()方法:返回一个boolean值,个方法用来表示是否使用URL重写来管理会话Id4.2.6 获取客户端Cookie信息,Cookie是服务器保存在客户端上的一段文本信息。
Cookie是一小段文本信息,它保存了服务端插入客户端的信息这些信息可以帮助服务器对每个请求进行识别操作Cookie通常采用一对一的key/value形式保存数据,即Cookie名与Cookie值成对出现的方式来存储4.2.6 获取客户端Cookie信息,Cookie主要分为会话Cookie及持久Cookie会话Cookie随着网页的关闭而自动消失;持久Cookie会以文本形式保存在用户硬盘,它不会随着网页的关闭而消失,直到其超过有效期有关Cookie的详细信息及应用会在后面的章节中进行详细的讲解4.2.6 获取客户端Cookie信息,在服务端如何获取Cookie对象是进行请求识别的重要一环这一节将介绍request隐藏对象如何获取客户端Cookie信息4.2.7 管理请求中的属性,request隐藏对象可以管理存储在HttpServletRequest对象中的属性,这些属性以显式方式存储在HttpServletRequest对象中JSP中,开发者可以用这些属性在页面和服务器之间传递信息,属性可以是任何Java类型,也可以是自定义的类对象request隐藏对象通过以下几中方法管理请求中的属性:,4.2.7 管理请求中的属性,getAttributeNames()方法:该方法返回一个java.util.Enumeration,它包含有请求可以使用的属性名称。
removeAttribute(java.lang.String name)方法:该方法没有返回值,传递一个String。
