Java教材课件14Servlet编程.ppt

上传人:本田雅阁 文档编号:3481811 上传时间:2019-09-01 格式:PPT 页数:35 大小:127.02KB
返回 下载 相关 举报
Java教材课件14Servlet编程.ppt_第1页
第1页 / 共35页
Java教材课件14Servlet编程.ppt_第2页
第2页 / 共35页
Java教材课件14Servlet编程.ppt_第3页
第3页 / 共35页
Java教材课件14Servlet编程.ppt_第4页
第4页 / 共35页
Java教材课件14Servlet编程.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java教材课件14Servlet编程.ppt》由会员分享,可在线阅读,更多相关《Java教材课件14Servlet编程.ppt(35页珍藏版)》请在三一文库上搜索。

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

2、b页面,它是公共网关接口(Common Gateway Interface ,CGI)程序设计的Java技术解决方案。 Servlet提供了比使用CGI开发服务器端功能更好的方法,因为Java Servlet 在Web服务器和Servlet之间定义了一个标准的接口,这使Servlet运行是平台独立的,具有很高的可移植性,可以和异构的服务器交互。大多数主流服务器通过插件支持Servlet。,14.1.2 Servlet开发环境搭建,学习Servlet开发,必须搭建一个符合规范的开发环境,有许多的Web服务器或应用服务器可以运行提供我们需要的软件:如Apache Tomcat、Allaire Jr

3、un、New Atlanta ServletExec、Gefion Software LiteWebServer等。,1、Apache Tomcat建Servlet开发环境,Tomcat是一个免费的开放源代码的Servlet容器可以到 http:/jakarta.apache.org下载Tomcat 5.x。 安装后还应设置CLASSPATH以使得编译程序javac能利用Servlet API,为此,应将install_dircommonlibServlet-api.jar放入置在CLASSPATH中。 启动后在浏览器地址栏里输入http:/localhost:8080/出现服务器测试成功页面

4、。,2、创建开发目录,创建一个自己的开发目录 比如:install_dirwebappsROOTmyapp,于其中放置所有的Servlet和JSP页面,14.1.3 Servlet的工作原理与生命周期,每个Servlet都有一个生命周期,从它被装入到Web应用服务器的内存开始,到终止或重新装入时结束。 每个生命周期定义了Servlet如何被加载和被初始化,它怎样接收请求、响应请求,怎样提供服务。 javax.Servlet.Servlet接口中定义了生命周期方法,如init()、service()、destroy()等,在Servlet的生命周期中,这些方法会在待定时间按照一定的顺序被调用。,

5、1 、init()方法,客户端通过HTTP协议发送,当Web服务器接收请求并将其发送给Servlet,如果需要处理请求的Servlet未加载,服务器把它加载到JVM并执行它。服务器首先调用init()方法进行初始化工作。 该方法只被调用一次。,2 、service()方法,在init()方法之后,服务器调用service()方法准备处理用户的访问。 通常是Servlet接收HTTP请求并执行相应的处理,并向Web服务器返回应答,Web服务器再把从Servlet收到的应答发送给客户端。来自HTTP的访问有GET、PUT、POST、DELETE等类型,这些都可以在service()方法中处理,也可

6、以重置doPost、doGet等方法来处理特定的请求方式。,3 、destroy()方法,服务器在结束Servlet运行时调用destroy()方法,通常在这个方法中执行诸如清除资源的操作。 例如停止后台的文件处理、线程和释放数据库连接等操作。,例14.2 测试Servlet的生命周期方法,package mjwa; import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Lifecircle extends HttpServlet publi

