理解的概念以及的处理流程

上传人:宝路 文档编号:48339403 上传时间:2018-07-13 格式:PPT 页数:35 大小:277.43KB
返回 下载 相关 举报
理解的概念以及的处理流程_第1页
第1页 / 共35页
理解的概念以及的处理流程_第2页
第2页 / 共35页
理解的概念以及的处理流程_第3页
第3页 / 共35页
理解的概念以及的处理流程_第4页
第4页 / 共35页
理解的概念以及的处理流程_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《理解的概念以及的处理流程》由会员分享,可在线阅读,更多相关《理解的概念以及的处理流程(35页珍藏版)》请在金锄头文库上搜索。

1、第14章 Servlet编程1. 1.理解理解ServletServlet的概念以及的概念以及ServletServlet的处理流程。的处理流程。 2. 2.初步掌握用初步掌握用javajava书写动态网页的技能。书写动态网页的技能。 3. 3.对对javajava在构建在构建WebWeb网站方面的应用有初步的了解网站方面的应用有初步的了解 。教学目的要求14.1 Servlet简介Servlet是标准的服务器端程序,用以增 强Web服务器的功能。Servlet运行在服 务器上,当Web服务器收到一个用户的 Servlet请求时,执行Servlet,动态地 创建HTML响应给用户。14.1.1

2、 Servlet概述 Servlet是标准的服务器端程序,用以增强 Web服务器的功能。用Servlet可以创建协议、 平台无关的Web应用程序可以生成动态的Web 页面,它是公共网关接口(Common Gateway Interface ,CGI)程序设计的Java技术解决方 案。 Servlet提供了比使用CGI开发服务器端功能更 好的方法,因为Java Servlet 在Web服务器和 Servlet之间定义了一个标准的接口,这使 Servlet运行是平台独立的,具有很高的可移植 性,可以和异构的服务器交互。大多数主流服 务器通过插件支持Servlet。 14.1.2 Servlet开发

3、环境搭建学习Servlet开发,必须搭建一个符合规 范的开发环境,有许多的Web服务器或 应用服务器可以运行提供我们需要的软 件:如Apache Tomcat、Allaire Jrun、 New Atlanta ServletExec、Gefion Software LiteWebServer等。 1、Apache Tomcat建Servlet开发环境Tomcat是一个免费的开放源代码的Servlet容器 可以到 http:/jakarta.apache.org下载Tomcat 5.x。安装后还应设置CLASSPATH以使得编译程序javac 能利用Servlet API,为此,应将 inst

4、all_dircommonlibServlet-api.jar放 入置在CLASSPATH中。 启动后在浏览器地址栏里输入 http:/localhost:8080/出现服务器测试成功 页面。 2、创建开发目录 创建一个自己的开发目录 比如:install_dirwebappsROOTmyapp,于 其中放置所有的Servlet和JSP页面 14.1.3 Servlet的工作原理与生命周期 每个Servlet都有一个生命周期,从它被装入到 Web应用服务器的内存开始,到终止或重新装 入时结束。 每个生命周期定义了Servlet如何被加载和被初 始化,它怎样接收请求、响应请求,怎样提供 服务。

5、javax.Servlet.Servlet接口中定义了生命周 期方法,如init()、service()、destroy()等 ,在Servlet的生命周期中,这些方法会在待 定时间按照一定的顺序被调用。 1 、init()方法客户端通过HTTP协议发送,当Web服 务器接收请求并将其发送给Servlet,如 果需要处理请求的Servlet未加载,服务 器把它加载到JVM并执行它。服务器首 先调用init()方法进行初始化工作。该方法只被调用一次。2 、service()方法在init()方法之后,服务器调用service()方法准 备处理用户的访问。通常是Servlet接收HTTP请求并执行

