版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目3使用内置对象响应用户请求教学单元任务3.1实现会员登录授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标掌握JSP内置对象的基本概念;熟练使用request对象获取表单数据、超链接数据和请求转发传值;掌握response对象的页面重定向;掌握out对象向客户端输出信息的方法;能实现简单的会员登录验证功能。学情分析学生已完成JSP基本语法的学习,对服务器端如何接收数据的过程理解不深;中文乱码问题是JSP初学者的高频痛点;请求转发与页面重定向的区别容易混淆。教学重点request对象的常用方法;response对象的常用方法;请求转发与页面重定向的本质区别和使用场景。教学难点请求转发与页面重定向的深入理解;GET与POST两种请求方式的差异;中文乱码的多环节排查。二、教学方法与手段教学方法和手段讲授法、案例法、任务驱动法类比法。演示登录验证的全过程,学生同步实践。三、教学实施教学环节教学内容新知导入展示一个会员登录:如果用户未输入用户名或密码直接登录,则提示“用户名和密码不能为空!”。如果输入的用户名或密码不正确,则提示“用户名和密码不正确!”。如果用户输入了正确的用户名和密码(例如用户名为“admin”,密码为“123”),则跳转到会员信息页。提问"输入用户名和密码点击登录后,服务器怎么知道你是谁?""如果密码错误,怎么给用户提示?"引出JSP内置对象处理请求和响应的必要性。知识讲解3.1.1JSP内置对象JSP提供了9个内置对象,不需要预先声明和创建就能直接使用。包括request、response、out、session、application、pageContext、config、page、exception。•request:javax.servlet.http.HttpServletRequest,请求对象,用于接收客户端传输到服务器端的数据•response:javax.servlet.http.HttpServletResponse,响应对象,用于服务器端向客户端发送数据•out:javax.servlet.jsp.JspWriter,用于向客户端浏览器输出数据•session:javax.servlet.http.HttpSession,用于保存会话数据•application:javax.servlet.ServletContext,用于保存所有用户的共享数据•pageContext:javax.servlet.jsp.PageContext,包装JSP页面的上下文,用来管理网页属性•config:javax.servlet.ServletConfig,配置对象,可以获得Servlet的配置信息•page:javax.servlet.jsp.HttpJspPage,指JSP页面对象本身,也就是当前页面转换后的Servlet类的实例•exception:java.lang.Throwable,指JSP页面执行时发生的错误和异常3.1.2request对象request对象是请求对象,是javax.servlet.http.HttpServletRequest类的实例。request对象包含的请求信息有请求的来源、标头、cookies和请求相关的参数值等。常用方法:•StringgetParameter(Stringname):获取客户端发送给服务器端的参数值•String[]getParameterValues(Stringname):获取请求中指定参数的所有值•EnumerationgetParameterNames():返回请求中所有参数名称的集合•setAttribute(Stringname,Objectobj):将对象和name关联后,保存到request中•RequestDispatchergetRequestDispatcher(Stringpath):获取封装了指定路径的RequestDispatcher接口•voidsetCharacterEncoding(Stringname):设置请求的字符编码•StringgetRemoteAddr():获取发出请求的客户端IP地址•StringgetMethod():获取客户端向服务器端发送请求的方法(GET、POST)•intgetServerPort():返回响应请求的服务器端主机端口号通过表单传递数据Web项目中,经常需要用户填写表单将数据提交到服务器端,服务器端则使用request对象的getParameter()方法和getParameterValues()方法来获取表单中的数据。<formmethod="提交方式"action="提交地址">…</form>两种提交方式GET和POST的区别:
•在浏览器地址栏中显示提交数据:GET方式以“name=value”的形式显示在地址栏中,POST方式则否•提交数据是否有长度限制:GET方式不能大于2KB,POST方式则否•数据安全性:GET方式安全性低,POST方式则高。【例3-1】使用getParameter()方法获取文本框中的值。【例3-2】使用getParameterValues()获取复选框的值。【例3-3】根据输入的半径,计算并输出圆的面积。2.通过超链接传递数据request对象的getParameter()方法除了能获取表单传递过来的数据之外,还能获取超链接传递过来的数据。在使用超链接传递数据时,超链接的href属性设置参数值对遵循如下格式。跳转相对路径?参数名1=参数值1&参数名2=参数值2&…&参数名n=参数值n【例3-4】超链接传递数据示例。3.请求转发当服务器接收到客户端处理时,可以使用request对象的getRequestDispatcher()方法获取RequestDispatcher接口,使用接口的forward()方法将当前JSP携带的请求和响应信息转发给getRequestDispatcher()方法中指定的JSP去处理。RequestDispatcherrd=request.getRequestDispatcher("转发JSP的相对路径");rd.forward(request,response);或request.getRequestDispatcher("转发JSP的相对路径").forward(request,response);【例3-5】请求转发示例。4.使用request对象属性传递数据在JSP中,使用setAttribute()方法和getAttribute()方法在request对象属性中保存和读取数据,使用request对象的请求转发可以传递请求和响应信息。【3-6】会员注册时验证用户输入的密码和确认密码是否一致。3.1.3response对象response对象是响应对象,是javax.servlet.http.HttpServletResponse类的实例,负责将响应结果发送到客户端浏览器,也可以用来重定向请求、向客户端浏览器写入Cookie等操作。常用方法:•voidaddCookie(Cookiecookie):将Cookie对象保存到客户端•voidsetHeader(Stringname,Stringvalue):设置HTTP头信息•voidsendRedirect(Stringurl):用于将对客户端的响应重定向到指定的URL上,这里可以使用相对URL•voidsetContentType(Stringtype):设置响应类型•voidsetCharacterEncoding(Stringcharset):设置响应使用的字符编码1.设置响应头信息通过response对象的addHeader()方法、setHeader()方法可以添加或设置响应头信息,实现页面刷新、设置缓存、设置页面编码方式等。【例3-7】实时显示当前系统时间。2.页面重定向页面重定向是指将用户从一个页面转移到另一个页面。这种跳转可以在客户端通过JavaScript实现,也可以在服务器端通过响应头实现,这里使用服务器端的response对象的sendRedirect()方法实现。【3-8】页面重定向示例。页面重定向和请求转发的区别:•调用方法:页面重定向是response.sendRedirect(),请求转发是request.getRequestDispatcher().forward()•浏览器地址栏显示:页面重定向是新请求地址,请求转发是原请求地址•浏览器显示内容:页面重定向是新请求地址内容,请求转发是新请求地址内容•使用request对象属性在页面传值:页面重定向不可以,请求转发可以•两种方式都可以使用参数值对在页面传值3.1.4out对象out对象是对客户端的输出流进行写操作的对象,是javax.servlet.jsp.JspWriter类的实例。它的作用与response.getWriter()方法返回的PrintWriter对象相似,可以在JSP页面中把文本信息发送到客户端浏览器。主要方法:•voidprint(objectobj):将指定类型的数据输出到HTTP流,不换行•voidclear():清除缓冲区中的数据,不把数据写到客户端•intgetBufferSize():返回缓冲区的字节数大小,如不设缓冲区则为0•intgetRemaining():返回缓冲区中剩余空间的大小【例3-9】使用out对象输出示例。任务实施创建chap0301项目新建login.jsp页面新建css.css外部样式表文件增加判断登录信息的代码新建userinfo.jsp页面运行项目,查看效果教学总结了解JSP9个内置对象的概念;强调request获取参数的三种方式(表单/超链接/属性);区分请求转发(forward)和重定向(sendRedirect)的机制与适用场景。四、课后巩固与拓展1.JSP内置对象有哪些。2.在login.jsp中增加验证码功能(固定验证码"1234"),验证码错误时提示。3.创建2个JSP页面inputString.jsp和computer.jsp,用户可以使用inputString.jsp提供的表单输入一个字符串,并提交给computer.jsp页面,该页面输出字符串和字符串的长度。4.创建2个JSP页面,名称分别为login.jsp和main.jsp。用于输入用户名和密码,如果输入的密码为“admin”,则跳转到main.jsp,并输出“***,欢迎来到本网站”。教学单元任务3.2实现网站访问人数统计授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标掌握session对象的概念、工作原理和常用方法;掌握application对象的概念和常用方法;能使用session和application实现网站访问人数统计功能;理解session有效期的作用和配置方式。学情分析学生对HTTP无状态协议缺乏理解,对"服务器如何识别不同用户"感到困惑。session和application的作用域容易混淆:session和application的使用场景,session有效期的概念。教学重点session对象的常用方法和属性存取;application对象的常用方法和属性存取;session有效期。教学难点session与application作用域的区别和适用场景:session为单用户私有不共享,application为所有用户全局共享;session过期后数据的丢失问题。二、教学方法与手段教学方法和手段讲授法、演示法、对比法、类比法。演示计数器功能实现过程。三、教学实施教学环节教学内容新知导入打开两个不同浏览器访问同一网站提问"为什么它们显示不同的登录状态?""如果做一个访问计数器,应该存在哪里?同一个数据能让所有人看到吗?"引出session和application对象。知识讲解3.2.1session对象session对象是javax.servlet.http.HttpSession类的实例,用于共享同一用户的信息。从一个用户发送第一个JSP页面请求开始,会话被自动创建,并维持会话信息到下一个请求。通过会话,服务器能够识别出同一用户所发送的请求,并且会一直保存连接状态。session工作原理当客户端首次发送请求时,服务器会自动创建一个session对象。为了区分每个session对象,服务器会为session对象分配一个唯一的ID。服务器将这个ID和响应信息一起发送到客户端,ID存放在客户端的Cookie中。这样,session对象和客户端之间就建立了一一对应的关系。当用户再次发送请求时,会携带保存在Cookie中的ID,服务器根据这个ID对对应的session对象进行存取。【例3-10】查看session对象的ID。session对象的常用方法•voidsetAttribute(Stringname,Objectobj):将obj对象以name为名存储到会话中•ObjectgetAttribute(Stringname):获取与指定名称相关联的session属性值•StringgetId():获取session对象的ID值•longgetCreationTime():返回session对象的创建时间,单位为千分之一秒•intgetMaxInactiveInterval():返回会话总时间,以秒为单位。即session对象的有效时间,当超过这个有效时间时,此session被清除•voidsetMaxInactiveInterval(intinterval):设置session对象的有效时间,以秒为单位•voidinvalidate():销毁session对象•booleanisNew():判断是否由服务器产生一个新的session对象【例3-11】在【例3-10】的基础上使用session保存和读取数据。session对象的有效期默认session的有效时间是30分钟,可以通过session对象的getMaxInactiveInterval()方法获取有效时间。当有效时间结束时,客户端一直没有向服务器发送请求,服务器就认为客户端已结束请求,服务器与该客户端创建的session对象会被垃圾收集器从内存中清除。当客户端再次发送请求时,服务器会创建一个新的session对象。【例3-12】根据有效时间查看session中保存的数据。【例3-13】session.invalidate()方法应用示例。3.2.2application对象服务器启动后会创建一个application对象,当用户在网站的各个页面之间浏览时,访问的都是同一个application对象,直到服务器关闭。所以,可以在application对象中存放全局数据,它在服务器启动时创建,在服务器关闭时销毁。application对象是javax.servlet.ServletContext类的实例。常用方法:•voidsetAttribute(Stringname,Objectobj):将obj对象以name为名存储到application对象中•ObjectgetAttribute(Stringname):获取与指定名称相关联的application对象属性值•StringgetInitParameter(Stringname):获取在web.xml中定义的由name指定的初始化参数值•StringgetRealPath(Stringpath):获取指定虚拟路径所对应的物理路径•ServletContextgetContext(Stringuripath):获取当前应用的ServletContext对象【例3-14】使用application对象保存和读取数据。【例3-15】使用application对象读取配置信息。任务实施创建chap0302项目新建count.jsp页面新建css.css外部样式表文件在count.jsp文件中添加实现网站计数器的代码显示统计值在配置文件web.xml中设置session对象的有效时间重启服务,查看效果教学总结总结session和application的核心区别、session工作原理、梳理网站计数器的完整实现逻辑。四、课后巩固与拓展1.session对象和application对象有什么区别?2.在计数器中增加"当前在线人数"功能(session计数),与"历史总访问量"(application计数)并列显示。3.创建一个聊天室的JavaWeb项目,并按如下要求实现:(1)添加2个页面,名称分别为login.jsp和main.jsp。(2)login.jsp需要用户输入用户名和密码。如果没有输入用户名或密码进行登录弹框提示用户“必须输入用户名和密码!”;如果输入的密码为“admin”时才能进入main.jsp,否则弹框提示用户“密码不正确”。(3)用户没有登录直接打开main.jsp则转到login.jsp,不用给出任何提示。(4)用户进入main.jsp页面后,显示当前登录用户的用户名,并以下拉列表的形式显示当前在线用户的用户名。当前用户可以选择需要聊天的对象,并发送聊天信息。所有在线用户可以看到所有的聊天信息。聊天界面效果参考图3-35所示。(5)用户退出聊天室后,该用户的用户名不会显示在在线用户列表中。教学单元任务3.3实现会员自动登录授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标掌握Cookie对象的概念和创建、读取、保存方法;掌握Cookie有效时间的设置方式;了解其他内置对象的基本用法;能实现会员自动登录功能。学情分析学生日常使用网站的“记住密码”、“自动登录"功能,但对底层Cookie机制不了解,对Cookie与session的关系和概念不了解。部分学生可能听说过Cookie安全风险,但不清楚原理。教学重点Cookie的创建、保存和读取;setMaxAge()有效时间设置;Cookie与session的协作关系。教学难点Cookie有效时间的设置。二、教学方法与手段教学方法和手段讲授法、案例法、任务驱动法。通过完整的自动登录流程演示Cookie的存取和使用。三、教学实施教学环节教学内容新知导入演示会员自动登录功能:用户填写登录信息,用户名不能为空、密码为“admin”,勾选“自动登录”复选框。单击“登录”按钮,进入主页,并显示“xxx,欢迎来到本网站!”页面。关闭并重新打开浏览器,重新访问登录页时不需要输入用户名和密码,直接跳转到主页并输出“xxx,欢迎来到本网站!”。提问:"为什么下次打开浏览器不用重新输入密码?""浏览器是怎么记住登录状态的?""如果我换一台电脑,还能自动登录吗?"引出Cookie技术。知识讲解3.3.1Cookie对象Cookie是服务器发送到客户端浏览器的纯文本信息。当用户再次访问同一个Web服务器时,浏览器会将保存的Cookie信息传回服务器。通过使用Cookie,可以维持用户的状态信息,能够实现识别用户身份、定制个性化内容、在安全性较低的情况下避免重复登录验证,以及精准广告投放等功能。每个Cookie的大小限制为4KB,在客户端进行维护。创建CookieCookie对象是javax.servlet.http.Cookie类的实例,需要使用page指令导入Cookie类以创建Cookie对象。<%@pageimport="javax.servlet.http.Cookie"%>Cookiec=newCookie("name","zhangsan");保存Cookie到客户端将Cookie对象保存到客户端需要使用response对象的addCookie()方法。response.addCookie(c);读取客户端中的Cookierequest对象的getCookies()方法以数组形式获取客户端保存的所有Cookie对象。如果要取出符合要求的Cookie对象,需要循环比较数组中每个对象的名称。Cookie[]cs=request.getCookies();for(Cookiec:cs){if(c.getName().equals("name")){out.print(c.getValue());}}设置Cookie对象的有效时间将Cookie对象保存到客户端时,如果没有设置有效时间或者有效时间为0,则表示此Cookie对象存放在浏览器的内存空间中,浏览器关闭时会自动清除Cookie。如果设置了有效时间,则表示该Cookie对象以文件形式保存在特定路径下,其有效时间值以秒为单位。如果需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PJLG金属栏杆扶手综合项目工程综合项目施工及验收标准规范
- 村官考试题目及答案解析
- 经济安全题目及详细答案
- 建设工程进度款支付合同协议
- 景观绿化工程长期施工合同三篇
- 建设工程监理服务合同协议
- 2026年人力资源管理师《绩效面谈》实战培训试卷
- 边坡生态复绿工程技术方案
- 乡村河道生态修复治理实施方案
- 流域水环境修复工程设计
- 加装电梯方案
- 典型心房扑动
- PCR上岗证考试题及答案(全)
- 爆破工程安全条件验收记录表张
- NB/T 10724-2021煤矿用无线电频段
- JJG 621-2012液压千斤顶
- GB 11946-2013船用钢化安全玻璃
- 第五章螺纹联接与螺旋传动
- 新湘教版二年级上册音乐全册
- 《马克思主义发展史》第三章 马克思主义体系的丰富和发展
- 班主任家校沟通课件
评论
0/150
提交评论