收藏 分享(赏)

第4章_JSP内置对象.ppt

上传人:weiwoduzun 文档编号:5776654 上传时间:2019-03-16 格式:PPT 页数:73 大小:949.50KB
下载 相关 举报
第4章_JSP内置对象.ppt_第1页
第1页 / 共73页
第4章_JSP内置对象.ppt_第2页
第2页 / 共73页
第4章_JSP内置对象.ppt_第3页
第3页 / 共73页
第4章_JSP内置对象.ppt_第4页
第4页 / 共73页
第4章_JSP内置对象.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、第4章 JSP内 置 对 象,有些成员变量(即对象)不用声明就可以在JSP页面的脚本(Java程序片和Java表达式)中使用,这就是所谓的内置对象。内置对象主要有:resquest、response、session、application、out。,4.1 request对象,1.内置对象request对象是实现了ServletRequest接口类的一个实例。详见:Tomcat5.5webappstomcat-docs servletapijavaxservletServletRequest.html 2.客户通常使用HTML表单向服务器的某个JSP页面提交信息。提交手段:文本框、列表、文本区

2、等。例如:,4.1.1 获取客户提交的信息,1. Tomcat服务器将用户的请求封装在内置对象request中,该对象调用相应的方法可以获取封装的信息, 最常用的方法是:request.getParameter(String s)。 2.例子: http:/127.0.0.1:8080/lizi/ch4/example4_1.jsp http:/127.0.0.1:8080/lizi/ch4/example4_2.jsp,4.1.2 处理汉字信息,JSP的汉字问题:当用request对象获取客户提交的汉字字符时,会出现乱码。 处理汉字信息的方法: String str=request.getP

3、arameter(“msg“);str=new String(name.getBytes(“ISO8859_1“) http:/127.0.0.1:8080/lizi/ch4/example4_3.jsp,JSP的汉字问题的原理,客户端和服务器用gb2312 HTTP传输编码用ISO8859_1 服务器需要指示客户端文档的编码方式,JSP汉字问题的范围,JSP文件的汉字问题 表单处理的汉字问题 Servlet的汉字问题(以后讲解) JDBC的汉字问题(以后讲解),JSP文件的汉字问题,JSP中的汉字字符串在服务器端用gb2312 在编译为Servlet时自动转换为iso8859_1 汉字在传输

4、中是正确的 在没有特别指示下,浏览器中无法正确显示 在HTML中指示浏览器文档的编码在JSP中指示JSP文档的编码每个要显示汉字的JSP文档都应该包含该语句,JSP文件的汉字问题(JSPhanzi.jsp),JSP中的汉字问题,JSP中的汉字问题你好,JSP中增加编码指示后,JSP中的汉字问题,JSP中的汉字问题你好,表单处理中的汉字问题,表单处理涉及到客户端和服务器的完整交互过程 在客户端和服务器是gb2312,传输用ISO8859_1 在服务器端接收到客户端数据时需要转换为gb2312后进行处理,方法 name=new String(name.getBytes(“ISO8859_1); 服

5、务器端指示客户端汉字的显示编码 ,表单处理的汉字问题(hanzilog.jsp),表单中汉字的处理“); %,表单中汉字的处理用户名:?,处理过程(修改后),表单中汉字的处理用户名:测试,表单中汉字的处理“); %,4.1.3 request对象的常用方法 P59,getProtocol():获取请求使用的通信协议,如http/1.1 getServletPath():获取请求的JSP页面所在的目录。 getContentLength():获取HTTP请求的长度。 getMethod():获取表单提交信息的方式,如POST或GET getHeader(String s):获取请求中头的值。 g

6、etHeaderNames():获取头名字的一个枚举。 getHeaders(String s):获取头的全部值的一个枚举。 getRemoteAddr():获取客户的IP地址。 getRemoteHost():获取客户机的名称(如果获取不到,就获取IP地址)。 getServerName():获取服务器的名称。 getServerPort():获取服务器的端口号。 getParameterNames():获取表单提交的信息体部分中name参数值的一个枚举 http:/127.0.0.1:8080/lizi/ch4/example4_4.jsp,4.1.4 使用tag文件处理有关数据,JSP页

7、面负责:获取数据、调用tag文件、显示返回的结果。Tag文件负责处理数据http:/127.0.0.1:8080/lizi/ch4/example4_5.jsp,4.1.5 处理HTML标记,HTML表单 表单是具有输入域、文本域的页面 用于客户端同服务器端交互 用户在客户端填写表单,然后“提交” 服务器接收表单提交来的信息 服务器返回处理情况,HTML表单标记,表单主标记是表单开始标记,结束表单中的标记,列表(下拉列表,滚动列表),表单的例子(log.jsp),表单用户登录 用户名: 密码: ,运行结果,1. form标记,描述表单的特性,语法method表单传输方法 GET方法将表单信息在

