




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14章Servlet编程,教学目的要求1.理解Servlet的概念以及Servlet的处理流程。2.初步掌握用java书写动态网页的技能。3.对java在构建Web网站方面的应用有初步的了解。,14.1Servlet简介,Servlet是标准的服务器端程序,用以增强Web服务器的功能。Servlet运行在服务器上,当Web服务器收到一个用户的Servlet请求时,执行Servlet,动态地创建HTML响应给用户。,14.1.1Servlet概述,Servlet是标准的服务器端程序,用以增强Web服务器的功能。用Servlet可以创建协议、平台无关的Web应用程序可以生成动态的Web页面,它是公共网关接口(CommonGatewayInterface,CGI)程序设计的Java技术解决方案。Servlet提供了比使用CGI开发服务器端功能更好的方法,因为JavaServlet在Web服务器和Servlet之间定义了一个标准的接口,这使Servlet运行是平台独立的,具有很高的可移植性,可以和异构的服务器交互。大多数主流服务器通过插件支持Servlet。,14.1.2Servlet开发环境搭建,学习Servlet开发,必须搭建一个符合规范的开发环境,有许多的Web服务器或应用服务器可以运行提供我们需要的软件:如ApacheTomcat、AllaireJrun、NewAtlantaServletExec、GefionSoftwareLiteWebServer等。,1、ApacheTomcat建Servlet开发环境,Tomcat是一个免费的开放源代码的Servlet容器可以到下载Tomcat5.x。安装后还应设置CLASSPATH以使得编译程序javac能利用ServletAPI,为此,应将install_dircommonlibServlet-api.jar放入置在CLASSPATH中。启动后在浏览器地址栏里输入http:/localhost:8080/出现服务器测试成功页面。,2、创建开发目录,创建一个自己的开发目录比如:install_dirwebappsROOTmyapp,于其中放置所有的Servlet和JSP页面,14.1.3Servlet的工作原理与生命周期,每个Servlet都有一个生命周期,从它被装入到Web应用服务器的内存开始,到终止或重新装入时结束。每个生命周期定义了Servlet如何被加载和被初始化,它怎样接收请求、响应请求,怎样提供服务。javax.Servlet.Servlet接口中定义了生命周期方法,如init()、service()、destroy()等,在Servlet的生命周期中,这些方法会在待定时间按照一定的顺序被调用。,1、init()方法,客户端通过HTTP协议发送,当Web服务器接收请求并将其发送给Servlet,如果需要处理请求的Servlet未加载,服务器把它加载到JVM并执行它。服务器首先调用init()方法进行初始化工作。该方法只被调用一次。,2、service()方法,在init()方法之后,服务器调用service()方法准备处理用户的访问。通常是Servlet接收HTTP请求并执行相应的处理,并向Web服务器返回应答,Web服务器再把从Servlet收到的应答发送给客户端。来自HTTP的访问有GET、PUT、POST、DELETE等类型,这些都可以在service()方法中处理,也可以重置doPost、doGet等方法来处理特定的请求方式。,3、destroy()方法,服务器在结束Servlet运行时调用destroy()方法,通常在这个方法中执行诸如清除资源的操作。例如停止后台的文件处理、线程和释放数据库连接等操作。,例14.2测试Servlet的生命周期方法,packagemjwa;importjava.util.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassLifecircleextendsHttpServletpublicvoidinit(ServletConfigconfig)throwsServletExceptionSystem.out.println(init():+newDate();publicvoiddestroy()System.out.println(destroy():+newDate();publicvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletExceptionPrintWriterout=resp.getWriter();resp.setContentType(text/html);out.print(tosee:install_dir/logs/stdout.log);System.out.println(service():+newDate();,使用命令javac-d.Lifecircle.java进行编译。将编译之后在当前目录下产生的子目录mjwa整体拷贝到myapp/WEB-INF/classes目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。Lifecirclemjwa.LifecircleLifecircle/servlet/Lifecircle,重新启动Tomcat,在浏览器地址栏中输入http:/localhost:8080/servlet/Lifecircle即可运行。该程序运行时由System.out.print产生的输出在install_dir/logs/stdout.log文件中。可以看出,浏览器每刷新一次,service方法就执行一遍,而init()方法只开始的时候执行一次,destroy()始终得不到执行。,14.2Servlet编程示例,例14.3获取参数:根据用户的request,得到有关的信息。/获取参数packagemjwa;importjava.io.*;importjava.util.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassInfoServletextendsHttpServletpublicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException,response.setContentType(text/html);PrintWriterout=response.getWriter();out.println();out.println(RequestInformationExample);out.println(Method:+request.getMethod()out.println(RequestURI:+request.getRequestURI();out.println(Protocol:+request.getProtocol();out.println(PathInfo:+request.getPathInfo();,out.println(RemoteAddress:+request.getRemoteAddr()+);Enumeratione=request.getHeaderNames();while(e.hasMoreElements()Stringname=(String)e.nextElement();Stringvalue=request.getHeader(name);out.println(+name+=+value);out.println();,编译InfoServlet.java源程序文件,生成字节代码文件InfoServlet.class,将该文件拷贝到myapp/WEB-INF/classes/mjwa目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。InfoServletmjwa.InfoServletInfoServlet/servlet/InfoServlet,重新启动Tomcat,在浏览器地址栏中输入http:/localhost:8080/servlet/InfoServlet运行。本程序运行结果如图所示。,例14.4表单处理应用举例:利用Servlet读取表单输入内容,对客户的GET和POST请求分别用doGet方法和doPost方法进行处理。源程序如下:/表单处理应用packagemjwa;importjava.io.*;importjava.util.*;importjavax.servlet.*;importjavax.servlet.http.*;,publicclassFormServletextendsHttpServletpublicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletExceptionresp.setContentType(text/html);PrintWriterout=resp.getWriter();out.println(GETRequest.NoFormDataPosted);,publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsIOException,ServletExceptionEnumeratione=req.getParameterNames();PrintWriterout=resp.getWriter();while(e.hasMoreElements()Stringname=(String)e.nextElement();Stringvalue=req.getParameter(name);out.println(name+:+value);,对应的FormServlet.html文件如下:Name:Address:,Name:Address:,对源文件FormServlet.java进行编译,生成字节代码文件FormServlet.class,将该文件拷贝到myapp/WEB-INF/classes/mjwa目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。,FormServletmjwa.FormServletFormServlet/servlet/FormServlet,文件FormServlet.html保存在文件夹install_dirwebappsROOTmyapp中。重新启动Tomcat。在浏览器地址栏中输入http:/localhost:8080/FormServlet.html运行。本程序运行结果如图14.4(a)(c)所示。,(a),(b),(c)图14.4例14.4的执行结果,例14.5会话管理应用举例。源程序如下:packagemjwa;/例14.5,会话管理importjava.io.*;importjava.util.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassSessionServletextendsHttpServletpublicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse),throwsIOException,ServletExceptionresponse.setContentType(text/html);PrintWriterout=response.getWriter();HttpSessionsession=request.getSession(true);Datecreated=newDate(session.getCreationTime();Dateaccessed=newDate(session.getLastAccessedTime();out.println(ID+session.getId();out.println(Created:+created);out.println(LastAccessed:+accessed+);,Stringid=request.getParameter(id);Stringemail=request.getParameter(email);session.setAttribute(id,id);session.setAttribute(email,email);Enumeratione=sessio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电池厂废料处理流程管理规定
- 松原事业单位笔试真题2025
- 2025年度产品购销合同(设备与信息技术)
- 油墨厂原料库防静电接地制度
- 2025民事诉讼授权合同
- 第18课《天下第一楼(节选)》说课稿2023-2024学年统编版语文九年级下册
- 探索手工空竹的制作 教案-2023-2024学年高一上学期劳动技术
- 中医师考he试题及答案
- 2025秋季云南普洱市景东彝族自治县教育体育局学期基础教育银龄教师招募7人笔试备考试题及答案解析
- 代理公司注销及后续事务处理协议
- 民警培训安全驾驶简报课件
- 十年(2016-2025)高考生物真题分类汇编(全国通.用)专题10 基因的自由组合定律(解析版)
- 2025年大数据应用工程师认证考试预测题详解与实战指南手册
- 2025年山东省潍坊市中考数学试卷附答案
- 俄罗斯礼俗课件
- (2025秋新版)人教版九年级物理上册全册教案
- 2024统编版八年级历史上册全册知识点复习提纲
- T-CES 153-2022 电力巡检无人机边缘智能终端技术规范
- 《中国金融学》课件 第4章 信用形式与信用体系-课件
- 新版2026统编版小学道德与法治三年级上册 第6课《争做未来科学家》第2课时 做个小小科学家 教学课件
- 康复医生进修汇报课件
评论
0/150
提交评论