资源预览内容
第1页 / 共98页
第2页 / 共98页
第3页 / 共98页
第4页 / 共98页
第5页 / 共98页
第6页 / 共98页
第7页 / 共98页
第8页 / 共98页
第9页 / 共98页
第10页 / 共98页
亲,该文档总共98页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第4 4章章 JSP JSP中的对象中的对象JSP的对象也叫内置对象,也有人叫做的对象也叫内置对象,也有人叫做JSP的内置隐藏的内置隐藏对象。它用在对象。它用在jsp表达式和脚本中,不能直接用在表达式和脚本中,不能直接用在jsp声明中。声明中。JSP的隐藏对象有:的隐藏对象有:out,request,response,config,session,application,page,pageContext,exception。这些隐藏对象使得。这些隐藏对象使得JSP使用比使用比Servlet更加简单和方便。这更加简单和方便。这一章,将对一章,将对JSP的隐藏对象进行介绍。的隐藏对象进行介绍。4.1 4.1 在客户端页面输出信息在客户端页面输出信息outout对象对象out隐藏对象是隐藏对象是javax.servlet.jsp.JspWriter类的实例。类的实例。服务器向客户端输出的字符类内容可以通过服务器向客户端输出的字符类内容可以通过out对象输出。对象输出。它是在它是在JSP开发中频繁使用的对象之一。它常用到的方法有:开发中频繁使用的对象之一。它常用到的方法有:println(String str):用于向客户端输出内容。这个方:用于向客户端输出内容。这个方法是换行输出。它输出一个内容后换行,下一个输出内容在法是换行输出。它输出一个内容后换行,下一个输出内容在下一行输出。下一行输出。4.1 4.1 在客户端页面输出信息在客户端页面输出信息outout对象对象print(String str):和:和println(String str)方法一样,是方法一样,是用于向客户端输出内容。不同的是:这个方法是不换行输出。用于向客户端输出内容。不同的是:这个方法是不换行输出。它输出完一个内容后,不自动换行,下一个输出内容在前面它输出完一个内容后,不自动换行,下一个输出内容在前面的内容之后继续输出。的内容之后继续输出。append(CharSequence cs):用于向:用于向out缓存中扩展缓存中扩展字符类输出。当缓存满或者执行字符类输出。当缓存满或者执行out.flush()操作时这些内容操作时这些内容会输出到客户端浏览器。会输出到客户端浏览器。4.1 4.1 在客户端页面输出信息在客户端页面输出信息outout对象对象clear():用于清除缓冲区中的内容,调用这个方法以后,:用于清除缓冲区中的内容,调用这个方法以后,缓冲区里的内容会被清空。缓冲区里的内容会被清空。flush():将缓存内容:将缓存内容flush到客户端浏览器,即:输出到客户端浏览器,即:输出缓冲区的数据。缓冲区的数据。isAutoFlush():返回一个布尔值,表示缓存满时是否:返回一个布尔值,表示缓存满时是否自动刷新缓冲区。如果返回自动刷新缓冲区。如果返回true,缓存满时自动刷新缓冲区;,缓存满时自动刷新缓冲区;如果为如果为false,缓存满时会抛出,缓存满时会抛出IOException异常。异常。4.1 4.1 在客户端页面输出信息在客户端页面输出信息outout对象对象getBufferSize():以字节为单位,返回缓存大小,单:以字节为单位,返回缓存大小,单位是位是KB。getRemaining():返回缓冲区中剩余的缓存剩余大小,:返回缓冲区中剩余的缓存剩余大小,以以KB为单位。为单位。close():刷新流以后,关闭流。:刷新流以后,关闭流。4.2 4.2 处理客户请求信息处理客户请求信息requestrequest对象对象客户端的请求信息被封装在客户端的请求信息被封装在request对象中。这样,在对象中。这样,在服务端可以通过服务端可以通过request对象,接受所有从浏览器发往服务对象,接受所有从浏览器发往服务器的请求内的所有信息,然后做出响应。器的请求内的所有信息,然后做出响应。request对象是对象是HttpServletRequest接口的实现,获取的信息内容包括请接口的实现,获取的信息内容包括请求的头文件(求的头文件(Header)、浏览器的相关配置信息,请求的方)、浏览器的相关配置信息,请求的方式(式(GET和和POST),请求的参数名称,参数值和客户端的主),请求的参数名称,参数值和客户端的主机名等信息。机名等信息。4.2.1 4.2.1 什么是什么是requestrequest对象对象对象对象request是是javax.servlet.ServletRequest类的实类的实例,代表着客户端的请求。例,代表着客户端的请求。request包含客户端的信息以及包含客户端的信息以及请求的信息,如请求哪个文件,附带的地址栏参数等。每次请求的信息,如请求哪个文件,附带的地址栏参数等。每次客户端请求都会产生一个客户端请求都会产生一个request实例。客户端的请求信息实例。客户端的请求信息被封装在被封装在request对象中。这样,在服务端可以通过对象中。这样,在服务端可以通过request对象,接受所有从浏览器发往服务器的请求内的所有信息,对象,接受所有从浏览器发往服务器的请求内的所有信息,然后做出响应。然后做出响应。request对象是对象是HttpServletRequest接口的接口的实现,实现,4.2.1 4.2.1 什么是什么是requestrequest对象对象获取的信息内容包括请求的头文件(获取的信息内容包括请求的头文件(Header)、浏览器)、浏览器的相关配置信息,请求的方式(的相关配置信息,请求的方式(GET和和POST),请求的参数),请求的参数名称,参数值和客户端的主机名等信息。名称,参数值和客户端的主机名等信息。request对象是在客户发出请求时才被创建,请求结束对象是在客户发出请求时才被创建,请求结束后,销毁这个对象。它作为后,销毁这个对象。它作为_jspService方法的一个形参在方法的一个形参在传递参数。它主要提供的服务有:传递参数。它主要提供的服务有:4.2.1 4.2.1 什么是什么是requestrequest对象对象访问客户端请求中的参数。访问客户端请求中的参数。访问客户端请求中的国际化信息。访问客户端请求中的国际化信息。访问客户端请求中的请求报头。访问客户端请求中的请求报头。访问客户端请求中的安全信息。访问客户端请求中的安全信息。4.2.1 4.2.1 什么是什么是requestrequest对象对象获取客户端的获取客户端的Cookie信息。信息。管理请求中的属性。管理请求中的属性。request隐藏对象中有一些常用的方法,通过这些方法隐藏对象中有一些常用的方法,通过这些方法来实现来实现request隐藏对象的各个功能,这些方法有以下几种:隐藏对象的各个功能,这些方法有以下几种:4.2.1 4.2.1 什么是什么是requestrequest对象对象setAttribute(String name, Object value):在:在request中保存一个对象。本页面内或者中保存一个对象。本页面内或者forward之后的页之后的页面中可以通过面中可以通过getAttribute(String name)方法获取该对象。方法获取该对象。setCharacterEncoding(String encoding):设置:设置request的编码方式。的编码方式。getAttribute(String name):从:从request中获取中获取name对应的对象。对应的对象。4.2.1 4.2.1 什么是什么是requestrequest对象对象getMethod():返回:返回request中使用的方法名称,一般中使用的方法名称,一般为为GET或者或者POST。getParameter(String key):返回客户端用户提交的参:返回客户端用户提交的参数。数。getParameterValues(String key):返回提交的多个:返回提交的多个同名参数值。以数组形式返回。同名参数值。以数组形式返回。4.2.1 4.2.1 什么是什么是requestrequest对象对象getParameterNames():返回所有提交的参数名称。:返回所有提交的参数名称。getCookies():返回所有的:返回所有的Cookie。getContextPath():返回:返回HTTP请求中,指示请求上下请求中,指示请求上下文的部分。文的部分。4.2.1 4.2.1 什么是什么是requestrequest对象对象getHeader(String name):获取:获取request头信息。头信息。getHeaderNames():返回所有的:返回所有的request请求名称。请求名称。4.2.2 4.2.2 访问客户端请求中的参数访问客户端请求中的参数request隐藏对象中包含了从当前隐藏对象中包含了从当前JSP页面的页面的URL查询查询字符串得到的信息,从字符串得到的信息,从MTHL表单中提交的编码数据也包含表单中提交的编码数据也包含在在request请求中。这些信息到了服务器后,服务器会把这请求中。这些信息到了服务器后,服务器会把这些信息当做些信息当做Java的的String对象,这些对象,这些String对象用来代表传对象用来代表传递的参数名和参数值。在递的参数名和参数值。在request隐藏对象访问客户端请求隐藏对象访问客户端请求的参数时,会通过的参数时,会通过4.2.1小节中介绍的一些方法检索到请求参小节中介绍的一些方法检索到请求参数的信息。数的信息。4.2.2 4.2.2 访问客户端请求中的参数访问客户端请求中的参数当提交方式是当提交方式是post时,提交的内容不会出现在时,提交的内容不会出现在URL地地址中。这只是址中。这只是get提交方式和提交方式和post提交方式的区别之一。下提交方式的区别之一。下面来简单介绍一下面来简单介绍一下get提交方式和提交方式和post提交方式的区别:提交方式的区别:get提交方式是通过在提交方式是通过在URL里面传递参数,用来传递一里面传递参数,用来传递一些不需要保密的数据,些不需要保密的数据,post提交方式是隐式提交参数,在提交方式是隐式提交参数,在URL中书看不到数据内容的,安全性较高。中书看不到数据内容的,安全性较高。4.2.2 4.2.2 访问客户端请求中的参数访问客户端请求中的参数get提交方式对提交数据的大小有限制,通过提交方式对提交数据的大小有限制,通过get提交的提交的数据不能超过数据不能超过2KB。post提交方式对提交的数据大小没有限提交方式对提交的数据大小没有限制。制。上面的两个例子中,都用到了上面的两个例子中,都用到了getParameter、getParameterNames和和getParameterValue,通过它们在,通过它们在页面上显示的值,可以对它们有多了解。下面来总结一下他页面上显示的值,可以对它们有多了解。下面来总结一下他们的用法:们的用法:4.2.2 4.2.2 访问客户端请求中的参数访问客户端请求中的参数getParameter:是:是java.lang.String getParameter(java.lang.String name)方法,它以方法,它以String的形式返回请求参数的值,如果参数不存在,则返回的形式返回请求参数的值,如果参数不存在,则返回null。getParameterNames:是:是java.lang.Enmeration getParameter()方法,它返回的是()方法,它返回的是String对象,包含有请求参数的名称。对象,包含有请求参数的名称。4.2.2 4.2.2 访问客户端请求中的参数访问客户端请求中的参数getParameterValues:是:是java.lang.String getParameterValues(java.lang.String name)方法,它)方法,它返回返回String对象的数组,包含有请求参数的值,如果参数不对象的数组,包含有请求参数的值,如果参数不存在,则返回存在,则返回null。4.2.3 4.2.3 访问客户端请求中的国际化信息访问客户端请求中的国际化信息软件开发中说的国际化,是指设计和开发出适应不同区软件开发中说的国际化,是指设计和开发出适应不同区域要求的产品。在应用程序的功能和代码设计考虑在不同地域要求的产品。在应用程序的功能和代码设计考虑在不同地区运行的需要,其代码简化了不同本地版本的生产。国际化区运行的需要,其代码简化了不同本地版本的生产。国际化信息是指,涉及到国际化操作的相关相信,比如浏览器判断信息是指,涉及到国际化操作的相关相信,比如浏览器判断用户所在的语言环境,然后根据语言环境来显示页面的语言用户所在的语言环境,然后根据语言环境来显示页面的语言文字。文字。request隐藏对象可以通过隐藏对象可以通过4.2.3 4.2.3 访问客户端请求中的国际化信息访问客户端请求中的国际化信息getLacale()和和getLocales()方法,来获取用户浏览器方法,来获取用户浏览器设置的语言环境。下面通过例子来了解一下设置的语言环境。下面通过例子来了解一下request隐藏对隐藏对象是如何访问国际化信息的。象是如何访问国际化信息的。4.2.4 4.2.4 访问客户端请求中的请求报头访问客户端请求中的请求报头request隐藏对象可以通过一些方法来访问在隐藏对象可以通过一些方法来访问在HTTP报报头中发送的信息。头中发送的信息。request隐藏对象中,访问请求报头的方隐藏对象中,访问请求报头的方法有以下几种:法有以下几种:getDateHeader(java.lang.String name)方法:这)方法:这个方法返回个方法返回long值,用来获得值,用来获得name参数指定的日期类型报参数指定的日期类型报头的值。头的值。4.2.4 4.2.4 访问客户端请求中的请求报头访问客户端请求中的请求报头getIntHeader(java.long.String name)方法:这个)方法:这个方法返回一个方法返回一个int值,获得值,获得name指定的整数类型报头值。指定的整数类型报头值。getHeader(java.long.String name)方法:该方法)方法:该方法返回一个返回一个String值,用来获得值,用来获得name指定的报头值,这个报指定的报头值,这个报头必须是已命名的。头必须是已命名的。4.2.4 4.2.4 访问客户端请求中的请求报头访问客户端请求中的请求报头getHeaders(java.long.String name)方法:该方法)方法:该方法返回一个返回一个Sing对象的枚举,这些对象代表报头的所有值,这对象的枚举,这些对象代表报头的所有值,这些包头都是已命名的。些包头都是已命名的。getHeaderNames()方法:该方法返回一个()方法:该方法返回一个Sing对对象的枚举,这些对象代表请求中的所有报头名称,这些报头象的枚举,这些对象代表请求中的所有报头名称,这些报头必须是已命名的。必须是已命名的。4.2.5 4.2.5 访问客户端请求中的安全信息访问客户端请求中的安全信息request隐藏对象能够访问请求中的安全信息。它提供隐藏对象能够访问请求中的安全信息。它提供了一些方法来访问请求中的安全信息,这些方法有以下几种:了一些方法来访问请求中的安全信息,这些方法有以下几种:isSecure()方法:该方法返回一个()方法:该方法返回一个boolean值,它用值,它用来表示请求是否使用了安全协议。来表示请求是否使用了安全协议。isRequestedSessionValid方法:该方法返回一个方法:该方法返回一个boolean值,用来检查会话值,用来检查会话Id是否合法。是否合法。4.2.5 4.2.5 访问客户端请求中的安全信息访问客户端请求中的安全信息isRequestedSessionIdFromCookie()方法:返回()方法:返回一个一个boolean值,该方法用来表示是否使用了值,该方法用来表示是否使用了Cookie来管理来管理会话会话Id。isRequestedSessionIdFromURL()方法:返回一()方法:返回一个个boolean值,个方法用来表示是否使用值,个方法用来表示是否使用URL重写来管理会重写来管理会话话Id。4.2.6 4.2.6 获取客户端获取客户端CookieCookie信息信息Cookie是服务器保存在客户端上的一段文本信息。是服务器保存在客户端上的一段文本信息。Cookie是一小段文本信息,它保存了服务端插入客户端的是一小段文本信息,它保存了服务端插入客户端的信息。这些信息可以帮助服务器对每个请求进行识别操作。信息。这些信息可以帮助服务器对每个请求进行识别操作。Cookie通常采用一对一的通常采用一对一的key/value形式保存数据,即形式保存数据,即Cookie名与名与Cookie值成对出现的方式来存储。值成对出现的方式来存储。4.2.6 4.2.6 获取客户端获取客户端CookieCookie信息信息Cookie主要分为会话主要分为会话Cookie及持久及持久Cookie。会话。会话Cookie随着网页的关闭而自动消失;持久随着网页的关闭而自动消失;持久Cookie会以文本会以文本形式保存在用户硬盘,它不会随着网页的关闭而消失,直到形式保存在用户硬盘,它不会随着网页的关闭而消失,直到其超过有效期。有关其超过有效期。有关Cookie的详细信息及应用会在后面的的详细信息及应用会在后面的章节中进行详细的讲解。章节中进行详细的讲解。4.2.6 4.2.6 获取客户端获取客户端CookieCookie信息信息在服务端如何获取在服务端如何获取Cookie对象是进行请求识别的重要对象是进行请求识别的重要一环。这一节将介绍一环。这一节将介绍request隐藏对象如何获取客户端隐藏对象如何获取客户端Cookie信息。信息。4.2.7 4.2.7 管理请求中的属性管理请求中的属性request隐藏对象可以管理存储在隐藏对象可以管理存储在HttpServletRequest对象中的属性,这些属性以显式方式存储在对象中的属性,这些属性以显式方式存储在HttpServletRequest对象中。对象中。JSP中,开发者可以用这些属中,开发者可以用这些属性在页面和服务器之间传递信息,属性可以是任何性在页面和服务器之间传递信息,属性可以是任何Java类型,类型,也可以是自定义的类对象。也可以是自定义的类对象。request隐藏对象通过以下几中隐藏对象通过以下几中方法管理请求中的属性:方法管理请求中的属性:4.2.7 4.2.7 管理请求中的属性管理请求中的属性getAttributeNames()方法:该方法返回一个()方法:该方法返回一个java.util.Enumeration,它包含有请求可以使用的属性名称。,它包含有请求可以使用的属性名称。removeAttribute(java.lang.String name)方法:)方法:该方法没有返回值,传递一个该方法没有返回值,传递一个String型参数,从请求中删除型参数,从请求中删除一个属性。一个属性。4.2.7 4.2.7 管理请求中的属性管理请求中的属性setAttribute(java.lang.String name,java.lang.Object object)方法:该方法没有返回值,传递)方法:该方法没有返回值,传递一个一个String型的名称型的名称name以及那么对应的以及那么对应的Object型对象。型对象。用于存储请求中的一个属性。用于存储请求中的一个属性。getAttribute(java.lang.String name)方法:该方法)方法:该方法将已命名的属性值返回一将已命名的属性值返回一Object,如果给定的名称属性不存,如果给定的名称属性不存在,则返回在,则返回null。4.2.8 4.2.8 请求转发请求转发request对象提供了一个请求转发(对象提供了一个请求转发(forward)的方法,)的方法,在请求转发的过程中,请求没有发生改变(即始终是一个请在请求转发的过程中,请求没有发生改变(即始终是一个请求),请求转发的过程中,客户端浏览器地址栏中的地址是求),请求转发的过程中,客户端浏览器地址栏中的地址是不发生变化的。当页面跳转时,不想让请求发生改变,可以不发生变化的。当页面跳转时,不想让请求发生改变,可以用用forword方法来实现。方法来实现。4.2.9 4.2.9 其他方法其他方法除了上面几个小节中提到的方法以外,除了上面几个小节中提到的方法以外,request隐藏对隐藏对象还有一些其他的方法,在这一小节里,对这些方法做一个象还有一些其他的方法,在这一小节里,对这些方法做一个简单的介绍。这些方法有:简单的介绍。这些方法有:getRemoteAddr方法:语法为方法:语法为public java.lang.String getRemoteAddr()。该方法用于返回发送。该方法用于返回发送请求的客户端请求的客户端IP地址。地址。4.2.9 4.2.9 其他方法其他方法getRemoteHost方法:语法为方法:语法为public java.lang.String getRemoteHost()。该方法用于返回发送。该方法用于返回发送请求的客户端主机名。请求的客户端主机名。getProtocol方法:语法为方法:语法为public java.lang.String getProtocol()。该方法用于返回此次请求的协议名称及版本号码。该方法用于返回此次请求的协议名称及版本号码。4.2.9 4.2.9 其他方法其他方法getServerName方法:语法为方法:语法为public java.lang.String getServerName()。该方法用于返回接受请求的服务端主机名。该方法用于返回接受请求的服务端主机名。getServerPort方法:语法为方法:语法为public int getServerPort()。该方法用于返回接受请求的服务端端口。该方法用于返回接受请求的服务端端口。4.2.9 4.2.9 其他方法其他方法getRequestURL():返回:返回HTTP请求信息中的请求信息中的URL路径路径(从协议名开始,到查询字符串之间的路径),例如:(从协议名开始,到查询字符串之间的路径),例如:“http:/localhost:8080/jsp/method.jsp/query?name=Jack”,这个方法返回这个方法返回“http:/localhost:8080/jsp/method.jsp/query”字符串。字符串。4.2.9 4.2.9 其他方法其他方法getRequestURI方法:语法为方法:语法为public java.lang.String getRequestURI()。返回访问的。返回访问的URI。输入参数:无。输出结果:返回访问。输入参数:无。输出结果:返回访问的的URI。4.3 4.3 控制服务器的响应信息控制服务器的响应信息responseresponse对象对象response对象是对象是javax.servlet.http.HttpServletResponse接口的实现。接口的实现。JSP容器会根据客户端的请求信息建立一个容器会根据客户端的请求信息建立一个response对象。对象。对象可以将服务端进行的逻辑运作的结果信息返回给客户端对象可以将服务端进行的逻辑运作的结果信息返回给客户端的浏览器。的浏览器。4.3.1 4.3.1 什么是什么是responseresponse对象对象对象对象response是是javax.servlet.ServletResponse类的类的实例,代表客户端请求的响应。服务器端的任何输出都通过实例,代表客户端请求的响应。服务器端的任何输出都通过response对象发送到客户端浏览器。每次服务器端响应都对象发送到客户端浏览器。每次服务器端响应都会一个会一个response实例。实例。response隐藏对象常用到的方法有:隐藏对象常用到的方法有:4.3.1 4.3.1 什么是什么是responseresponse对象对象addCookie(Cookie cookie):该方法没有返回值,用:该方法没有返回值,用于设置于设置Cookie。getOutputStream():返回服务器输出流。可以通过该:返回服务器输出流。可以通过该输出流输出二进制信息。输出流输出二进制信息。sendRedirect(String url):该方法没有返回值,用于:该方法没有返回值,用于使本页面使本页面redirect(重定向)到另一个页面。(重定向)到另一个页面。4.3.1 4.3.1 什么是什么是responseresponse对象对象setContentType(String contentType):该方法没有:该方法没有返回值,用于设置文档类型。返回值,用于设置文档类型。HTML的文档类型为的文档类型为text/html。getOut():该方法返回:该方法返回out对象,用于输出。对象,用于输出。setHeader(String name, String value):该方法没有:该方法没有返回值,用于设置返回值,用于设置response头信息。头信息。4.3.1 4.3.1 什么是什么是responseresponse对象对象setStatus(int status):该方法没有返回值,用于设置:该方法没有返回值,用于设置response状态码。状态码。clear():该方法没有返回值,用于清空暂存在缓冲区的:该方法没有返回值,用于清空暂存在缓冲区的输出。输出。4.3.2 4.3.2 资源重定向资源重定向重定向是指请求在服务器端被自动导向到目标页面的一重定向是指请求在服务器端被自动导向到目标页面的一种方式。重定向在实际项目中有很多的应用,如对于一个应种方式。重定向在实际项目中有很多的应用,如对于一个应用系统来说,用户在没有登录系统时,直接访问受保护的资用系统来说,用户在没有登录系统时,直接访问受保护的资源,这时系统会对用户的请求进行识别,如果未识别或发现源,这时系统会对用户的请求进行识别,如果未识别或发现该用户尚未登录,系统将把用户的请求重定向到登录页面该用户尚未登录,系统将把用户的请求重定向到登录页面糜没糜没韧瓿傻锹级韧瓿傻锹级鳌庇没鳌庇没晒晒4.3.2 4.3.2 资源重定向资源重定向录后,系统又会将访问请求重定向到用户原先要访问的录后,系统又会将访问请求重定向到用户原先要访问的页面,反之,如果用户登录过程发生问题,系统又会将访问页面,反之,如果用户登录过程发生问题,系统又会将访问请求重定向到相应的错误提示页面。这是一个简单的登录系请求重定向到相应的错误提示页面。这是一个简单的登录系统的应用过程,在后续章节中会详细描述。统的应用过程,在后续章节中会详细描述。4.3.2 4.3.2 资源重定向资源重定向JSP页面可以使用页面可以使用sendRedirect方法将客户请求重定方法将客户请求重定向到另外一个不同的资源。一般说的重定向都是向到另外一个不同的资源。一般说的重定向都是URL重定向,重定向,重定向中请求会发生改变。重定向以后,原来的请求就会变重定向中请求会发生改变。重定向以后,原来的请求就会变成新的请求。如果需要在页面跳转过程中一直保持是一个请成新的请求。如果需要在页面跳转过程中一直保持是一个请求,就不能用资源重定向。求,就不能用资源重定向。response对象的对象的sendRedirect方法语法如下所示。方法语法如下所示。4.3.2 4.3.2 资源重定向资源重定向public void sendRedirect(java.lang.String location) throws java.io.IOException发送一个重定向响应到客户端,这个响应包含一个目标发送一个重定向响应到客户端,这个响应包含一个目标URL。目标地址可以是个相对地址。目标地址可以是个相对地址。Servlet容器必须先将容器必须先将相对路径转换为绝对路径,然后再把响应发送到客户端。如相对路径转换为绝对路径,然后再把响应发送到客户端。如果这个相对地址以果这个相对地址以“/”开头,开头,4.3.2 4.3.2 资源重定向资源重定向则将从根路径开始解析成绝对路径;如果这个相对地址则将从根路径开始解析成绝对路径;如果这个相对地址不是以不是以“/”开头,则将从当前访问的路径开始解析成绝对开头,则将从当前访问的路径开始解析成绝对路径。路径。response对象的对象的sendRedirect方法的一般用法如下方法的一般用法如下所示。所示。4.3.2 4.3.2 资源重定向资源重定向4.3.3 4.3.3 资源重定向和请求转发比较资源重定向和请求转发比较浏览器获得另外一个浏览器获得另外一个URL所指向的资源,可以用所指向的资源,可以用语句和语句和response对象的对象的sendRedirect方法,方法,但在具体实现方式和效果上有很大的不同。但在具体实现方式和效果上有很大的不同。4.3.3 4.3.3 资源重定向和请求转发比较资源重定向和请求转发比较是一个服务器端的转发机制(即:只能是一个服务器端的转发机制(即:只能将请求转发给同一个将请求转发给同一个WEB应用中的组件),可以共享应用中的组件),可以共享request范围内数据,它可以将请求自动完整的转发给目标范围内数据,它可以将请求自动完整的转发给目标文件,包括请求参数及其值。重定向文件,包括请求参数及其值。重定向sendRedirect可以重可以重新定向到同一站点不同应用程序中的资源新定向到同一站点不同应用程序中的资源4.3.3 4.3.3 资源重定向和请求转发比较资源重定向和请求转发比较的目标文件一般只能为的目标文件一般只能为URI(如(如“jspbook/result.jsp”),而不能是一个完整的),而不能是一个完整的URL(如(如“http:/127.0.0.1:8080/jspbook/result.jsp”),因此),因此它不能实现将请求转发向到另一台服务器上的某个文件。重它不能实现将请求转发向到另一台服务器上的某个文件。重定向定向sendRedirect可以定向到一绝对的可以定向到一绝对的URL(如(如“http:/127.0.0.1:8080/jspbook/result.jsp”)。)。4.3.3 4.3.3 资源重定向和请求转发比较资源重定向和请求转发比较由于由于是服务器端的转发,因此在客户端是服务器端的转发,因此在客户端浏览器上不能识别目标文件的真实浏览器上不能识别目标文件的真实URL,此时浏览器的地址,此时浏览器的地址栏显示的栏显示的URL没有变化(执行的还是目标文件)。而没有变化(执行的还是目标文件)。而response对象的对象的sendRedirect方法是一种客户端重定向机方法是一种客户端重定向机制,即服务器将信息发还给浏览器,浏览器重新请求所收到制,即服务器将信息发还给浏览器,浏览器重新请求所收到的重定向地址,这就建立了一个新的的重定向地址,这就建立了一个新的request。4.3.3 4.3.3 资源重定向和请求转发比较资源重定向和请求转发比较response对象的对象的sendRedirect方法的目标文件可以是方法的目标文件可以是URI,也可以是,也可以是URL,即它可以向其他服务器上的目标文件,即它可以向其他服务器上的目标文件重定向。由于它是客户端的重定向,因此在客户端浏览器上重定向。由于它是客户端的重定向,因此在客户端浏览器上能识别目标文件的真实能识别目标文件的真实URL,此时浏览器的地址栏显示的,此时浏览器的地址栏显示的URL就是目标文件的就是目标文件的URL。4.3.4 4.3.4 向客户端添加向客户端添加CookieCookieCookie是服务端保存在客户端的一些数据记录,这一是服务端保存在客户端的一些数据记录,这一节将介绍如何在服务器端向客户端添加节将介绍如何在服务器端向客户端添加Cookie对象。添加对象。添加Cookie对象是在服务器端通过对象是在服务器端通过response对象的对象的addCookie方法完成的,然后将方法完成的,然后将Cookie返回到客户端保存起来。返回到客户端保存起来。response对象的对象的addCookie方法的语法如下所示。方法的语法如下所示。public void addCookie(Cookie cookie)4.3.4 4.3.4 向客户端添加向客户端添加CookieCookie该方法返回值是该方法返回值是void,把,把Cookie对象作为参数传递。对象作为参数传递。在该方法的方法体中,要先新建在该方法的方法体中,要先新建Cookie,并给新建的,并给新建的Cookie起个名称,还可以设置起个名称,还可以设置Cookie的存活时间,最后才的存活时间,最后才把把Cookie添加到服务器的响应中。添加到服务器的响应中。4.3.5 getOutputStream4.3.5 getOutputStream方法下载文件方法下载文件JSP中,可以使用中,可以使用response对象的对象的getOutputStream方法获取一个指向客户的输出流服务器将文件写入这个流方法获取一个指向客户的输出流服务器将文件写入这个流,客户就可以下载这个文件了。这种下载方式,是采用输出流客户就可以下载这个文件了。这种下载方式,是采用输出流的方式下载。的方式下载。response对象的对象的getOutputStream方法的语方法的语法如下所示。法如下所示。4.3.5 getOutputStream4.3.5 getOutputStream方法下载文件方法下载文件public ServletOutputStream getOutputStream() throws java.io.IOException该方法返回一个一个输出流对象。服务器端将指定文件该方法返回一个一个输出流对象。服务器端将指定文件写入这个输出流,客户端再从这个流中取得数据,并保存。写入这个输出流,客户端再从这个流中取得数据,并保存。这个方法输出结果是二进制数据。这个方法输出结果是二进制数据。4.3.5 getOutputStream4.3.5 getOutputStream方法下载文件方法下载文件使用该方法的时候,可能会抛出异常,这些异常有以下使用该方法的时候,可能会抛出异常,这些异常有以下几种。几种。java.lang.IllegalStateException:当:当getWriter方法在方法在此此response对象中也被调用时,非法状态异常。对象中也被调用时,非法状态异常。java.io.IOException:输入输出异常。:输入输出异常。response对象的对象的getOutputStream方法的一般用法将方法的一般用法将在文件操作章节详细介绍。在文件操作章节详细介绍。4.3.5 getOutputStream4.3.5 getOutputStream方法下载文件方法下载文件除了上面介绍的文件下载形式外,除了上面介绍的文件下载形式外,JSP提供的下载形式提供的下载形式还有很多种。比较简单的是直接把文件地址放到页面的链接还有很多种。比较简单的是直接把文件地址放到页面的链接之中。这种方式通常应用在对安全要求不高的场合。除此之之中。这种方式通常应用在对安全要求不高的场合。除此之外,还有通过外,还有通过RequestDispatcher的方式的方式4.3.6 setHeader4.3.6 setHeader方法设置方法设置JSPJSP文件报头文件报头设置设置JSP文件报头可以实现对页面的自动刷新、重定向文件报头可以实现对页面的自动刷新、重定向以及定义页面的内容格式等。在实际项目中,通过设置以及定义页面的内容格式等。在实际项目中,通过设置JSP文件报头来实现对页面的控制有很多的应用。例如可以在报文件报头来实现对页面的控制有很多的应用。例如可以在报头中设置页面不缓存,这对于头中设置页面不缓存,这对于JSP很重要,因为,往往当很重要,因为,往往当JSP的代码已经改变时,页面上的显示还没有任何的变化。的代码已经改变时,页面上的显示还没有任何的变化。这是因为缓存中保留了原有的页面内容。这是因为缓存中保留了原有的页面内容。4.3.6 setHeader4.3.6 setHeader方法设置方法设置JSPJSP文件报头文件报头如果不进行页面缓存,则页面变化会很快的显示出来。如果不进行页面缓存,则页面变化会很快的显示出来。除此之外,还可以设置定期的刷新,以取得最新的数据信息除此之外,还可以设置定期的刷新,以取得最新的数据信息等等。等等。response对象设置报头的方法有对象设置报头的方法有setHeader方法。方法。该方法中返回值为该方法中返回值为void,但是包含两个参数,一个是,但是包含两个参数,一个是String类型的类型的name,一个是,一个是String类型的类型的value。4.4 4.4 处理处理ServletServlet配置信息配置信息configconfig对象对象在有的应用当中,需要获取某个在有的应用当中,需要获取某个Servlet或或JSP页面的页面的初始化参数,初始化参数,JSP的的config对象就能满足这种需求。对象就能满足这种需求。config对象是对象是javax.servlet.ServletConfig类的实例。类的实例。ServletConfig封装了配置在封装了配置在web.xml中初始化中初始化JSP的参数。的参数。JSP中通过中通过config获取这些参数。获取这些参数。4.4.1 config4.4.1 config对象中的方法对象中的方法每个每个JSP文件共有一个文件共有一个config对象。对象。config对象常用的对象常用的方法用以下几种:方法用以下几种:getInitParameter(String name):返回指定参数名):返回指定参数名字的初始参数值,这个参数时配置在字的初始参数值,这个参数时配置在web.xml中的,它的语中的,它的语法为:法为:public java.lang.String getInitParameter (java.lang.String name)。getInitParameterNames:返回该:返回该JSP中所有的初始中所有的初始参数名,它的语法为:参数名,它的语法为:public java.util.Enumeration getInitParameterNames ()。4.4.1 config4.4.1 config对象中的方法对象中的方法getServletName:返回所执行的:返回所执行的Servlet的名字。它的的名字。它的语法为:语法为:public java.lang.String getServletName()getServletContext:返回所执行的:返回所执行的ServletContext对对象。象。4.4.1 config4.4.1 config对象中的方法对象中的方法config对象提供了访问每一个给定的对象提供了访问每一个给定的Servlet的配置参的配置参数的途径。这些配置参数通常保存在一个数的途径。这些配置参数通常保存在一个Web应用的配置文应用的配置文件件web.xml中,当启动该应用的服务时,这些配置参数被读中,当启动该应用的服务时,这些配置参数被读入内存中,进行初始化。入内存中,进行初始化。web.xml文件通常保存在应用的文件通常保存在应用的WEB-INF目录里。目录里。4.4.2 config4.4.2 config对象的使用对象的使用config对象可以获取某个对象可以获取某个Servlet或或JSP页面的配置信页面的配置信息。息。这一小节中,将通过例子来演示这一小节中,将通过例子来演示config对象的方法的使对象的方法的使用。用。4.5 4.5 管理用户会话信息管理用户会话信息sessionsession对象对象对象对象session是是javax.servlet.http.HttpSession类的实类的实例。例。session与与cookie是记录客户访问信息的两种机制,是记录客户访问信息的两种机制,session用于在服务器端保存用户信息,用于在服务器端保存用户信息,cookie用于在客户用于在客户端保存用户信息。端保存用户信息。Servlet中需要通过中需要通过request.getSession()来获取来获取session对象,而对象,而JSP中可以直接使用。如果中可以直接使用。如果JSP中中配置了配置了,则隐藏对象,则隐藏对象session不可用。不可用。4.5.1 session4.5.1 session对象中的方法对象中的方法每个用户对应一个每个用户对应一个session对象。对象。session中常用的方中常用的方法有以下几种:法有以下几种:getMaxInactiveInterval():该方法返回:该方法返回session的最的最大允许的间隔时间,以秒为单位。大允许的间隔时间,以秒为单位。getCreationTime():该方法返回():该方法返回session的创建时的创建时间。间。4.5.1 session4.5.1 session对象中的方法对象中的方法getId():该方法获取会话标识符,返回:该方法获取会话标识符,返回session的的id。getLastAccessedTime():返回最后发送请求的时():返回最后发送请求的时间,返回该间,返回该session最后一次访问的时间。最后一次访问的时间。invalidate():该方法表示():该方法表示session对象失效。对象失效。4.5.1 session4.5.1 session对象中的方法对象中的方法isNew():该方法用来表示每个请求是否会产生新的():该方法用来表示每个请求是否会产生新的session对象。对象。setAttribute(String name, Object value):该方法用:该方法用来设置来设置session。getAttribute(String name):该方法返回:该方法返回session中属中属性名为性名为name的对象的对象4.5.1 session4.5.1 session对象中的方法对象中的方法getAttributeNames():该方法用来获取():该方法用来获取session中中全部属性名。全部属性名。removeAttribute(String name):该方法用来删除):该方法用来删除属性名为属性名为name的的session。4.5.2 4.5.2 使用使用sessionsession对象存取数据对象存取数据在上述方法中,存取数据主要是由在上述方法中,存取数据主要是由session对象的对象的setAttribute和和getAttribute方法来完成。下面对这两个方方法来完成。下面对这两个方法进行详细介绍。法进行详细介绍。session对象的对象的setAttribute方法的语法为:方法的语法为:public void setAttribute(java.lang.String name, java.lang.Object value)4.5.2 4.5.2 使用使用sessionsession对象存取数据对象存取数据该方法作用是向该方法作用是向session中添加一个属性及相应的属性中添加一个属性及相应的属性值,属性对应的属性名是以个值,属性对应的属性名是以个String类型类型name,属性值是,属性值是一个一个Object类型的类型的value。这个属性值。这个属性值value可以是一个对象。可以是一个对象。如果方法中属性名已经存在,则将此属性名对应的属性值替如果方法中属性名已经存在,则将此属性名对应的属性值替换成最新设置的值。换成最新设置的值。setAttribute方法的在方法的在JSP中的写法如中的写法如下所示。下所示。4.5.2 4.5.2 使用使用sessionsession对象存取数据对象存取数据session对象的对象的getAttribute方法的语法为:方法的语法为:public java.lang.Object getAttribute(java.lang.String name)4.5.2 4.5.2 使用使用sessionsession对象存取数据对象存取数据该方法返回在该方法返回在session中一个指定属性名的属性值对象,中一个指定属性名的属性值对象,该属性名该属性名name是一个是一个String类型的数据,如果此属性没有类型的数据,如果此属性没有对应的属性值,则返回对应的属性值,则返回null。getAttribute方法在方法在JSP中的中的用法如下所示。用法如下所示。4.5.2 4.5.2 使用使用sessionsession对象存取数据对象存取数据在使用在使用setAttribute和和getAttribute方法的时候,参数方法的时候,参数name都是都是String类型的,用类型的,用getAttribute方法获得的数据是方法获得的数据是一个一个Object类型的,要根据实际情况进行类型转化。否则程类型的,要根据实际情况进行类型转化。否则程序运行时会抛出强制类型转换异常。序运行时会抛出强制类型转换异常。4.5.3 getAttributeNames4.5.3 getAttributeNames的用法的用法getAttributeNames方法是用来获得方法是用来获得session中所有的中所有的属性名。当属性名。当session中有多个属性名时,可以用该方法来获中有多个属性名时,可以用该方法来获得存储在得存储在session中所有的属性名,然后再遍历每个属性,中所有的属性名,然后再遍历每个属性,通过通过getAttribute方法把每个属性值解析出来。方法把每个属性值解析出来。session对对象象getAttributeNames方法的语法如下所示。方法的语法如下所示。public java.util.Enumeration getAttributeNames ()4.6 4.6 应用程序的全局对象应用程序的全局对象applicationapplication对对象象一个一个Web应用程序对应的是一个应用程序对应的是一个application对象,也对象,也即即application对象是一个对象是一个Web应用范围内的全局变量,它应用范围内的全局变量,它用来在所有用户间共享信息,并可以在用来在所有用户间共享信息,并可以在Web应用程序运行期应用程序运行期间持久地保持数据。通过间持久地保持数据。通过application对象保存的数据,可对象保存的数据,可以在整个以在整个Web应用中共享,除非重启了此应用中共享,除非重启了此Web应用。应用。4.6.1 什么是什么是applicationapplication对象对象application对象是对象是javax.servlet.ServletContext接口接口的实现的实现。application封装了封装了JSP所在的所在的Web应用程序的信息应用程序的信息,例如,例如web.xml中配置的全局的初始化信息。中配置的全局的初始化信息。Servlet中中application对象需要通过对象需要通过ServletConfig.getServletContext()来获取。整个来获取。整个Web应用程序对应一个应用程序对应一个application对象。对象。4.6.1 什么是什么是applicationapplication对象对象application对象常用的方法有以下几种:对象常用的方法有以下几种:setAttribute(String name,String value):该方):该方法用于设置应用对象法用于设置应用对象application指定名字的属性值。指定名字的属性值。getAttribute(String name):该方法返回):该方法返回application中属性名为中属性名为name的对象,用来读取存储在的对象,用来读取存储在application中的属性值。中的属性值。4.6.1 什么是什么是applicationapplication对象对象getAttributeNames():该方法返回:该方法返回application中的所中的所有属性名。有属性名。getInitParameter(String name):该方法返回全局初:该方法返回全局初始化参数,用来读取应用程序中全局初始化的参数。始化参数,用来读取应用程序中全局初始化的参数。getInitParameterNames():该方法返回所有的全局初:该方法返回所有的全局初始化参数,用来读取应用程序中所有的全局初始化参数。始化参数,用来读取应用程序中所有的全局初始化参数。4.6.1 什么是什么是applicationapplication对象对象getServletInfo():该方法返回():该方法返回Servlet编译器中当前编译器中当前版本信息。版本信息。getServletNames():该方法返回所有的():该方法返回所有的Servlet名名称,返回类型为枚举类型。称,返回类型为枚举类型。getServlets():该方法返回所有的():该方法返回所有的Servlet,返回类,返回类型是枚举类型。型是枚举类型。getContext(String URLPath):该方法返回正在执):该方法返回正在执行的行的Web应用的应用的application对象。对象。4.6.1 什么是什么是applicationapplication对象对象getMineType(String file):该方法返回指定文件的):该方法返回指定文件的MIME类型。类型。getResource(String path):该方法返回指定资源):该方法返回指定资源的的URL路径。路径。log(String message):把指定信息写入):把指定信息写入Servlet文文件的日志记录中。件的日志记录中。4.6.1 什么是什么是applicationapplication对象对象log(String message,Throwable throwable):该):该方法把栈轨迹和给出的方法把栈轨迹和给出的Throwable异常说明信息写入异常说明信息写入Servlet的日志文件中。的日志文件中。getRequestDispatcther(String URLPath):该方):该方法返回指定资源的法返回指定资源的RequestDispatcher对象。对象。4.6.1 什么是什么是applicationapplication对象对象getNamedDispatcher(String name):该方法传递):该方法传递一个指定资源名称参数,用来获得指定资源名对应的一个指定资源名称参数,用来获得指定资源名对应的RequestDispatcher对象。对象。4.6.2 4.6.2 设置和读取全局变量设置和读取全局变量application中提供了中提供了setAttribute方法来设置全局变量,方法来设置全局变量,设置全局变量以后,可以用设置全局变量以后,可以用getAttribute方法来读取设置的方法来读取设置的变量。变量。setAttribute方法用来向方法用来向application中添加一个属性和中添加一个属性和该属性对应的值。如果此属性名已经存在,则将此属性名对该属性对应的值。如果此属性名已经存在,则将此属性名对应的属性值替换成最应的属性值替换成最4.6.2 4.6.2 设置和读取全局变量设置和读取全局变量新设置的值。新设置的值。getAttribute方法返回在方法返回在application中一中一个指定属性名的属性值对象,如果此属性没有对应的属性值,个指定属性名的属性值对象,如果此属性没有对应的属性值,则返回则返回null。在读取属性值时,要把获得的数据强转成所需。在读取属性值时,要把获得的数据强转成所需要数据类型,否则程序运行时会抛出类型转换异常。要数据类型,否则程序运行时会抛出类型转换异常。4.6.3 4.6.3 获取应用程序初始化信息获取应用程序初始化信息application提供了一些方法用来获取应用程序的初始提供了一些方法用来获取应用程序的初始化信息,这样可以把安装信息和给定的应用程序关联起来。化信息,这样可以把安装信息和给定的应用程序关联起来。在实际应用中,有时需要对整个应用系统进行参数初始化设在实际应用中,有时需要对整个应用系统进行参数初始化设置。以使得在整个应用系统范围内,都能够获取此参数值。置。以使得在整个应用系统范围内,都能够获取此参数值。例如添加某个配置文件等。设置此初始化参数的工作,是在例如添加某个配置文件等。设置此初始化参数的工作,是在一个一个Web应用系统的配置文件应用系统的配置文件web.xml中完中完4.6.3 4.6.3 获取应用程序初始化信息获取应用程序初始化信息成。有了此初始的配置参数后,当服务启动,应用配置成。有了此初始的配置参数后,当服务启动,应用配置信息读入内存,运行信息读入内存,运行Servlet或或JSP页面,在此页面,在此Servlet或或JSP页面中就可以通过页面中就可以通过application对象来获取此值。对象来获取此值。4.6.4 RequestDispatcher4.6.4 RequestDispatcher方法方法前边介绍过页面重定向的两种方式:一种是使用前边介绍过页面重定向的两种方式:一种是使用HttpServletResponse的的sendRedirect方法(在方法(在4.3.2小节小节中介绍),一个是使用中介绍),一个是使用RequestDispatcher的的forword方法方法(在(在4.2.8小节中介绍)。小节中介绍)。RequestDispatcher是一个是一个Web资源的包装器,可以把当前资源的包装器,可以把当前request请求传递到该资源包装请求传递到该资源包装器中。在器中。在ServletContext对象中,有两个方法可对象中,有两个方法可4.6.4 RequestDispatcher4.6.4 RequestDispatcher方法方法以获得以获得RequestDispatcher,分别是:,分别是:getNamedDispatcher和和getRequestDispatcher,它们都,它们都是把是把Web资源和资源和RequestDispatcher对象联系起来。对象联系起来。getNamedDispatcher通过一个已命名的通过一个已命名的Servlet名称来获名称来获得指定资源名对应的得指定资源名对应的RequestDispatcher对象,对象,RequestDispatcher方法通过一个相对的方法通过一个相对的URL路径来指定资路径来指定资源对应的源对应的RequestDispatcher对象。对象。4.6.4 RequestDispatcher4.6.4 RequestDispatcher方法方法在部署一个在部署一个Servlet程序的时候,都要在程序的时候,都要在web.xml文件文件(一般在(一般在Web工程的工程的WebRoot目录下的目录下的WEB-INF目录中)目录中)中配置中配置Servlet名称和名称和Servlet路径。可以通过路径。可以通过Servlet名称来名称来访问访问Servlet。4.7 4.7 引用当前页面引用当前页面pagepage对象对象page对象为对象为javax.servlet.jsp.HttpJspPage类的实例。类的实例。page对象代表当前对象代表当前JSP页面,是当前页面,是当前JSP编译后的编译后的Servlet类的对象。它可以从类的对象。它可以从JSP小脚本程序和表达式中获得一个隐小脚本程序和表达式中获得一个隐藏变量。藏变量。JSP页面有个实现类,这个实现类是在首次执行页面有个实现类,这个实现类是在首次执行JSP页面自动生成。当脚本语言室页面自动生成。当脚本语言室Java时,时,page对象相当对象相当于普通于普通Java类中的关键字类中的关键字this。page对象有两种功能:对象有两种功能:4.7 4.7 引用当前页面引用当前页面pagepage对象对象一种是提供契约服务。一种是提供契约服务。page对象是对象是javax.servlet.jsp.HttpJspPage类的实例,所以它能满足类的实例,所以它能满足JSP容器和容器和JSP页面之间的协议。这个接口提供了一些的方页面之间的协议。这个接口提供了一些的方法,分别为:法,分别为:jspInit()方法、()方法、jspService()方法和()方法和jspDestroy()方法。这些方法由()方法。这些方法由JSP容器调用。容器调用。page对象提供的契约对象提供的契约服务,就是指服务,就是指page满足满足JSP容器和容器和JSP页面之间的协议。页面之间的协议。4.7 4.7 引用当前页面引用当前页面pagepage对象对象一种是访问服务器小程序信息。一种是访问服务器小程序信息。page对象还扩展了对象还扩展了Javax.servlet.Servlet接口。接口。Servlet接口中,提供了接口中,提供了getServletConfig方法和方法和getServletInfo方法,方法,page对象可对象可以调用这两个方法。以调用这两个方法。getServletConfig方法用来获取当前页方法用来获取当前页面的面的config变量。变量。getServletInfo方法用来获得方法用来获得Servlet程序程序中的相关信息。中的相关信息。4.8 4.8 本章小结本章小结本章从对象的定义入手,通过实例和理论结合,比较深本章从对象的定义入手,通过实例和理论结合,比较深入的介绍了入的介绍了JSP的几个常用对象。在要掌握的几个常用对象。在要掌握JSP技术,就要技术,就要对对JSP中的这些对象深入的了解。这些对象在不同的应用场中的这些对象深入的了解。这些对象在不同的应用场合都有不同的用处,其中合都有不同的用处,其中request、response、session和和application这这4个对象是最常用的,所个对象是最常用的,所4.8 4.8 本章小结本章小结以在本章中对这以在本章中对这4个对象也进行了深入的讲解。本章的个对象也进行了深入的讲解。本章的内容主要是先介绍相关对象的概念及其常用用法,再结合实内容主要是先介绍相关对象的概念及其常用用法,再结合实际项目中常用的应用,对相关方法进行详细的描述,并辅之际项目中常用的应用,对相关方法进行详细的描述,并辅之以示例说明。在这一章中涉及到了以示例说明。在这一章中涉及到了Servlet中的一些内容,中的一些内容,下一章将会详解介绍下一章将会详解介绍Servlet的相关知识。的相关知识。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号