1、第3章 JSP内置对象,3,第四次课 内容提要,HTTP协议的工作机制request对象与response对象,HTTP协议,http协议规定了信息在Internet上的传输方法,特别规定了浏览器与服务器的交互方法。 http协议是“请求和响应”协议。,理解HTTP协议工作机制 -请求(request),HTTP请求响应的基本过程如下:,HTTP 请求信息的结构,根据HTTP协议规范,每个HTTP请求主要包含以下信息,HTTP请求信息的结构,POST方法 User Name:Password:,发出POST请求的Html页,HTTP请求信息的结构,POST方法 POST /MyWeb/inde
2、x.jsp HTTP/1.1 Host: 127.0.0.1 User-Agent: ICEBrowser 5.31 Accept: */* content-type: application/x-www-form-urlencoded Connection: Keep-AliveuserName=JBuilder&passWord=Borland,POST请求文本,HTTP请求信息的结构,POST方法 User Name:Password:,等价的发出GET请求的Html页,HTTP请求信息的结构,GET方法 GET www.apache.org HTTP/1.1 Host: 127.0.0
3、.1 User-Agent: ICEBrowser 5.31 Accept: */* Connection: Keep-Alive,GET请求文本,HTTP 请求信息的结构,根据HTTP协议规范,每个HTTP请求主要包含以下信息,理解HTTP协议工作机制,HTTP请求响应的基本过程如下:,HTTP响应信息的结构,按照HTTP协议的规定,一个HTTP响应信息应当包含下列信息:,HTTP响应信息的结构,一个典型的HTTP响应信息HTTP/1.1 200 OK Last-Modified: Sun, 24 Oct 2004 02:44:41 GMT Content-Type: text/html C
4、ontent-Length: 113 Date: Sun, 12 Dec 2004 14:39:37 GMT Server: Apache Coyote/1.0 Welcome to tomcat! Welcome to tomcat!,request对象response对象session对象application对象out对象cookie对象,JSP常用的六大内置对象,JSP内置(隐含)对象概述,JSP根据Servlet API而提供了某些(内置)隐含对象。,不用编写任何额外的代码,在JSP程序中可以直接使用,JSP内置(隐含)对象概述,在JSP页面中可以获得的主要的6个隐含对象变量为:,a
5、pplication对象:用来保存网站的一些全局变量;,session对象:用来保存单个用户访问时的一些信息;,out对象:功能是把信息回送到客户端的浏览器中;,cookie对象:将服务器端的一些信息写到客户端的浏览器中。,request对象:功能是用来获取客户端的请求信息;,response对象:功能是在服务器端生成对客户端的响应;,request对象,当客户端请求一个JSP页面时,JSP容器会将客户端的请求信息包装在这个request对象中,得到Form表单的信息,通常我们用得最多的就是客户端请求的参数名称和参数值信息。得到某参数值的语法为:request.getParameter( “p
6、aramName”); (P34 例1) 注: 空指针异常 见课本P35,得到Form表单的信息,也可以通过request对象的getParameterNames()方法得到客户端传递过来的所有参数名字,如: Enumeration params = request.getParameterNames();,第二种读取值的方法是利用集合,案例名称:使用request对象获取用户提交数据的所有参数名字和值 程序名称:3-2.jsp“);out.println(“Values: “ + request.getParameter(current_param) + “); %,request对象,当客
7、户端请求一个JSP页面时,JSP容器会将客户端的请求信息包装在这个request对象中,得到客户的信息(分析头域),利用request对象可以获得客户提交的信息,比如:客户端的地址、以及服务器的端口等,P39 例子4,汉字问题两种解决方法,当利用request.getParameter得到Form元素的时候,默认的情况字符编码为ISO-8859-1,有时这种编码不能正确的显示汉字。 目前有两种解决方法:一种是在执行操作之前,设置request的编码格式,语法是:“request.setCharacterEncoding(“GBK“);”另一种方法是转换字符编码,详见课本 P36,reponse
8、对象,对客户的请求做出动态的响应,向客户端发送数据。,1、动态contentType响应,使用response对象的setContentType(String s)方法来改变contentType的属性值。 格式:response.setContentType(String s) 参数s可取text/html,application/x-msexcel, application/msword等。,显示为Word文档,案例名称:显示为Word文档 程序名称:3-11.jspresponse对象 setContentType方法将当前页面保存为word文档吗,2、response重定向,对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。相应的代码格式为:“response.sendRedirect(“URL地址“);”,和指令的最大区别就是:只能在本网站内跳转 response.sendRedirect可以跳转到任何一个地址的页面,2、response重定向,练习,参见补充练习,