《第5章 JSP内置对象.ppt》由会员分享,可在线阅读,更多相关《第5章 JSP内置对象.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1-1北京源智天下科技有限公司联系方式:http:/第5章 JSP内置对象本章将介绍JSP的内置对象,并对JSP内置对象进行分类。将详细介绍其中的JSP内置对象,包括request、response、out、session等等。l熟练使用JSP内置对象保存属性。l熟练JSP属性保存的四个范围。l熟练使用request对象取得参数值。l了解其他各对象的常用方法。1-2北京源智天下科技有限公司联系方式:http:/5.1 JSP内置对象分类根据各对象的作用不同,可以将这九个对象分为如下四类。l第一类:与Servlet有关的内置对象。包括page和config两个对象。l第二类:与Input/Out
2、put有关的内置对象包括out、request和response三个对象。l第三类:与Context有关的内置对象包括session、application和pageContext三个对象。l第四类:与Error有关的内置对象。仅包括exception这一个对象。1-3北京源智天下科技有限公司联系方式:http:/5.2 属性保存范围在JSP中可以通过setAttribute()和getAttribute()这两个方法来设置和取得属性,从而实现数据的共享。同样JSP中提供了四种属性保存范围,分别为page、request、session以及application。5.2.1 page范围 所谓
3、page范围,就是指设置的属性只在当前页面有效。通过使用pageContext的setAttribute()方法来设置属性,并通过pageContext的getAttribute()方法来取得属性。示例代码 PageScopeDemo.jsp5.2.2 request范围 所谓request范围,就是指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就失效了。这里所指的跳转是指客户端跳转,比如客户单击超链接跳转到其他页面,或者通过浏览器地址栏浏览其他网页。如果使用服务器端跳转,则该属性仍然有效。通过使用request的setAttribute()方法来设置属性,并通过r
4、equest的getAttribute()方法来取得属性。示例代码 RequestScopeDemo.jsp1-4北京源智天下科技有限公司联系方式:http:/5.2 属性保存范围5.2.3 session范围 所谓session范围,也就是指客户浏览器与服务器一次会话范围内,如果和服务器断开连接,那么这个属性也就失效了。通过使用session的setAttribute()方法来设置属性,并通过session的getAttribute()方法来取得属性。示例代码 PageScopeDemo.jsp5.2.4 application范围 所谓application范围,也就是指在整个服务器范围,
5、直到服务器停止以后才会失效。通过使用application的setAttribute()方法来设置属性,并通过application的getAttribute()方法来取得属性。示例代码 ApplicationScopeDemo.jsp5.2.5 移除属性只需调用相应对象的removeAttribute()方法就可以移除指定属性。示例代码 RemoveAttributeDemo.jsp 1-5北京源智天下科技有限公司联系方式:http:/5.3 request对象 request对象不但可以用来设置和取得request范围变量,还可以用来获得客户端请求参数、请求的来源、表头、cookies等。
6、该对象封装了用户的提交信息,可以通过调用该对象的相应的方法来获取到用户的提交信息。5.3.1 获得客户端请求参数示例代码 RequestDemo.jsp 5.3.2 获得所有的参数名称示例代码 RequestDemo2.jsp RequestDemo3.jsp 5.3.3 获得参数的所有参数值示例代码 RequestDemo4.jsp 5.3.4 获得封装所有参数值的Map示例代码 RequestDemo5.jsp 1-6北京源智天下科技有限公司联系方式:http:/5.3.5 request对象的其他方法方 法返 回 值方法说明getHeader(String name)String获得指定
7、标题名称为name的标头gettHeaderName()Enumeration获得所有的标头名称getIntHeader(String name)int获得标题名称的name的标头,内容以整数类型返回getDateHeader(String name)long获得标题名称的name的标头,内容以日期类型返回getCookies()Cookie获得相关的cookiesgetContextPath()String获得Context的路径getMethod()Sting获得客户端的提交方式getProtocol()String获得使用的HTTP协议getQueryString()String获得请求
8、的字符串getRequestedSeesionId()String获得客户端的Session IDgetRequestURI()String获得请求URLgetRemoteAddr()String获得客户端IP地址续表 getRemoteHost()String获得客户端的主机名称getRmotePort()int获得客户端主机端口号getRemoteUser()String获得客户端名称1-7北京源智天下科技有限公司联系方式:http:/5.4 response对象 response对象用来给客户端传送输出信息。可以对用户的请求作出相应,并向客户端发送数据。可以通过Response对象来添加
9、新的Cookie或者数据标记,或者是改变页面的MIME内容类型。5.4.1 实现页面跳转 可以通过response对象的sendRedirect()方法设置页面重定向,从而实现页面跳转。这种跳转将改变浏览器地址栏信息,所以也称为客户端跳转。示例代码 ResponseDemo.jsp5.4.2 实现页面自动刷新 可以通过response对象的addIntHeader()方法添加一个标题为Refresh的标头,并指定刷新间隔时间,从而实现页面自动刷新。示例代码 ResponseDemo2.jsp5.4.3 实现页面自动跳转 可以通过response对象的addHeader()方法添加一个标题为Re
10、fresh的标头,并指定页面跳转时间及跳转页面,从而实现页面自动跳转。示例代码 ResponseDemo3.jsp 1-8北京源智天下科技有限公司联系方式:http:/5.5 out对象 out对象用来向网页输出信息。该对象主要是向客户端发送各种格式的数据,而且该对象以对服务器上的输入缓冲区进行管理。5.5.1 使用out对象进行页面输出 通过out对象的print()方法和println()方法进行页面输出,不同的println()方法输出完成后,会在字符串后面添加换行标记。示例代码 OutDemo.jsp5.5.2 使用out对象求得缓冲区使用大小 通过out对象的getBufferSiz
11、e()方法可以获得缓冲区的大小,而通过getRemaining()方法可以获得缓冲区剩余大小。通过这两个值可以很容易地求得缓冲区使用大小。示例代码 OutDemo2.jsp1-9北京源智天下科技有限公司联系方式:http:/5.6 session对象 session对象用来表示用户的会话状况,一般用于保存用户的各种信息,直到生命周期超时或者被认为释放掉为止。当加载第一个JSP页面的时候会自动创建一个Session对象,在此期间完成会话的管理。5.6.1 设置并获得session生命周期 通过session对象的setMaxInactiveInterval()方法可以设置session的生命周期
12、,可以通过其getMaxInactiveInterval()方法来获得session的生命周期。示例代码 SessionDemo.jsp5.6.2 获得session的其他信息 通过调用session对象的其他方法可以获得与session相关的更多信息,如session的ID、session的生成时间等。示例代码 SessionDemo2.jsp1-10北京源智天下科技有限公司联系方式:http:/5.7 application对象对象 application对象用来取得和设置Servlet的相关信息。application对象的生命周期是从服务器启动产生直到服务器关闭为止,在此期间所有的用户
13、会共享这一个Application对象。该对象只可以由服务器来创建和清除,而用户不可以对其进行创建和清除操作。5.7.1 通过application对象获得服务器版本 通过application对象的getMajorVersion()方法和getMinorVersion()方法,可以很方便地获得主要的Servlet API版本和次要的Servlet API版本。同时通过其getServerInfo()方法,可以获得服务器版本。示例代码 ApplicationDemo.jsp5.7.2 通过application对象获得其他信息 通过调用application对象的其他方法可以获得更多信息,如文
14、件的MIME类型、获得指定Local的Application context等。示例代码 ApplicationDemo2.jsp1-11北京源智天下科技有限公司联系方式:http:/5.8 pageContext对象象 pageContext对象不但可以用来设置page范围的属性,同样也可以用来设置其他范围属性,不过需要指定范围参数。通过pageContext对象还可以获得其他内置对象。方 法返 回 值方法说明getException()Exception获得当前的exception内置对象getOut()JspWriter获得当前的out内置对象getPage()Object获得当前的pa
15、ge内置对象getRequest()ServletRequest获得当前的request内置对象getResponse()ServletResponse获得当前的response内置对象getServletConfig()ServletConfig获得当前的config内置对象1-12北京源智天下科技有限公司联系方式:http:/5.8 pageContext对象象getServletContext()ServletContext获得当前的application内置对象getSession()HttpSession获得当前的session内置对象getAttribute(String name
16、,int scope)Object获得指定范围的name属性值getAttributeNamesInScope(int scope)Enumeration获得指定范围的所有属性名称getAttributesScope(String name)int获得属性名称为name的属性范围removeAttribute(String name)void移除属性名称为name的属性removeAttribute(String name,int scope)void 移除指定范围的属性名称为name的属性setAttribute(String name,Object value,int scope)void
17、设置指定范围的name属性findAttribute(String name)Object寻找所有范围的属性名称为name的属性1-13北京源智天下科技有限公司联系方式:http:/5.9 page对象象 page对象代表JSP转译后的Servlet,通过page对象可以非常方便地调用Servlet类中定义的方法。示例代码 pageDemo.jsp 1-14北京源智天下科技有限公司联系方式:http:/5.10 config对象象 config对象可以用来获得Servlet的配置信息,该对象允许JSP开发人员访问Servlet或者是JSP引擎的初始化参数,这样就可以获取例如路径或文件位置的全局
18、信息。方 法返 回 值方法说明getInitParameter(name)String获得Servlet初始化参数getInitParameterNames()Enumeration获得Servlet所有初始化参数名称getServletContext()ServletContext获得当前Application contextgetServletName()String获得Servlet名称1-15北京源智天下科技有限公司联系方式:http:/5.11 exception对象象 exception对象用来处理错误异常,如果要使用exception对象,必须指定page中的isErrorPag
19、e属性值为“true”。通常在JSP开发中需要在页面中加入page指令的errorPage属性来将其指向一个专门处理错误的页面。示例代码 ExceptionDemo01.jsp ExceptionDemo02.jsp1-16北京源智天下科技有限公司联系方式:http:/5.12 综合练习综合练习 下面来看一个简单的用户登录案例,该案例包含4个文件,一个是登录表单页LoginForm.jsp,一个是登录判断页,一个是登录成功页,一个是登录失败页。1-17北京源智天下科技有限公司联系方式:http:/5.13 小结小结 JSP包含的内置对象非常多,其中最重要的是通过内置对象设置属性保存范围。这4个属性保存范围对于后面的学习非常重要,建议读者对照示例认真学习,直到完全弄懂。使用request对象获得客户端请求参数同样也是学习的重点,至于其他的对象及属性,读者只要有一个印象即可。