Servlet简介&开发介绍
2009-06-22 16:23
316 查看
Servlet 是一种比JSP 更早的动态网页编程技术。在没有JSP 之前, Servlet 也是同时充当视图层、业务逻辑层及持久层角色。
Servlet 的开发效率非常低,特别是当使用Servlet 生成表现层页面时,页面中所有的HTML 标签,都需采用Servlet 的输出流来输出,因此极其烦琐。由于Servlet 是个标准的Java 类,因此必须由程序员开发,其修改难度大,美工人员根本无法参与Servlet 页面的开发。这一系列的问题,都阻碍了Servlet 作为表现层的使用。
自MVC 规范出现后, Servlet 的责任开始明确下来,仅仅作为控制器使用,不再需要生成页面标签,也不再作为视图层角色使用。
Servlet ,通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户端的请求。
Servlet 是个特殊的Java 类,这个Java 类必须继承HttpServlet 。每个Servlet 可以响应客户端的请求。Servlet 提供不同的方法用于响应客户端请求。
doGet: 用于响应客户端的get 请求。
doPost: 用于响应客户端的post 请求。
doPut: 用于响应客户端的put 请求。
doDelete: 用于响应客户端的delete 请求。
事实上,客户端的请求通常只有get 和post 两种; Servlet 为了响应这两种请求,必须重写doGet 和doPost 两个方法。如果Servlet 为了响应四个方法,则需要同时重写上面的四个方法。
大部分时候, Servlet 对于所有请求的响应都是完全一样的。此时,可以采用重写一个方法来代替上面的几个方法, Servlet 只需重写service 方法即可响应客户端的所有请求。
另外, HttpServlet 还包含两个方法。
init(ServletConfig config): 创建Servlet 实例时,调用的初始化方法。
destroyO: 销毁Servlet 实例时,自动调用的资源回收方法。
通常无须重写initO和destroyO两个方法,除非需要在初始化Servlet 时,完成某些资源初始化的方法,才考虑重写init 方法。如果需要在销毁Servlet 之前,先完成某些资源
的回收,比如关闭数据库连接等,才需要重写destroy 方法。
注意:如果重写了init(ServletConfig config)方法,则应在重写该方法的第一行调用
super.init(config) 。该方法将调用HttpServlet 的init 方法。
//Servlet 必须继承HttpServlet 类
public class FirstServlet extends HttpServlet
...{
// 客户端的响应方法,使用该方法可以响应客户端所有类型的请求
public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,java.Io,IOException
...{
// 设置解码方式
request.setCharacterEncoding("GBK") ;
// 获取name 的请求参数值
String name = request.getParameter("name");
//获取页面输出流
PrintStream out = new PrintStream(response.getOutputStream());
//输出html标签
out.println("标签");
// 输出请求参数的值: name
out .println ("您的名字: n + name + 11 <hr> " ) ;
//输出html标签
out.println("标签");
}
}
Servlet 的开发效率非常低,特别是当使用Servlet 生成表现层页面时,页面中所有的HTML 标签,都需采用Servlet 的输出流来输出,因此极其烦琐。由于Servlet 是个标准的Java 类,因此必须由程序员开发,其修改难度大,美工人员根本无法参与Servlet 页面的开发。这一系列的问题,都阻碍了Servlet 作为表现层的使用。
自MVC 规范出现后, Servlet 的责任开始明确下来,仅仅作为控制器使用,不再需要生成页面标签,也不再作为视图层角色使用。
Servlet ,通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户端的请求。
Servlet 是个特殊的Java 类,这个Java 类必须继承HttpServlet 。每个Servlet 可以响应客户端的请求。Servlet 提供不同的方法用于响应客户端请求。
doGet: 用于响应客户端的get 请求。
doPost: 用于响应客户端的post 请求。
doPut: 用于响应客户端的put 请求。
doDelete: 用于响应客户端的delete 请求。
事实上,客户端的请求通常只有get 和post 两种; Servlet 为了响应这两种请求,必须重写doGet 和doPost 两个方法。如果Servlet 为了响应四个方法,则需要同时重写上面的四个方法。
大部分时候, Servlet 对于所有请求的响应都是完全一样的。此时,可以采用重写一个方法来代替上面的几个方法, Servlet 只需重写service 方法即可响应客户端的所有请求。
另外, HttpServlet 还包含两个方法。
init(ServletConfig config): 创建Servlet 实例时,调用的初始化方法。
destroyO: 销毁Servlet 实例时,自动调用的资源回收方法。
通常无须重写initO和destroyO两个方法,除非需要在初始化Servlet 时,完成某些资源初始化的方法,才考虑重写init 方法。如果需要在销毁Servlet 之前,先完成某些资源
的回收,比如关闭数据库连接等,才需要重写destroy 方法。
注意:如果重写了init(ServletConfig config)方法,则应在重写该方法的第一行调用
super.init(config) 。该方法将调用HttpServlet 的init 方法。
//Servlet 必须继承HttpServlet 类
public class FirstServlet extends HttpServlet
...{
// 客户端的响应方法,使用该方法可以响应客户端所有类型的请求
public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,java.Io,IOException
...{
// 设置解码方式
request.setCharacterEncoding("GBK") ;
// 获取name 的请求参数值
String name = request.getParameter("name");
//获取页面输出流
PrintStream out = new PrintStream(response.getOutputStream());
//输出html标签
out.println("标签");
// 输出请求参数的值: name
out .println ("您的名字: n + name + 11 <hr> " ) ;
//输出html标签
out.println("标签");
}
}
相关文章推荐
- JSP、Servlet实战:团队开发新闻系统(三)架构简介
- 斯坦福大学公开课:iPhone开发教程2010年冬> 各种基础的类,功能,对象和实例的介绍
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
- servlet生命周期的介绍&ServletContext接口
- Lucene.Net 2.3.1开发介绍 —— 简介 (转)
- SQlite数据库简介&介绍以及使用API调用
- servlet的开发流程介绍
- 一个开发需求的解决方案 & Oracle临时表介绍
- Day14-HTTP协议 & web开发概述 & servlet快速入门
- SERVLETJSP Unit05:转发 、 JSP开发常见问题 & Unit09: EL、JSTL
- Servlet+JSP+JavaBean开发模式(MVC)介绍
- Servlet开发简介
- Android开发:XML简介&DOM、PULL、SAX解析对比
- Android目录介绍&UI简介
- servlet中的HttpServletResponse对象、请求转发、请求重定向和path"/"介绍
- Android开发3:项目目录介绍&HelloWorld
- android mvp快速开发框架介绍(dileber的简介)
- C#编写的发送手机短信的类库 && C#开发短信的方法和简介 &&短信编程实例
- Rossum--Android上ROS开发介绍与安装简介