8、提交过程显示在地址栏中 POST方法将表单信息不会显示在地址栏中 action为提交信息的目的地页面 enctype为编码方式,2. 标记 P64,表单中输入信息的区域 属性 type 类型 name 名称 id 标识 maxlength 最大字符数 size 输入域宽度 value 域的初始值 button 按钮 用javascript响应,的类型( type属性 ),text 文本 passwowrd 口令方式 checkbox 多选框 name相同 radio 单选按钮 name相同 image 图片 hidden 隐藏表单 发送数据 submit 提交按钮 向服务器提交表单 reset

9、 重置按钮 将表单充置为初始状态 http:/127.0.0.1:8080/lizi/ch4/example4_6.jsp,表单提交,提交方式: submit类型按钮提交表单 通过普通按钮的javascript函数 传输方法依据中的method 推荐使用POST 传输编码依据中的enctype 处理方式依据中的action,表单清除,reset按钮重置表单为初始值,4. 列表框:SELECT,定义列表框: 参数 MULTIPLE 可同时选取多行 NAME 名称 SIZE 可见项目数 不设置size属性的是下拉列表 增加size属性变成滚动列表 每个项目用option标记 属性SELECTED出

10、现在option表示选中,select的例子,北京 天津 上海 重庆 P45 http:/127.0.0.1:8080/lizi/ch4/example4_6.jsp,4. 文本区:TEXTAREA,多行文本域: 参数 COLS:宽度 ROWS:高度 NAME:名称,例子:CPU PIV 1500Memory 512M,5. 表格:,http:/127.0.0.1:8080/lizi/ch4/example4_8.jsp,6. 图片:,例如;lizich2otherusingpichl.html,链接图片文件 描述文字,7.音频和视频:标记,描述文字 常用属性: Autostart 自动播放

11、Loop 重复播放次数 Width、height 播放器窗口大小http:/127.0.0.1:8080/lizi/ch4/example4_9.jsp,综合例子 http:/127.0.0.1:8080/lizi/ch4/html/zonghe.jsp,表单用户注册用户名:密码: 你喜欢:足球 篮球, 性别:男 女 你的计算机CPU PIV 1500Memory 512M你计算机的操作系统 , 你所在地:北京 天津 上海 重庆 ,运行结果,表单的数据确认,客户端确认 减少服务器负载 缩短用户等待时间 兼容性难 服务器端确认 统一确认 兼容性强 服务器负载重,客户端确认,采用javascrip

12、t进行确认 常用函数 isBetween isDate isTime isDigit isEmail isEmpty isInt isReal,客户端确认例子 http:/127.0.0.1:8080/lizi/ch4/html/client.jsp,客户端确认用户登录 用户名: 密码: , function checkform(frm)var flag=true;if(frm.name.value=“)alert(“姓名不能为空,请输入值!“);frm.name.focus();flag=false; return flag; ,运行结果,JSP与客户机的交互,从表单中获得参数 返回参数 表

13、单的服务器端确认,从表单中获得参数,JSP通过request内置对象获取表单信息 用不同的方法获取不同种类的信息 获取参数的主要方法: getParameter() 获取参数的值 getParameterNames() 获取参数的名称 getParameterValues() 获取多个值,getParameter(),可以获得文本框、文本区域、单选、多选的值 表单中各元素的NAME属性是它的唯一标识,用它获取参数。 参考例子1request.getParameter(“boy“);,向客户端输出,使用内置对象out out.println(content) 使用“=”参看P16 example

14、2_4.jspout.println(“您是第“+count+个访问本站的客户“); 参看P14 example2_2.jsp您是第个访问本站的客户。,表单的服务器端确认,在客户端不能用JSP进行确认 分工:数据处理在服务器端 实效性:客户端得到服务器确认后表明数据已经到达服务器 客户端兼容性好 缺点:加大服务器负载和用户等待时间,服务器端确认方法,采用Java类对表单数据进行复杂的检查采用JSP进行确认例子:http:/127.0.0.1:8080/lizi/ch4/html/ server.jsp,服务器端确认的例子,服务器端确认用户登录 用户名:密码: ,loginAction.jsp,

15、确认JSP“);out.println(“密码:“+pwd+“);else %,用户名不能为空用户登录 用户名:“密码:“ ,运行结果,(未输入姓名)直接提交,4.2 response对象,内置对象session由Tomcat服务器负责创建,response对象对客户的请求做出响应,向客户端发送数据 “request” 对象代表的是来自客户端的请求,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值 “response” 对象代表的是服务器对客户端的响应,

