




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaEE核心编程,第二部分:详解Servlet组件编程,Servlet的生命周期请求与响应Cookie、会话上下文过滤器、监听器,章节目录,章节目录,ServletAPI继承关系Servlet生命周期,Servlet是多线程单实例的,Servlet只有在第一次被调用时初始化一次,该实例被存储在容器中多个客户端并发访问时,Tomcat会启动多线程,并发访问Servlet实例如果某个Servlet需要在应用加载时被实例化,可以通过在web.xml中配置来完成,HttpServlet类的声明形式,publicabstractHttpServletextendsGenericServletimplementsServlet,ServleConfig,Servlet的继承关系,两个顶级接口ServletServletConfig接口的实现类GenericServlet基于HTTP协议的实现类HttpServlet自定义的Servlet类往往都直接继承HttpServlet,两个接口中主要的方法,Servlet接口init(ServletConfig):被容器调用,调用一次service(ServletRequestreq,ServletResponseres):被容器调用destroy():被容器调用,Servlet实例被销毁时调用,两个接口中主要的方法,ServletConfig接口封装Servlet实例的初始化配置信息publicStringgetInitParameter(Stringname):获取Servlet的初始化参数值,GenericServlet类的主要方法,publicvoidinit():被容器调用,调用一次,往往被自定义的Servlet类覆盖。,HttpServlet类的主要方法,doGet(HttpServletRequestreq,HttpServletResponseresp):处理GET方式的请求doPost(.req,resp):处理POST方式的请求。init():用来对Servlet实例化后进行一些自定义处理。destroy():用来实现Servlet实例被容器销毁前的一些自定义处理。,Servlet的生命周期,初始化构造方法init(ServletConfig)方法init()方法提供服务service方法doXXX方法销毁destroy方法,初始化参数配置和获取,web.xml文件中配置Servlet的初始化参数TestServletcom.etc.TestServletlevel参数名2.1参数值1,Servlet中获取初始化参数,publicclassTestServletextendsHttpServletprivateStringlev;publicTestServlet()System.out.println(调用构造方法);Overridepublicvoidinit()lev=this.getInitParameter(“level”);/获取初始化参数OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException,章节目录,请求与响应的接口请求转发器请求属性,HttpServletRequest接口,HttpServletRequest接口定义了大量获得请求信息的方法获得请求头的方法获得请求参数的方法获得客户端以及服务器端信息的方法,获得请求头的方法,getHeader():根据请求头名字获取请求头值getIntHeader():返回整型请求头的值getDateHeader():返回日期类型请求头值getHeaderNames():返回所有头的名字getHeaders():返回所有头的值,获得请求参数的方法,getParameter():根据请求参数名字返回请求参数值geParameterNames():返回所有请求参数的名字getParameterValues():将同一个请求参数名字的所有参数值作为数组返回,获得客户端以及服务器端信息的方法,getRemoteAddr():获得远程地址getRemotePort():获得远程端口getLocalName():获得本地主机名getLocalPort():获得本地端口,HttpServletResponse接口,HttpServletResponse接口定义大量获得响应信息的方法处理响应头信息的方法获得响应输出流及设置内容类型的方法响应重定向,处理响应头信息的方法,addHeader():在响应中添加一个头addIntHeader():在响应中添加一个整型头信息addDateHeader():在响应中添加一个Date类型信息setHeader():在响应中添加一个头信息setIntHeader():在响应中添加一个整型的头信息,获得响应输出流及设置内容类型的方法,getWriter():获得输出流PrintWriterout=response.getWriter();setContentType():设置响应的内容类型response.setContentType(text/html;charset=UTF-8);,响应重定向,HttpServletResponse中的sendRedirect()方法实现响应重定向Response.sendRedirect(url);响应重定向到另一个资源后,以前的请求信息并不会继续传递到重定向的组件中,是两个请求对象。sendRedirect()方法后的代码仍会被执行地址栏信息会变成重定向的组件的url,RequestDispatcher请求转发器,如果希望请求中的信息能够继续传递到下一个资源,可以通过使用请求转发器的请求转发方法实现请求转发器的接口是RequestDispatcher当用RequestDispatcher请求转发后,地址栏内的信息仍是初始的url信息,客户端看不到转发后的url,RequestDispatcher请求转发器,请求转发方法RequestDispatcherrd=request.getRequestDispatcher(url);Rd.forward(request,response);,forward(ServletRequestrequest,ServletResponseresponse),请求属性,HttpServletRequest接口中提供了一系列与请求属性有关的方法setAttribute(Stringname,Obdjecto):将对象o使用名字name存储到请求对象中getAttribute(Stringname):通过属性名字name获取属性值removeAttribute(Stringname):通过属性名字删除属性,章节目录,Cookie的含义与作用Jsessionidcookie,Cookie的概念和使用,cookie是保存在客户端的文本ServletAPI提供了Cookie类,可以将文本信息封装成cookie对象HttpServletResponse接口提供了addCookie方法,将cookie添加到响应中HttpServletRequest接口中提供了getCookies方法,从请求中获得所有cookie对象,Cookie开发实例,使用实例学习Cookie使用cookie实现一个小时内,同一个客户端不需要重复登录的功能,名字为jsessionid的cookie,通过实验查看名字为jsessionid的cookiejsessionid的值为一个随机整数为后面章节学习会话做好准备,章节目录,HttpSession接口会话实现机制会话失效URL重写,HttpSession接口,客户端对服务器端一次连续的访问过程,称为会话HttpSession接口用来表示会话对象HttpSession中和属性有关的方法setAttributegetAttributeremoveAttribute通过请求对象的方法获得会话对象getSession,JSP中的会话对象,JSP中的内置对象session,是HttpSession对象默认情况下,JSP中总是创建session对象,可以直接使用,会话的实现机制,会话的实现依赖于容器大多数容器采用基于cookie的实现机制基于cookie的实现机制,使用名字为JSESSIONID的cookie作为session的唯一标记,会话使用实例,通过实例展示会话编程完善教材案例,实现登录后查看个人信息的功能使用HttpSession来保存会话范围内的属性HttpSessionsession=request.getSession();session.setAttribute(custname,custname);获取会话属性值HttpSessionsession=request.getSession();Stringcustname=(String)session.getAttribute(custname);,URL重写,通过修改客户端浏览器设置,可以禁止发送cookie如果cookie被禁止,那么基于cookie实现的session将失效为了解决cookie禁止session失效的问题,可以使用URL重写技术,会话超时,为了有效使用内存,以及保证安全性,会话在一定时间内不被使用(称为会话超时),将被销毁有三种策略可以使会话超时web.xml中配置会话超时时间使用setMaxInactiveInterval方法设置超时时间使用invalidate方法直接将某会话设置为失效,章节目录,ServletContext接口上下文属性上下文参数,ServletContext接口,每个应用都有一个唯一的上下文对象,即ServletContext对象ServletContext对象可以和请求、会话对象一样处理属性setAttributegetAttributeremoveAttribute,ServletContext使用实例,使用实例展示上下文用法完善教材案例,加入计数器功能使用ServletContext属性保存计数器,ServletContext参数,在web.xml中可以配置上下文参数,在整个上下文中有效,各种属性比较,请求、会话、上下文中均可以保存、获得、删除属性请求、会话、上下文都有如下三个方法setAttributegetAttributeremoveAttribute主要区别在于每种属性的生命周期不同建议尽量多使用请求属性,必须使用会话、上下文属性时才考虑使用,章节目录,事件类监听器,事件类与监听器接口,6个事件类,类名均以Event结尾某些操作,如启动/关闭容器、创建/销毁会话,都将触发一种事件发生,当发生了某种事件,容器将创建对应的事件类对象,事件类与监听器接口,ServletContextEvent:上下文事件ServletContextAttributeEvent:上下文属性事件ServletRequestEvent:请求事件ServletRequestAttributeEvent:请求属性事件HttpSessionEvent:会话事件HttpSessionBindingEvent:会话绑定事件,事件类与监听器接口,8个监听器接口,接口名均以Listener结尾监听器定义了监听方法,可以处理对应的事件ServletConexListener:上下文监听器,监听ServletContextEvent事件ServletContextAttributeListener:上下文属性监听器ServletRequesListener:请求监听器,事件类与监听器接口,ServletRequesAttributeListener:请求属性监听器HttpSessionListener:会话监听器HttpSessionActivationListener:会话活化监听器HttpSessionAttributeListener:会话属性监听器HttpSessionBindingListener:会话绑定监听器,监听器开发实例,监听器开发实例使用ServletContextListener完善计数器功能掌握监听器开发步骤、注册监听器的方法,监听器开发步骤,根据实际情况选择要使用的监听器创建类实现监听器接口覆盖监听器的方法,实现应用中需要的逻辑在web.xml中注册监听器,章节目录,过滤器的作用过滤器的实现步骤,过滤器概念,过滤器运行在服务器端,遵守一定的编码规范过滤器必须实现ServletAPI中的Filter接口过滤器用来执行应用中通用处理的程序,如记录日志、设置编码格式等,过滤器有关API,Filter接口所有过滤器都必须实现Filter接口其中doFilter方法是过滤器提供服务的方法FilterChain接口用来将请求传递到下一个资源,可能是下一个过滤器,也可能是最终要访
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行宁波市奉化区2025秋招笔试创新题型专练及答案
- 2025年新能源分布式能源系统应用与发展报告
- 2025年新能源汽车自动驾驶保险产品创新与车险市场变革报告
- 人事招聘录用决策试题
- 甘肃联考模拟试题及答案
- 五年级语文下册期末考试卷及答案2025
- 2025年新能源电动车智能化配置市场分析报告
- 运动型功能性饮料在2025年市场的市场推广与品牌形象塑造策略
- 农发行东营市河口区2025秋招结构化面试15问及话术
- 移动基础网试题及答案
- 创伤性硬膜下出血查房
- 2025年廉政法规知识试题及答案
- 拔罐适应症研究-洞察及研究
- 2025《政务数据共享条例》法律法规课件
- Q-SY 02045-2024 柔性压裂管汇使用技术规范
- 华为干部晋升管理制度
- T/CACEM 31.5-2023高速公路经营管理第5部分:服务区服务要求
- 劳动技术-七年级上册-全册教案-湖南教育出版社
- 外贸矿产代理协议书
- 品质协议书范本
- 医院污水处理站服务外包项目投标方案(技术方案)
评论
0/150
提交评论