200 likes | 476 Views
第 5 章 Servlet 编程技术. 5. 内容提要. 本章主要介绍 Servlet 编程技术 介绍了 Servlet 与 JSP 的关系 Servlet 的生命周期 Servlet 的运行环境以及 Servlet 的体系结构。 着重介绍了 Servlet 的配置与执行以及如何使用 Web 程序和 Servlet 进行交互。. Servlet 简介. Servlet 是服务器端的 Java 小程序。用于响应客户机的请求。 在默认情况下, Servlet 采用一种无状态的请求 - 响应处理方式。 Servlet 代码的主要作用是为了增强 Java 服务器端功能。.
E N D
内容提要 • 本章主要介绍Servlet编程技术 • 介绍了Servlet与JSP的关系 • Servlet的生命周期 • Servlet的运行环境以及Servlet的体系结构。 • 着重介绍了Servlet的配置与执行以及如何使用Web程序和Servlet进行交互。
Servlet简介 • Servlet是服务器端的Java小程序。用于响应客户机的请求。 • 在默认情况下,Servlet采用一种无状态的请求-响应处理方式。Servlet代码的主要作用是为了增强Java服务器端功能。
Servlet概念 • Servlet是一个标准的Java类,它符合Java类的一般规则。 • 和一般Java类不同之处就在于Servlet可以处理HTTP请求。在Servlet API中提供了大量的方法,可以在Servlet中调用。
Servlet与JSP的关系 • JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。 • 因此,当编写的页面显示效果比较复杂时,首选是JSP。或者在开发过程中,HTML代码经常发生变化,而Java代码则相对比较固定时,可以选择JSP。而我们在处理业务逻辑时,首选则是Servlet。 • 同时,JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。因此,Servlet加强了Web服务器的功能。
Servlet的生命周期 • Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。 • Servlet的生命周期主要由3个过程组成。 • 1、init()方法:服务器初始化Servlet。 • 2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。 • 3、destroy()方法:调用该方法消灭Servlet对象。 • 其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。
Servlet的运行环境 • 调用并运行一个Servlet首先需要简单的配置,一般首先用Java编译器将Servlet文件编译成Class文件 • 然后将Class文件放到Web服务器中,最后设置Servlet的调用路径
编译 案例名称:简单的Servelet 程序名称:j5_01.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class j5_01 extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void service(HttpServletRequest reqest, HttpServletResponse response) throws IOException { PrintWriter out=response.getWriter(); response.setContentType("text/html;charset=GB2312");//设置响应的类型。 out.println("<HTML> <BODY>"); out.println("Simple servlet"); out.println("</body> </html>"); } }
设置存放目录 • 将j5_01.class文件拷贝到ROOT/WEB-INF/classes目录下,然后编辑ROOT/WEB-INF下的web.xml文件,在结束标记</web-app>前面添加语句如程序web.xml文件所示 案例名称:Web配置文件 程序名称:节选自web.xml文件 <!-- JSPC servlet mappings end --> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>j5_01</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <!--Notice: using http://localhost:8090/test to access this servlet--> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app>
运行Servlet • 修改完毕,在浏览器中输入,“http://localhost:8090/test”,
Servlet体系结构 • Servlet是创建Web应用程序的基本块。Servlet提供了一种通用的程序设计模块。 • Servlet API包含两个包:javax.servlet和javax.servlet.http包。其中javax.servlet包有两个子包用于JSP页面(javax.servlet.jsp)和JSP定制标记(javax.servlet.jsp.tagext)。
Java Servlet API概述 • Servlet API在两个Java扩展包中定义:javax.servlet和javax.servlet.http包。 • 这两个包中,javax.servlet包中定义的类和接口是独立于协议的;而javax.servlet.http中包含了具体于HTTP协议的类和接口。javax.servlet.http包中的某些类或接口继承了某些javax.servlet包中的类或接口。
GenericServlet类和HttpServlet类 • GenericServlet类提供了Servlet接口的基本的实现,GenericServlet类中的service()方法是抽象方法,所有子类都应当实现这个方法。 • HttpServlet类扩展了GenericServlet,并且提供了Servlet接口中具体于HTTP的实现。一般用户自定义的Servlet都要扩展该类。这个类定义了如下的方法:
doGet和doPost方法 • doGet和doPost方法分别对应Form表单的属性method属性,method属性有两种Get和Post。 • 利用Get方法提交的总数据量不能超过2K,否则将提交失败,利用Post方法则没有容量方面的限制
使用doGet和doPost方法 案例名称:使用doGet和doPost方法 程序名称:j5_02.htm 范例名称:使用Servlet和Web页面交互 文件名称:j5_03.java 案例名称:Web配置文件 程序名称:节选自web.xml文件
JSP-Servlet页面调用 案例名称:JSP-Servlet页面调用 程序名称:servletToJsp.java 案例名称:Web配置文件 程序名称:节选自web.xml文件 案例名称:JSP-Servlet页面调用 程序名称:hello.jsp
小结 • 本章主要介绍Servlet编程技术 • 介绍了Servlet与JSP的关系 • Servlet的生命周期 • Servlet的运行环境以及Servlet的体系结构。 • 着重介绍了Servlet的配置与执行以及如何使用Web程序和Servlet进行交互。
本章习题 • 5-1. 简述Servlet和JSP的关系。 • 5-2. 简述Servlet的生命周期。(企业笔试题) • 5-3. 简述HttpSession接口的功能和使用方法。(企业笔试题) • 5-4. 完成Servlet的编译、配置和运行。(上机完成) • 5-5. 编写一个HTML文件,利用Servelt的doPost方法实现Form表单内容的读取。(上机完成)(企业笔试题) • 5-6. 图示运行Servlet的目录结构。(企业笔试题)