16、也就是说可以通过“response”对象来组织发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需要向客户端发送文字时直接使用“out” 对象即可。,4.2.1 动态响应contentType属性,response对象调用setContentType(String s)方法来动态改变contentType的属性值:http:/127.0.0.1:8080/lizi/ch4/example4_10.jsp,4.2.2 response的HTTP文件头,response对象可以使用如下方法: addHeader(String head,String value); setHea

17、der(String head,String value)动态添加新的响应头和头的值 http:/127.0.0.1:8080/lizi/ch4/example4_12.jsp,4.2.3 response重定向 使用response.sendRedirect(“URL”) 实现重定向 http:/127.0.0.1:8080/lizi/ch4/example4_13.jsp4.2.4 response的状态行 http:/127.0.0.1:8080/lizi/ch4/sameWebOne.jsp http:/127.0.0.1:8080/sameWebOne.jsp,4.3 session

18、对象,内置对象session由Tomcat服务器负责创建,session是实现了HttpSession接口类的一个实例 . session对象被分配了一个String类型的ID,Tomcat服务器将ID发送到客户端,存放在客户的Cookie中。 同一用户在同一Web服务目录中的各个页面的session是相同的. 不同用户的session对象互不相同,具有不同的ID 。 http:/127.0.0.1:8080/lizi/ch4/example4_15.jsp,session对象存储数据,(1) public void setAttribute(String key, Object obj)se

19、ssion对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字。 (2)public Object getAttribute(String key)获取session对象含有的关键字是key的对象。 (3)public Enumeration getAttributeNames()session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字。 (4)public void removeAttribute(String name)session对象调用该方法移掉关键

20、字key对应的对象,session对象,常用的方法还包括getId、 getValue、 getValueNames和putValue等。,session对象,概要 HTTP是无状态(stateless)协议; Web Server 对每一个客户端请求都没有历史记忆; Session用来保存客户端状态信息; 由Web Server 写入; 存于客户端; 客户端的每次访问都把上次的session记录传递给Web Server; Web Server读取客户端提交的session来获取客户端的状态信息;,session对象示例(Logon_session.html),姓名,session对象示例L

21、ogon_session.jsp,你的名字“已经写入session check,session对象示例(Check_session.jsp),您还未登录“已经登录,session对象存储数据,阅读分析例子17http:/127.0.0.1:8080/lizi/ch4/example4_17.jsp,在tag文件中使用session对象,阅读分析例子18http:/127.0.0.1:8080/lizi/ch4/example4_18.jsp,session对象的生存期限,客户是否关闭浏览器 session对象是否调用invalidate()方法 session对象达到了设定的“发呆”时间 se

22、ssion对象用于获取和设置生存时间的方法 P84 http:/127.0.0.1:8080/lizi/ch4/example4_19.jsp,session对象实现网页计数器,http:/127.0.0.1:8080/lizi/ch4/example4_20.jsp,4.4 out对象,内置对象out对象是JspWriterout类的一个实例. out对象可调用如下的方法用于各种数据的输出,例如:out.print(),out.println();,Out对象,“out” 对象代表了向客户端发送数据的对象,与“response” 对象不同,通过“out” 对象发送的内容将是浏览器需要显示的内

23、容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。 常用的方法除了pirnt和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。 http:/127.0.0.1:8080/lizi/ch4/example4_21.jsp,4.5 application对象,任何客户在所访问的服务目录的各个页面时,application对象都是同一个,即所有用户共享。 application对象的常用方法 (1)pu

24、blic void setAttribute(String key, Object obj) (2)public Object getAttibue(String key) (3)public Enumeration getAttributeNames() (4)public void removeAttribue(String key),application对象实现网页计数器,网页计数器您是第位访问者!,运行结果(第一次访问),刷新一次,用application制作留言板,http:/127.0.0.1:8080/lizi/ch4/example4_22.jsp,第六周上机:练习JSP编程

25、,1、编写网站的登陆和注册页面(可以暂时不使用数据库)2、查资料整理形成文档:客户端确认的常用JavaScrit函数,例如文本框输入的数据检查是否空值、是否数字、是否字母、是否E-mail、是否包含空格,去空格等功能,必填项目是否为空等;并在注册页面实现相应检查。(交电子档,上机检查)3、P98 第3题注意汉字问题,第7-10周作业:,1、查资料整理形成文档:用3种以上的方法实现网页计数功能;并在自己的网站实现其中一种。(第10周星期三上机检查) 2、在自己的网站检查用户是否登陆。(使用session)(第10周星期三上机检查) 3、进行网站功能规划和数据库的设计,包括功能模块图,数据库表等。(第10周星期一交电子档)。 建议:上网找一些网站参照,做一个中学的网站或者课程学习、精品课程的网站。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报