JSP参考教材PPT-第二章Servlet使用入门.ppt
第二章,Servlet 使用入门,回顾,与桌面应用程序相比,Web 应用程序易于维护、升级和部署使用 GET 方法请求的页面可以设置为书签或通过电子邮件发送POST 方法用于发送敏感信息(如信用卡号、密码等)在三层体系结构中表示层不能与数据层直接交互JBuilder Enterprise 可以配置为使用外部 Tomcat 安装,目标,理解HTTP Servlet 基础知识使用 Servlet API理解Servlet 的生命周期使用JBuilder2005演示Servlet,什么是 Servlet?,请求,客户端,响应,Servlet 运行于服务器上,Servlet(java服务器小程序)是一个用 Java 编写的程序,此程序在服务器上运行以处理客户端请求。是按照Servlet规范编写的java类,ServletAPI,javax.servlet包中定义了所有的servlet类都必须实现的接口和类。javax.servlet.http包中定义了采用HTTP协议通信的HttpServlet类Servlet的框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.,ServletAPI,HTTP Servlet 基础知识,HttpServlet 类提供一个抽象类以创建 HTTP Servlet,public void doGet(HttpServletRequest req,HttpServletResponse res),doGet()方法处理客户端作出的 GET 请求。,public void doPost(HttpServletRequest req,HttpServletResponse res),doPost()方法处理客户端作出的 POST 请求。,HTTP Servlet 基础知识,有两个参数:HttpServletRequest和HttpServletResponse,这两个类实现了ServletRequest接口和ServletResponse接口ServletRequest接口中封装了客户请求信息.如客户请求方式,参数名,参数值,客户端正在使用的协议,以及发出客户请求的远程主机信息等ServletResponse接口为Servlet提供了返回相应结果的方法,javax.servlet 包 2-1,ServletConfig 接口,在初始化的过程中由 Servlet 容器使用,ServletContext 接口,定义 Servlet 用于获取来自其容器的信息的方法,ServletRequest 接口,向服务器请求信息,ServletResponse 接口,响应客户端请求,javax.servlet 包的接口为:,javax.servlet 包 2-2,ServletInputStream 类,用于从客户端读取二进制数据,ServletOutputStream 类,用于将二进制数据发送到客户端,javax.servlet 包的类为:,javax.servlet.http 包,HttpServletRequest 接口,提供 HTTP 请求信息,HttpServletResponse 接口,提供 HTTP 响应,包的接口为:,Servlet实现:Servlet接口,init方法,service方法:客户请求和响应调用该方法,释放内存、关闭Web服务器调用destroy方法,Servlet实现:Servlet接口(续),getServletConfig方法,Servlet实现:GenericServlet类和HttpServlet类,我们自己编写的servlet要继承HttpServlet,一般要覆盖doPost或者doGet方法。HttpServlet类的doGet方法用于接收Get请求,doPost方法用于接收Post请求。,Servlet 体系结构,Servlet实现:GenericServlet类和HttpServlet类(续),servlet收到一个请求,调用public的service()方法,把参数分别转换为HttpServletRequest和HttpServletResponse,这个public的service()方法调用protected的service()方法,根据HTTP请求方法的类型,protected的service()调用doXXX()方法之一,Servlet 的生命周期 2-1,Servlet 容器创建 Servlet 的一个实例Servlet 的生命周期就是指创建 Servlet 实例之后其存在的时间以及何时消失生命周期的 3个方法为:,init(),service(),destroy(),Servlet 的生命周期 2-2,生命周期的各个阶段为:,实例化,Servlet 容器创建 Servlet 的实例,初始化,该容器调用 init()方法,服 务,如果请求 Servlet,则容器调用 service()方法,销毁实例之前调用 destroy()方法,销 毁,不可用,销毁实例并标记为垃圾收集,HelloWordServlet,编写一个HelloWordServlet类,部署HelloWorldServlet,在web.xml中部署Servlet后才能够使用Servlet,简单 Servlet 的结构,这是一个显示 HttpServletRequest 和 HttpServetResponse 接口一些方法的简单 Servlet,演示:示例 1,需要导入的包,用于处理 GET 请求的方法,创建设置文本格式和 PrintWriter 对象的方法以将数据发送给客户端,Servlet 的部署,clientservlet chapter2.ClientServlet clientservlet/clientservlet,web.xml文件中配置Servlet,两个名称必须相同,开发 Servlet,JBuilder 提供最新的功能以开发 Web 应用程序JBuilder 是基于 Java 的应用程序,用于开发应用程序(如 Applet、Servlet、JSP 和 JavaBean)JBuilder 工程是一个组织单元,它存储特定 Web 应用程序的所有文件、目录、路径和设置JBuilder 使用户可以创建三种类型的 Servlet,即标准 Servlet、监听器 Servlet 和过滤器 Servlet在开发 Servlet 之前,有必要为此 Servlet 开发一个 Web 模块Web 模块包含一个名为 web.xml 的文件,该文件存储正在开发的 Web 应用程序的内容,新建工程,对于一个具体的Web应用,必须:首先创建一个工程然后在工程下创建Web模块在工程中开发Java程序在Web模块下开发Servlet,Jsp,HTML等,选择“New Project”进入新建工程向导,演示:新建工程,新建Web模块,要使用 Jbuilder 创建一个 Servlet,首先创建一个 Web 模块,然后使用该 Web 模块开发 Servlet,单击“OK”进入新建Web模块向导,演示:新建Web模块,创建一个Servlet 5-1,使用向导创建Servlet,单击“OK”进入新建Servlet向导,创建一个Servlet 5-2,为 Servlet命名、选择所在的包以及运行Servlet的 Web 模块,创建一个Servlet 5-3,选择Servlet所要实现的方法,创建一个Servlet 5-4,可以输入Servlet请求的参数,创建一个Servlet 5-5,指定Servlet的路径,直接单击“Finish”按钮创建Servlet,LoginServle.java 代码,public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException response.setContentType(CONTENT_TYPE);response.setCharacterEncoding(GB2312);PrintWriter out=response.getWriter();try String username=request.getParameter(username);String password=request.getParameter(password);if(username.equals()|password.equals()userInterface(response);else out.println(+username+欢迎第一次使用Servlet);out.println(今天的日期是:+new Date();catch(Exception e)userInterface(response);out.close();,public void userInterface(HttpServletResponse response)throws IOException PrintWriter out=response.getWriter();out.println();out.println(loginservlet);out.println();out.println(欢迎第一次使用Servlet);out.println();out.println(用户名:);out.println(密码:);out.println();out.println();out.println();out.println();,演示:示例2,总结 2-1,Servlet 运行于服务器上,它接受请求并用请求的数据响应客户端HTTP 是一个广泛使用的协议,用于在客户端和服务器之间传输数据Servlet 广泛使用 HTTP 协议,因此称为 HTTP ServletHTTP Servlet 发送 HTTP 请求并接收 HTTP 响应Servlet API 包含在两个包中,即 javax.servlet 和 javax.servlet.http 中,总结 2-2,Servlet 的生命周期包含三种方法,分别是 init()、service()和 destroy()Servlet 既可以扩展 GenericServlet 类,也可以扩展 HttpServlet 类JBuilder 是用于开发 Web 应用程序(如Servlet、Applet 和 JSP)的一种非常有用的软件JBuilder 提供三种类型的 Servlet,即标准 Servlet、监听器 Servlet 和过滤器 Servlet,