7、c void init (ServletConfig config) throws ServletException System.out.println(“init(): “+new Date(); public void destroy() System.out.println(“destroy(): “+new Date(); public void service(HttpServletRequest req, HttpServletResponse resp) throws IOException ,ServletException PrintWriter out=resp.getW

8、riter(); resp.setContentType(“text/html“); out.print(“to see: install_dir/logs/stdout.log “); System.out.println(“service(): “+new Date(); ,使用命令javac -d . Lifecircle.java进行编译。将编译之后在当前目录下产生的子目录mjwa整体拷贝到myapp/WEB-INF/classes目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。 Lifecircle mjwa. Lifecircle Li

9、fecircle /servlet/Lifecircle ,重新启动Tomcat,在浏览器地址栏中输入http:/localhost:8080/servlet/Lifecircle 即可运行。该程序运行时由System.out.print产生的输出在install_dir/logs/stdout.log文件中。 可以看出,浏览器每刷新一次,service方法就执行一遍,而init()方法只开始的时候执行一次,destroy( )始终得不到执行。,14.2 Servlet编程示例,例14.3获取参数:根据用户的request,得到有关的信息。 /获取参数 package mjwa; import

10、 java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class InfoServlet extends HttpServlet public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException,response.setContentType(“text/html“); PrintWriter out =

11、 response.getWriter(); out.println(“); out.println(“Request InformationExample“); out.println(“Method: “ + request.getMethod() out.println(“Request URI: “ + request.getRequestURI(); out.println(“Protocol: “ + request.getProtocol(); out.println(“PathInfo: “ +request.getPathInfo();,out.println(“Remote

12、 Address: “ + request.getRemoteAddr()+“); Enumeration e = request.getHeaderNames(); while (e.hasMoreElements() String name = (String)e.nextElement(); String value = request.getHeader(name); out.println(“+name + “ = “ + value); out.println(“); ,编译InfoServlet.java源程序文件,生成字节代码文件InfoServlet.class,将该文件拷贝

13、到myapp/WEB-INF/classes/mjwa目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。 InfoServlet mjwa. InfoServlet InfoServlet /servlet/ InfoServlet ,重新启动Tomcat,在浏览器地址栏中输入http:/localhost:8080/servlet/ InfoServlet 运行。本程序运行结果如图所示。,例14.4表单处理应用举例:利用Servlet读取表单输入内容,对客户的GET和POST请求分别用doGet方法和doPost方法进行处理。 源程序如下: /表单

14、处理应用 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, HttpServletResponse resp) throws IOException, ServletException resp.setContentType(“text/html“); PrintW

15、riter out = resp.getWriter(); out.println(“GET Request. No Form Data Posted“); ,public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException Enumeration e = req.getParameterNames(); PrintWriter out = resp.getWriter (); while (e.hasMoreElements() String na

16、me = (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。, For

17、mServlet mjwa. FormServlet FormServlet /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会话管理应用举例。 源程序如下: package mjwa;/例14.5,会话管理 import java.io.*; import j

18、ava.util.*; import javax.servlet.*; import javax.servlet.http.*; public class SessionServlet extends HttpServlet public void service(HttpServletRequest request, HttpServletResponse response),throws IOException, ServletException response.setContentType(“text/html“); PrintWriter out = response.getWrit

19、er(); HttpSession session = request.getSession(true); Date created = new Date(session.getCreationTime(); Date accessed = new Date(session.getLastAccessedTime(); out.println(“ID “ + session.getId(); out.println(“Created: “ + created); out.println(“Last Accessed: “ + accessed+“);,String id = request.g

20、etParameter(“id“); String email = request.getParameter(“email“); session.setAttribute(“id“, id); session.setAttribute(“email“, email); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements() String name = (String)e.nextElement(); String value = session.getAttribute(name).toString();

21、out.println(“+name + “ = “ + value); ,把编译源文件SessionServlet.java生成的字节代码文件SessionServlet.class拷贝到myapp/WEB-INF/classes/mjwa目录下,并在配置文件web.xml中添加如下的servlet和servlet-mapping。, SessionServlet mjwa. SessionServlet SessionServlet /servlet/SessionServlet 重新启动Tomcat,在浏览器地址栏中输入http:/localhost:8080/servlet/ SessionServlet 即可运行。,本章小结,本章介绍了Servlet的基本概念、工作原理、生命周期、Servlet程序的基本构架以及开发Servlet程序的基本步骤。 Servlet是运行在请求/面向请求服务器上的模块,它是在服务器端的Servlet容器中执行的Java程序。一个Servlet可以从一个HTML表单中获取数据,然后用商业逻辑进行处理,最后把处理结果发往客户的浏览器。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1