6、相应的处理 ,并向Web服务器返回应答,Web服务器再把从 Servlet收到的应答发送给客户端。来自HTTP的 访问有GET、PUT、POST、DELETE等类型, 这些都可以在service()方法中处理,也可以重置 doPost、doGet等方法来处理特定的请求方式。3 、destroy()方法服务器在结束Servlet运行时调用destroy()方法 ,通常在这个方法中执行诸如清除资源的操作。例如停止后台的文件处理、线程和释放数据库连 接等操作。例14.2 测试Servlet的生命周期方法 package mjwa; import java.util.*; import java.io

7、.*; import javax.servlet.*; import javax.servlet.http.*; public class Lifecircle extends HttpServlet public void init (ServletConfig config) throws ServletExceptionSystem.out.println(“init(): “+new Date(); public void destroy() System.out.println(“destroy(): “+new Date(); public void service(HttpSer

8、vletRequest req, HttpServletResponse resp) throws IOException ,ServletException PrintWriter out=resp.getWriter();resp.setContentType(“text/html“);out.print(“to see: install_dir/logs/stdout.log “);System.out.println(“service(): “+new Date(); 使用命令javac -d . Lifecircle.java进行编译 。将编译之后在当前目录下产生的子目录 mjwa整

9、体拷贝到myapp/WEB-INF/classes 目录下,并在配置文件web.xml中添加如下 的servlet和servlet-mapping。Lifecircle mjwa. Lifecircle Lifecircle /servlet/Lifecircle 重新启动Tomcat,在浏览器地址栏中输入 http:/localhost:8080/servlet/Lifecircle 即可运行 。该程序运行时由System.out.print产生的输出 在install_dir/logs/stdout.log文件中。可以看出,浏览器每刷新一次,service方法就 执行一遍,而init()方

10、法只开始的时候执行一 次,destroy( )始终得不到执行。14.2 Servlet编程示例 例14.3获取参数:根据用户的request,得到有 关的信息。/获取参数 package mjwa; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class InfoServlet extends HttpServlet public void service(HttpServletRequest request, HttpServletRespo

11、nse response) throws IOException, ServletExceptionresponse.setContentType(“text/html“); PrintWriter out = response.getWriter(); out.println(“); out.println(“Request InformationExample“);out.println(“Method: “ + request.getMethod()out.println(“Request URI: “ + request.getRequestURI();out.println(“Pro

12、tocol: “ + request.getProtocol();out.println(“PathInfo: “ +request.getPathInfo();out.println(“Remote Address: “ + request.getRemoteAddr()+“);Enumeration e = request.getHeaderNames();while (e.hasMoreElements() String name = (String)e.nextElement();String value = request.getHeader(name);out.println(“+

13、name + “ = “ + value);out.println(“);编译InfoServlet.java源程序文件,生成字节代码文件 InfoServlet.class,将该文件拷贝到myapp/WEB- INF/classes/mjwa目录下,并在配置文件web.xml中添加如 下的servlet和servlet-mapping。InfoServlet mjwa. InfoServlet InfoServlet /servlet/ InfoServlet 重新启动Tomcat,在浏览器地址栏中输入 http:/localhost:8080/servlet/ InfoServlet 运

14、行。本程序运行结果如图所示。例14.4表单处理应用举例:利用Servlet 读取表单输入内容,对客户的GET和POST 请求分别用doGet方法和doPost方法进行处 理。源程序如下:/表单处理应用package mjwa;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class FormServlet extends HttpServlet public void doGet(HttpServletRequest req, HttpServletRe

15、sponse resp)throws IOException, ServletExceptionresp.setContentType(“text/html“);PrintWriter out = resp.getWriter();out.println(“GET Request. No Form Data Posted“);public void doPost(HttpServletRequest req, HttpServletResponse resp)throws IOException, ServletExceptionEnumeration e = req.getParameter

16、Names();PrintWriter out = resp.getWriter ();while (e.hasMoreElements() String name = (String)e.nextElement();String value = 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。FormServlet mjwa. FormServle

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号