最近在做一个通过Servlet实现后台批量接收上传文件的东西,现将Servlet的开发、运行配置、调用记录下来。我们以最简单的FileUpload为例,目前所有的http协议相关的Servlet均继承于HttpServlet。
- Servlet开发
Servlet的开发都必须将Servlet-api.jar引用到项目的lib目录中,具体如何引用,不详细描述。开发HttpServer必须扩展HttpServer类。HttpServlet 类包含
init():在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法来覆盖它。
destroy():destroy() 方法仅执行一次,即在服务器停止且卸装Servlet 时执行该方法。
service() :service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。
Servlet的响应可以是下列几种类型:一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。一个HTTP错误响应, 重定向到另一个URL、servlet、JSP。
doGet():当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。
doPost():当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需