




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章,配合例子源代码一起使用,Powerpoint制作:杨俊成,普通高等教育“十一五”国家级规划教材,JavaServlet基础,主要内容Servlet类与servlet对象编写web.xmlservlet对象的创建与运行servlet对象的工作原理doGet和doPost方法重定向与转发使用session难点servlet对象的工作原理重定向与转发关键实践使用servlet读文件,第8章导读,第8章JavaServlet基础,JavaServlet技术的核心就是在服务器端创建能响应用户请求的对象,被创建的对象习惯上称做一个servlet对象。在JSP技术出现之前,Web应用开发人员就是自己编写创建servlet对象的类,并负责编译生成成字节码文件、复制这个字节码文件到服务器的特定目录中,以便服务器使用这个字节码创建一个servlet对象来响应用户的请求.,8.1Servlet类与servlet对象,1编写Servlet类编写创建servlet对象的类就是编写HttpServlet类的子类,即一个Servlet类。注:HttpServlet类在javax.servlet.http包中Servlet类必须有包名。参考p244Hello.java编译成功后得到字节码文件Hello.class。2字节码文件的保存在当前Web服务目录下建立如下目录结构:Web服务目录WEB-INFclasses根据类的包名(比如:packagechina.dalian;),在目录classes下建立相应的子目录.Web服务目录WEB-INFclasseschinadalian把Servlet类的字节码,比如Hello.class的字节码文件复制到复制到上述目录中。注:要重新启动Tomcat服务器。,8.2编写web.xml,Servlet类的字节码保存到指定的目录后,我们必须为Tomcat服务器编写一个部署文件,只有这样,Tomcat服务器才会按用户的请求使用Servlet字节码文件创建对象。该部署文件是一个XML文件,名字是web.xml,该文件由Tomcat服务器负责管理。编写的web.xml文件保存到Web服务目录的WEB-INF子目录中Web服务目录WEB-INF参考p245web.xmlweb.xml文件中标记的具体内容及其作用1.根标记2.标记及子标记3.标记及子标记注:修改web.xml文件不必重新启动Tomcat服务器。,8.3servlet对象的创建与运行,用户可以根据web.xml部署文件来请求服务器创建并运行一个servlet对象。如果服务器没有名字为hello的servlet对象,服务器就会根据web.xml文件中标记的子标记指定的Servlet类创建一个名字为hello的servet对象。当用户请求服务器运行一个servlet对象时,必须根据web.xml文件中标记的子标记指定的格式输入请求。例如::8080/ch8/lookHello参考p244Hello.java,p245web.xml,8.4servlet对象的工作原理,8.4.1servlet对象的生命周期,servlet对象由Tomcat服务器负责管理,Tomcat服务器通过读取web.xml创建并运行servlet对象。,(1)初始化Servlet对象。Servlet对象第一次被请求加载时,服务器初始化这个Servlet对象,即创建一个Servlet对象,对象调用init()方法完成必要的初始化工作。(2)诞生的Servlet对象再调用service()方法响应客户的请求。(3)当服务器关闭时,调用destroy()方法,消灭Servlet对象。,8.4.2init方法,该方法是HttpServlet类中的方法,我们可以在子类中重写这个方法。init方法的声明格式:publicvoidinit(ServletConfigconfig)throwsServletExceptionservlet对象第一次被请求加载时,服务器创建一个servlet对象,这个对象调用init方法完成必要的初始化工作。init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。,8.4.3service方法,该方法是HttpServlet类中的方法,我们可以在子类中直接继承该方法或重写这个方法。service方法的声明格式:publicvoidservice(HttpServletRequestrequestHttpServletResponseresponse)throwServletException,IOException当servlet对象成功创建和初始化之后,该对象就调用service方法来处理用户的请求并返回响应。service方法可能被多次调用。,8.4.4destroy方法,该方法是HttpServlet类中的方法,子类可直接继承这个方法,一般不需要重写。destroy方法的声明格式:publicdestroy()当服务器终止服务时,destroy()方法会被执行,消灭servlet对象。,8.5编写、配置和调用Servlet,8.5.1Servlet常用类与接口常用类与接口的层次关系,8.5编写、配置和调用Servlet,常用类与接口方法编写Servlet使用的类与接口,8.5编写、配置和调用Servlet,Servlet接口常用方法,8.5编写、配置和调用Servlet,HttpServlet类常用方法,8.5编写、配置和调用Servlet,HttpServletResponse接口常用方法,8.5编写、配置和调用Servlet,Servlet程序结构引入相关包通过继承HttpServlet类得到Servlet覆盖doGet或doPost方法完成Servlet功能。,8.5编写、配置和调用Servlet,Servlet的配置和调用课堂演示:配置和调用Servlet程序。Web.xml文件中保存了用户编写的Servlet的配置。FirstFirstTheFirstServletmyservlet.FirstServletFirst/First,演示结果,图8-2FirstServlet运行结果,8.5编写、配置和调用Servlet,Servlet的生命周期Servlet的生命周期,8.5编写、配置和调用Servlet,利用Servlet制作计数器课堂演示:利用Servlet制作网站计数器,CounterServlet.java实现计数器的功能。packagemyservlet;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;importjava.util.*;publicclassCounterServletextendsHttpServletstaticintcount;publicvoidinit(ServletConfigconfig)throwsServletExceptionsuper.init(config);,publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionresponse.setContentType(text/html);PrintWriterout=response.getWriter();count+;out.println();out.println(ServletCounter);out.println();out.println(YouarethevisitorofNo:+String.valueOf(count)+);out.println();,利用Servlet制作计数器演示结果.,8.6通过JSP页面访问servlet,8.6.1通过表单向servlet提交数据,可以通过JSP页面来请求一个servlet。也就是说,可以让JSP页面负责数据的显示,而让一个servlet去做和处理数据有关的事情。,Web服务目录下的JSP页面都可以通过表单或超链接请求该Web服务目录下的某个servlet。例8-1P249注意:如果web.xml文件中标记的子标记指定的请求servlet的格式是“/lookHello”,那么JSP页面请求servlet时,必须要写成“lookHello”,不可以写成“/lookHello”,否则将变成请求root服务目录下的某个servlet。,8.6.2通过超链接访问servlet,可以在JSP页面中单击一个超链接,请求一个servlet对象。例8-2P251注意:如果web.xml文件中标记的子标记指定的请求servlet的格式是“/lookHello”,那么JSP页面请求servlet时,必须要写成“lookHello”,不可以写成“/lookHello”,否则将变成请求root服务目录下的某个servlet。,8.7共享变量,Servlet类是HttpServlet的一个子类,那么在编写子类时就可以声明某些成员变量。当用户请求加载Servlet时,服务器分别为每个用户启动一个线程,在该线程中,Servlet调用service()方法响应客户请求,那么Servlet类的成员变量是被所有线程共享的数据。例8-3P252,8.8doGet和doPost方法,可以在Servlet类中重写doPost()或doGet()方法来响应用户的请求,如果不论用户请求类型是POST还是GET,服务器的处理过程完全相同,那么我们可以只在doPost()方法中编写处理过程,而在doGet()方法中再调用doPost()方法即可,或只在doGet()方法中编写处理过程,而在doPost()方法中再调用doGet()方法。如果根据请求的类型进行不同的处理,就需在两个方法中编写不同的处理过程。例8-4P254,8.9重定向与转发,1.sendRedirect()方法使用该可以将用户重新定向到一个JSP页面或另一个Servlet。2.RequestDispatcher对象使用该对象调用voidforward(ServletRequestrequest,ServletResponseresponse)方法可以将用户对当前JSP页面或Servlet的请求转发给RequestDispatcher对象所指定的JSP页面或Servlet。实现转发的步骤:(1)得到RequestDispatcher对象例如:RequestDispatcherdispatcher=request.getRequestDispatcher(a.jsp);(2)转发例如:dispatcher.forwar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年财务知识更新试题及答案
- 项目管理考试成功通过的心态与策略试题及答案
- 2025年理财师考试个案分析试题及答案
- 云南省玉溪市第一中学2025届高考语文倒计时模拟卷含解析
- 2025年财务分析工具运用试题及答案
- 资格认证考试复习的心态管理技巧试题及答案
- 注册会计师考试2025年衍生工具对企业财务风险的影响试题及答案
- 金融市场中资金流动的考试试题及答案
- 会计专业知识创新试题及答案
- 2025年特许金融分析师考试的模拟练习试题及答案
- 2025年甘肃省甘南州第二批引进急需紧缺人才93人高频重点提升(共500题)附带答案详解
- 2025年中国盲盒行业研究报告:市场规模、供需态势、发展前景预测
- 2025年临床医师定期考核必考复习题库及答案(970题)
- 2025年部编版道德与法治小学三年级下册全册教案(含教学计划)
- 危废班组级安全教育
- 2024年工业废气治理工(技师)职业技能鉴定理论试题库(含答案)
- 《材料科学基础》课程教学大纲
- 电网公司主要输变电设备状态检修导则
- 危大工程现场巡视检查记录表
- 2024年游泳馆全面管理承包协议
- 临时用电安全施工方案
评论
0/150
提交评论