JavaWeb项目式开发教程电子教案 项目4 使用Servlet技术响应用户请求_第1页
JavaWeb项目式开发教程电子教案 项目4 使用Servlet技术响应用户请求_第2页
JavaWeb项目式开发教程电子教案 项目4 使用Servlet技术响应用户请求_第3页
JavaWeb项目式开发教程电子教案 项目4 使用Servlet技术响应用户请求_第4页
JavaWeb项目式开发教程电子教案 项目4 使用Servlet技术响应用户请求_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目4使用Servlet技术响应用户请求教学单元任务4.1实现网站在线调查授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标理解Servlet的概念、特点与版本对应关系;掌握Servlet接口体系和常用类和接口;掌握Servlet的创建方法、配置方式;理解Servlet生命周期三阶段。学情分析学生已掌握JSP内置对象的使用,习惯在JSP中混写HTML和Java代码。对“为什么需要Servlet”可能不理解,对Servlet生命周期问题较抽象。教学重点Servlet的概念和接口体系;HttpServlet的doGet/doPost方法重写;web.xml和@WebServlet两种配置方式;Servlet生命周期三个阶段。教学难点Servlet生命周期中init()只执行一次的理解;从JSP处理请求迁移到Servlet处理请求的思维转变。二、教学方法与手段教学方法和手段讲授法、案例法、任务驱动法、类别法。三、教学实施教学环节教学内容新知导入回顾项目3中在JSP页面用Java代码处理登录验证的代码,提问:“如果每个页面都要写类似的Java代码,页面会变成什么样?"引出Servlet。知识讲解4.1.1什么是Servlet1.Servlet的概念Servlet是一种服务器端的Java程序,由Web服务器负责加载,用于生成动态Web页面。Servlet使用JavaServlet应用程序接口(ApplicationProgramInterface,API)及其相关类和方法来实现功能。除了JavaServletAPI,Servlet还可以利用其他Java类库来扩展和增强功能。Servlet的主要作用是处理客户端传递的HTTP请求,并返回相应的响应结果。其涉及的功能如下所示。(1)创建并返回一个根据客户端请求生成的包含动态内容的JSP页面。(2)生成可嵌入现有HTML页面中的部分JSP页面片段。(3)与其他服务器资源(如文件、数据库、Applet、Java应用程序等)进行通信。(4)处理多个客户端连接,接收多个客户端的输入,并将结果返回给多个客户端。(5)通过MIME类型设置,以满足特定处理需求,例过滤上传文件类型、转换图形格式等。(6)为服务器提供定制的标准处理程序,例如设置用户认证的方式等。2.Servlet的特点Servlet不仅具有Java语言的优点,也对Web技术的相关应用进行了封装,其主要具有以下几个特点。(1)功能强大。(2)性能高。(3)安全性高。(4)灵活性和可扩展性强。(5)可移植。3.Servlet的版本Servlet4.0对应Tomcat9.0.x和Java8+。4.1.2Servlet常用类和接口ServletAPI提供了javax.servlet包,该包为编写Servlet提供了接口和类。所有的Servlet都必须实现Servlet接口,该接口定义了Servlet的生命周期方法。编写Servlet时用到的是HttpServlet类,该类是GenericServlet类的子类,而GenericServlet类实现了Servlet接口。一般情况下要用到的HttpServletRequest接口继承自ServletRequest接口,HttpServletResponse接口继承自ServletResponse接口。Servlet接口Servlet接口是所有Servlet都必须直接或间接实现的接口。它由Web服务器负责创建并调用,用于接收和响应客户端请求。•voidservice(ServletRequestreq,ServletResponseresp):处理request对象中描述的请求,使用response对象返回请求结果•voiddestory():当Servlet将要卸载时,由Servlet容器调用并释放资源HttpServlet类HttpServlet抽象类是所有基于Web的Servlet类的基础类。HttpServlet抽象类是专门为HTTP设计的,对Servlet接口中的方法都提供了默认实现。一般通过继承HttpServlet抽象类并重写它的doGet()和doPost()方法就可以实现自己的Servlet。•voiddoPost(HttpServletRequestreq,HttpServletResponseresp):用于处理和响应HTTPPOST请求•voiddoGet(HttpServletRequestreq,HttpServletResponseresp):用于处理和响应HTTPGET请求•voiddoPut(HttpServletRequestreq,HttpServletResponseresp):处理HTTPPUT请求,请求URI指出被载入的文件位置•voidservice(HttpServletRequestreq,HttpServletResponseresp):根据请求方式将请求分派到对应的doGet()、doPost()等具体方法3HttpServletRequest接口HttpServletRequest接口封装了HTTP请求,通过此接口可以获取客户端传递的HTTP请求参数。•StringgetContextPath():返回上下文路径,路径以“/”开头•Cookie[]getCookies():返回所有Cookie对象,返回值类型为Cookie数组•StringgetQueryString():返回请求的查询字符串•StringgetServletPath():返回请求URI上下文后的字符串4HttpServletResponse接口HttpServletResponse接口封装了对HTTP请求的响应。通过此接口可以向客户端发送响应。•voidaddCookie(Cookiecookie):向客户端发送Cookie信息•voidsetHeader(Stringname,Stringvalue):设置具有指定名称和取值的一个响应头标•voidsendRedirect(Stringlocation):将客户端请求重新定向到新的URL4.1.3创建和配置Servlet类1.创建Servlet【例4-1】创建Servlet类示例。2.使用配置文件web.xml配置ServletServlet的配置方式有两种:使用配置文件web.xml进行配置和使用@WebServlet注解进行配置。在Servlet3.0之前,只能使用web.xml进行配置,(1)通过servlet标签声明Servlet类,此标签包含两个子标签,分别为servlet-name和servlet-class。(2)使用servlet-mapping标签映射访问Servlet类的URL,servlet-mapping标签有两个子标签,分别为servlet-name和url-pattern。•servlet-name:指定Servlet的名称,必须唯一•servlet-class:指定Servlet类的全限定名,包括包名和类名•description:指定Servlet的描述信息•display-name:指定Servlet的显示名•url-pattern:指定访问Servlet的URL地址【例4-2】修改web.xml文件,配置【例4-1】中的TestServlet。3.使用@WebServlet注解配置Servlet在Servlet3.0之后,引入了@WebServlet注解替代web.xml文件中的servlet、servlet-mapping等标签。@WebServlet注解提供了一些属性用于配置Servlet,@WebServlet注解是类级别的注解,标注在类名上方。【例4-3】使用@WebServlet注解配置【例4-1】中的TestServlet。【例4-4】使用Servlet读取HTML表单数据。4.1.3Servlet的生命周期Servlet的生命周期可以分为3个阶段:初始化阶段、处理请求阶段和销毁阶段。在Servlet整个生命周期中,会依次调用Servlet接口的init()、service()和destroy()方法来完成不同阶段的任务,【例4-5】Servlet生命周期示例。任务实施创建chap0401项目创建问卷页question.html新建css.css外部样式表文件创建处理问卷信息的SurveyServlet.java运行项目,查看效果教学总结总结Servlet的核心概念:Servlet是服务器端Java程序,通过继承HttpServlet并重写doGet()方法和doPost()方法实现;两种配置方式使用web.xml配置和使用@WebServlet配置;生命周期三阶段,初始化阶段、处理请求阶段和销毁阶段。四、课后巩固与拓展1.简述Servlet的生命周期。2.创建Servlet,向浏览器输出“welcometoservlet!”。3.创建Servlet,向浏览器随机输出4位数字的验证码。4.创建登录Servlet,接收login.html表单提交的用户名和密码,验证后跳转成功页或回到登录页并提示错误。5.分别使用web.xml和@WebServlet两种方式配置Servlet,对比两种方式的差异。教学单元任务4.2使用监听器统计在线人数授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标理解监听器的概念和作用;掌握监听器的三大分类;掌握HttpSessionListener和ServletContextListener的创建和使用方法;能使用监听器统计在线人数。学情分析学生对Web开发中的“事件驱动”编程模式比较陌生。监听器“自动触发”的特性容易被误解,需要明确触发时机。项目3中的session、application计数器方案以前学过,需要确认两种方案的使用场景。教学重点监听器三大分类和8个接口的体系;HttpSessionListener的常用方法;ServletContextListener的常用方法;监听器的创建和配置。教学难点监听器触发时机的理解;session过期销毁与在线人数减少的机制;监听器与直接在JSP中操作application的对比。二、教学方法与手段教学方法和手段讲授法、演示法、对比法。三、教学实施教学环节教学内容新知导入回顾任务3.2中用application实现的计数器,提问:“那个计数器只能增不能减,如果要实现精确的在线人数统计(有人离开就减少),应该怎么办?”引出监听器自动监听session创建和销毁的能力。知识讲解4.2.1什么是监听器Servlet监听器是在Servlet2.3中引入的,并在Servlet2.4中进行了较大的改进。Servlet监听器主要用来对Web应用进行监听和控制,可以在事件发生前后做一些必要的处理。在ServletAPI中定义了8个监听器接口和6个事件类。4.2.1监听器分类根据Servlet中提供的监听器的监听范围,可以把8个监听器接口分为3类1.Servlet上下文监听器监听ServletContext对象的创建、销毁,以及该对象属性的增加、删除和修改操作。Servlet上下文监听器提供了两个接口,ServletContextListener和ServletContextAttributeListener。•ServletContextListener:用于监听ServletContext对象的创建与销毁•ServletContextAttributeListener:用于监听ServletContext对象属性改变的过程,包括增加属性、删除属性、修改属性等•voidattributeAdded(ServletContextAttributeEventscae):当ServletContext中增加一个属性时,将会调用此方法进行处理•voidattributeRemoved(ServletContextAttributeEventscae):当ServletContext中删除一个属性时,将会调用此方法进行处理•voidattributeReplaced(ServletContextAttributeEventscae):当ServletContext中修改一个属性时,将会调用此方法进行处理2HTTP会话监听器HTTP会话监听器提供了4个接口,分别是HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener和HttpSessionActivationListener。•HttpSessionListener:用于监听HttpSession对象的创建、销毁•HttpSessionAttributeListener:用于监听HttpSession对象属性改变的过程•HttpSessionBindingListener:用于监听对象加入session(即调用HttpSession对象的setAttribute()方法)或从session中移出(即调用HttpSession对象的removeAttribute()方法或session过期)的事件•HttpSessionActivationListener:用于监听HTTP会话的active、passivate状态HttpSessionListener接口、HttpSessionAttributeListener接口、HttpSessionBindingListener接口和HttpSessionActivationListener接口的方法。•voidsessionCreated(HttpSessionEventse):当创建一个session时激发•voidsessionDestroyed(HttpSessionEventse):当销毁一个session时激发•voidattributeAdded(HttpSessionBindingEventse):当在session中增加一个属性时激发•voidattributeRemoved(HttpSessionBindingEventse):当在session中删除一个属性时激发3Servlet请求监听器Servlet请求监听器是Servlet2.4规范中新增的一个技术,用来监听客户端的请求,Servlet请求监听器主要提供了两个接口。•ServletRequestListener:用于监听ServletRequest对象的创建与销毁•ServletRequestAttributeListener:用于监听ServletRequest对象属性改变的过程•voidattributeAdded(ServletRequestAttributeEventevent):当ServletRequest中增加一个属性时,将会调用该方法进行处理•voidattributeRemoved(ServletRequestAttributeEventevent):当ServletRequest中删除一个属性时,将会调用该方法进行处理4.2.3创建和配置监听器1.创建监听器【例4-6】创建Servlet上下文监听器。2.使用配置文件web.xml配置监听器【例4-7】修改web.xml文件,配置【例4-6】中的TestServletContextListener。3.使用@WebListener注解配置监听器【例4-8】使用@WebListener注解配置【例4-6】中的TestServletContextListener。任务实施:创建chap0402项目新建count.jsp页面新建css.css外部样式表文件创建监听器OnlineCountListener.java设置会话超时时间重启服务,查看效果教学总结总结8个监听器接口,强调ServletContextListener、HttpSessionListener在统计在线人数中的应用,对比监听器方案与手动application方案的优劣。四、课后巩固与拓展1.简述8个监听器的使用场景和作用。2.使用ServletContextListener在服务器启动时从配置文件读取网站名称并存入application,JSP页面显示该名称。3.使用ServletRequestListener统计网站总请求次数,在首页显示。教学单元任务4.3使用过滤器验证用户登录授课时数4授课类型理实一体课授课地点多媒体教室/机房授课对象计算机类专业二年级学生一、教学分析教学目标理解过滤器的概念和作用;掌握Filter接口的常用方法;掌握过滤器的两种配置方式;理解过滤器链的工作原理和执行顺序;能使用过滤器实现登录验证。学情分析学生在每个Servlet、JSP中重复设置编码、校验登录,代码冗余严重;过滤器的“AOP面向切面”思想对学生比较抽象。教学重点Filter接口的常用方法;chain.doFilter()放行机制;web.xml和@WebFilter两种配置方式;过滤器链的概念和执行顺序。教学难点过滤器链的执行顺序;doFilter中不放行时请求链中断的效果。二、教学方法与手段教学方法和手段讲授法、案例法、任务驱动法、类比法三、教学实施教学环节教学内容新知导入回顾前面项目中每个JSP页面中都要写判断是否登录的代码,提问:“如果项目有100个JSP页面,这段代码要写100遍,有没有办法只写一次?”引出过滤器"AOP切面"统一处理的思想。知识讲解4.3.1什么是过滤器与监听器类似,Servlet过滤器也是在Servlet2.3中引入的新功能,主要用于过滤和拦截请求或响应信息。它可以在Servlet或JSP页面运行之前或之后自动调用,在处理客户端请求和发送响应的过程中发挥着重要作用,增强了JavaWeb项目的灵活性和安全性。4.3.2创建和配置过滤器1.创建过滤器Servlet过滤器必须实现javax.servlet.Filter接口,该接口提供了3个方法。创建Servlet过滤器需要实现javax.servlet.Filter接口,通过重写doFilter()方法对客户端请求进行拦截。•voidinit(FilterConfigconfig):用于初始化,在容器装载并实例化过滤器的时候自动调用•doFilter(ServletRequestreq,ServletResponseresp,FilterChainchain):过滤器的核心方法,用于对请求和响应进行过滤处理•voiddestroy():用于销毁过滤器,在容器销毁过滤器实例之前自动调用【例4-9】创建Servlet过滤器。1.使用配置文件web.xml配置过滤器Servlet过滤器使用配置文件web.xml配置过滤器,在配置文件web.xml中添加一个filter标签和一个filter-mapping标签,fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论