《《JSP的内置对象》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《JSP的内置对象》PPT课件.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 JSP的内置对象学习目标熟悉主要内置熟悉主要内置对象的概念象的概念理解主要内置理解主要内置对象的作用域和生命期象的作用域和生命期理解主要内置理解主要内置对象的作用和关系象的作用和关系熟悉主要内置熟悉主要内置对象的使用方法象的使用方法什么是JSP内置对象JSP 内置内置对象是象是 Web 容器容器创建的一建的一组对象象JSP 内置内置对象是可以直接在象是可以直接在JSP页面使用的面使用的对象象,无需使用,无需使用“new”获取取实例例 常用内置常用内置对象象 request responseoutapplicationsession示例示例 没有出没有出现new关关键字,但却可以使用字,但却可
2、以使用request对象象pageJSP内置对象OUTout对象用于向客象用于向客户端端输出数据出数据out对象常用方法:象常用方法:print():在页面中打印出字符串信息Println():在页面中打印出字符串信息,并在末尾回车JSP内置对象REQUESTrequest对象主要用于处理客户端请求JSP 页页面面request 对象象客客户端端 请求求请求信息求信息JSP内置对象REQUEST方法名称说明String getParameter(String name)根据页面表单组件名称获取页面提交数据 String getParameterValues(String name)获取一个页面
3、表单组件对应多个值时的用户的请求数据 void setCharacterEncoding(String charset)指定每个请求的编码 在调用request.getParameter()之前进行设定,可以解决中文乱码问题 request.getRequestDispatcher(String path)返回一个javax.servlet.RequestDispatcher对象,该对象的forward方法用于转发请求 request对象常用方法JSP内置对象REQUEST编程程实现注册功能注册功能注册信息包括:用户名、密码、兴趣页面提交后,显示输入的数据问题分析:分析:在一个在一个页面面创建
4、表建表单,提供信息,提供信息输入窗口,入窗口,在另一在另一页面,使用面,使用request对象象获取表取表单信息。信息。程序程序结构:构:reginput.jsp页面面创建表建表单(信息信息输入窗口入窗口),用用户提交信息后,提交信息后,页面定向到面定向到reginfo.jsp页面。面。页面交互关系如面交互关系如图所示。所示。页面交互关系程序算法:程序算法:reginput.jsp:创建一表建一表单,包含一个文本控件一个密,包含一个文本控件一个密码控件,一控件,一个复个复选框,一个提交按框,一个提交按钮和一个重置按和一个重置按钮 reginfo.jsp 1.获取文本框,密取文本框,密码框和复框
5、和复选按按钮和提交控件的和提交控件的值 2.输出文本框,密出文本框,密码框和复框和复选按按钮和提交控件的和提交控件的值reginput.jsp页面页面reginfo.jsp页面页面提交提交JSP内置对象 用用户户名:名:密密码码:兴兴趣:趣:读书读书 打打篮篮球球玩游玩游戏戏看看电电影影 String channels=request.getParameterValues(channel);if(channels!=null)for(int i=0;i channels.length;i+)out.println(channelsi);request.setCharacterEncoding(
6、GBK);request.getParameter(“name”);request.getParameter(pwd);实验显示一个网上改卷的功能示一个网上改卷的功能要求:一个要求:一个页面面输出出单选试题,由另一,由另一页面面获取用取用户选择,统计考生得分。考生得分。第一个第一个页面包含两面包含两组单选按按钮。第二个第二个页面面 获取用户提交的答案与正确答案比较,统计得分输出考试结果效果如效果如图所示:所示:JSP内置对象RESPONSEresponse对象用于响象用于响应客客户请求并向客求并向客户端端输出信息出信息 response 对象常用方法象常用方法void sendRedirect
7、(String location):将请求重新定位到一个不同的URLJSP 页页面面response 对象象客客户端端响响应从服从服务器中器中检索的信息索的信息存存储信息,以在响信息,以在响应客客户端端请求求时发送此信息送此信息内置对象RESPONSE的常用方法方法名称说明addHeader(String head,String value)向包里添加一个头(head)及对应值(value)sendRedirect(URL url)实现客户重定向setStatus(int n)置响应的状态代码。下面是服务器响应客户时,发送到客户端的状态代码描述状态代码 代码说明 101 服务器正在升级协议 1
8、00 客户可以继续 201 请求成功且在服务器上创建了新的资源 202 请求已被接受但还没有处理完毕200 请求成功 203 客户端给出的原信息不是发自服务器的 204 请求成功,但没有新信息 状态代码 代码说明 205客户必须重置文档视图 206服务器执行了部分get请求 300请求的资源有多种表示 301资源已经被永久移动到新位置 302资源已经被临时移动到新位置303应答可以在另外一个URL中找到304Get方式请求不可用 305请求必须通过代理来访问 状态代码 代码说明 400请求由语法错误 401请求需要HTTP认证 403取得了请求但拒绝服务 404请求的资源部可用405请求所用的
9、方法是不允许的 406请求的资源只能用请求不能接受的内容特性来响应 407客户必须得到认证 408请求超时 状态代码 代码说明 409发生冲突,请求不能完成 410请求的资源已经不可用 411请求需要一个定义的内容长度才能处理 413请求太大,被拒绝414请求的URL太大415请求的格式被拒绝 状态代码 代码说明 500服务器发生内部错误,不能服务 501不支持请求的部分功能 502从代理和网关接受了不合法的字符 503HTTP服务暂时不可用 504服务器在等待代理服务器应答时发生超时505不支持请求的HTTP版本 实验要求:在要求:在页面中,面中,实时显示当前示当前时间问题分析:分析:要要实
10、时显示当前示当前时间,必,必须每秒每秒钟刷新一次刷新一次页面,面,这就要求向客就要求向客户输出的响出的响应包中,必包中,必须含有含有响响应头”Refresh”,其其值为1,单位是秒。位是秒。程序程序设计 1.输出当前出当前时间 2.添加响添加响应头”Refresh”,其其值是是1。现现在的在的时间时间是是:实验功能:要求使用功能:要求使用response对象象实现页面的重定向面的重定向要求:要求:实现从一个网从一个网页到另一个网到另一个网页的重定向的重定向程序程序设计:Where to go(见WORD文档文档)JSP内置对象-SESSION客客户与服与服务器的通器的通讯是通是通过HTTP协议
11、完成的。但是,完成的。但是,HTTP协议是一种无状是一种无状态协议。即,一个客。即,一个客户向服向服务器器发送送请求求(request),然后服然后服务器返回响器返回响应(response),连接就关接就关闭了。服了。服务器端不保器端不保留客留客户与服与服务器每一次器每一次连接的信息,因此,服接的信息,因此,服务器无法判断上下器无法判断上下两次两次连接是否是同一客接是否是同一客户。要想。要想记住客住客户的的连接信息,必接信息,必须使用使用会会话对象象(session)。session对象象记录了每个客了每个客户与服与服务器的器的连接信息。接信息。SESSION对象的常用方法public voi
12、d setAttribute(String key.Object obj)session 对象象类似于散列表,可以似于散列表,可以调用用该方法方法将参数将参数Object指定的指定的对象象obj添加到添加到session对象中,并象中,并为添加的添加的对象指定了一个索引关象指定了一个索引关键字。如果添加的两个字。如果添加的两个对象的关象的关键字相同,字相同,则先先前添加的前添加的对象被清除。象被清除。public Object getAttibue(String key)获取取session对象中含有的关象中含有的关键字是字是key的的对象。由于任何象。由于任何对象都可以添加到象都可以添加到s
13、ession对象象中,因此用中,因此用该方法取回方法取回对象是,象是,应强制制转化化为原来的原来的类型。型。public Enumeration getAttributeName()session 对象象调用用该方法方法产生一个枚生一个枚举对象。象。该枚枚举对象使用象使用nextElemets()方法遍方法遍历session对象象所含有的全部所含有的全部对象。象。public long getCreationTime()session对象象调用用该方法可以方法可以获取取该对象象创建的建的时间。单位是毫秒(从位是毫秒(从1970年年7月月1日午夜起至日午夜起至该对象象创建建时刻所走刻所走过的毫秒
14、数)。的毫秒数)。public long getLastAccessedTime()获取当前取当前session对象最后一次被操作的象最后一次被操作的时间,单位是毫秒位是毫秒public int getMaxInactiveInterval()获取取session对象的生存象的生存时间public void setMaxInactiveInterval(int n)设置置session对象的生存象的生存时间(单位是秒)位是秒)public void removeAttribue(String key)从当前从当前session对象中象中删除关除关键字是字是key的的对象。象。public St
15、ring getId()获取取session对象的象的编号号invalidate()使使session对象无效象无效public boolean isNew()判断是否是一个新的客判断是否是一个新的客户统计第几个人访问网页见WORD文档实验JSP内置对象-APPLICATION我我们已已经知道,不同的客知道,不同的客户与服与服务器器连接接时有不同的有不同的session对象,同一客象,同一客户浏览同一服同一服务器的不同目器的不同目录时,有不同的,有不同的session对象。象。与与session对象不同的是象不同的是application对象。服象。服务器启器启动后,就后,就产生了生了appl
16、ication对象。所有客象。所有客户的的application对象是象是相同的一个,即,所有客相同的一个,即,所有客户共享共享这个内置的个内置的application对象。象。application对象生命期象生命期 application对象随着服象随着服务器启器启动而而创建,随着建,随着服服务器关器关闭而消失。而消失。application对象的生命周象的生命周期指从期指从application对象象创建到服建到服务器关器关闭这段段时间。application对象与象与线程程当多个客当多个客户点点击同一同一页面面时,JSP引擎引擎为每个每个客客户启启动一个一个线程,程,这些些线程共享同一
17、个程共享同一个application对象由于所有客象由于所有客户共享同一个共享同一个application 对象,任何客象,任何客户对application对象中数据的改象中数据的改变都会影响到其它的客都会影响到其它的客户,因此,因此,对该对象的操作需要象的操作需要实现同步同步处理。理。application对象的常用方法象的常用方法public void setAttribute(String key,Object obj)application对象可以象可以调用用该方法将参数方法将参数Object指指定的定的对象象obj添加到添加到application对象中,并象中,并为添加添加的的对象
18、指定一个索引关象指定一个索引关键字。如果添加的两个字。如果添加的两个对象象的关的关键字相同,字相同,则先前添加的先前添加的对象被清除。象被清除。public Object getAttibue(String key)获取取application对象中含有的关象中含有的关键字字key的的对象。象。由于任何由于任何对象都可以添加到象都可以添加到application对象中,象中,因此用因此用该方法取回方法取回对象象时,应强制制转化化为原来的原来的类型。型。public Enumeration getAttributeNames()application对象条用象条用该方法方法产生一个枚生一个枚举对
19、象。象。该枚枚举对象使用象使用nextElemets()方法遍方法遍历application对象所含有的全部象所含有的全部对象。象。public void removeAttribue(String key)从当前从当前application对象中象中删除关除关键字是字是key的的对象。象。public String getServletInfo()获取取Servlet编译器的当前版本信息。器的当前版本信息。实验统计页面人数的功能面人数的功能利用利用application变量存取数据量存取数据-简单计数器的数器的实现 您好!您好!欢迎迎访问本站,您是第本站,您是第位客人位客人(PAGE对象pa
20、ge 对象代表象代表JSP页面本身,面本身,更确切地更确切地说,它代表,它代表JSP被被转译后的后的Servlet。其作用相当于。其作用相当于java中的中的this。本章小结本章介本章介绍了了JSP内置内置对象的概念、生命周期、作用范象的概念、生命周期、作用范围和和对象方象方法的法的实际应用。使用用。使用JSP内置内置对象,可以方便操作象,可以方便操作页面属性和行面属性和行为,访问页面运行面运行环境,境,实现页面内、面内、页面面间、页面与面与环境之境之间的通信和相互操作。的通信和相互操作。心得体会心得体会(1)用内置对象request的getParameter()方法获取url的参数和表单的
21、信息。经过测试,在相同name的情况下,url的参数会优先于表单的参数。(2)汉字处理问题,有的时候在或out.print(“欢迎”)时会出现乱码。其解决的办法就是要对字符串进行编码。以下代码就可以得到正确的输出:或者(3)Session对象生命周期,例如一个论坛,从你成功登陆到这个论坛,Session对象就产生;一直到你跟服务器断开,比方说关闭浏览器,断网等Session对象就结束。(4)Application对象与Session对象不同,是多个用户共享此对象,即使用户与服务器断开,Application对象依然存在。直到服务器关闭,才会结束。例如用Application对象可以实现储存网站的访问人数。