Java----Servlet服务器端编程初解 (一)

2014-11-24 11:19:59 · 作者: · 浏览: 6

Servlet服务器端编程初解

Servlet是一种运行在服务器端的Java程序,也可以说是服务器端的应用程序。它能够像CGI脚本一样扩展Web服务器的功能,且比CIG具有更高的效率,功能强大与平台无关等。

1、Servlet简介

Servlet即Java服务小程序,是使用应用程序设计接口以及相关类和方法的Java程序。它可以作为一种插件,像Applet一样嵌入到Web服务器中运行。Servlet主要用于处理和客户之间的通信,当客户传来一个HTTP请求时,通过调用Servlet方法来向客户端发送一个相应。与其他的动态网页编程技术相比,Servlet技术有很多自己特有的优点:

l 高效性:在传统的CGI中,当HTTP服务器收到对CGI程序的请求时,每一个请求都将启动一个新的线程。当有大量用户请求调用CGI应用程序是,多个CGI应用程序的执行将导致服务器的大量负载,会严重影响服务器系统性能。而在Servlet中,Servlet运行在一个进程中,该进程开始于服务器首次访问该Servlet,一直运行到基于该Servlet的程序结束。每一个客户端的请求响应都是对于该进程的一个线程进行相应,即每一个请求建立一个进程,Servlet的效率自然比CGI高出很多。

l 功能强大:在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成,如Servlet能够直接和Web服务器交互,而普通的CGI却不能。Servlet能够在各个程序之间共享数据,使得数据库的功能很容易实现。

l 可移植性好:Servlet是用Java编写的,因为Java是可移植的面向对象程序设计语言,所以Servlet无须任何实质上的改动即可移植到Apache、Microsoft IIS或其他的Web服务器上。

l 使用方便:Servlet提供了大量的使用工具例程,例如自动地解析HTML表单数据、读取和设置HTTP相应头、处理Cookie、跟踪会话状态等。

2、Servlet常用接口介绍:

与Servlet有关的接口主要包括以下几种:

l Servlet异常相关

l Servlet配置相关

l Servlet实现相关

l 请求与相应相关

l 会话相关

l Servlet上下文

l 过滤

1)、异常相关

相关类主要包括ServletException和UnavailabelException。ServletException类扩展了Exception类,其构造如下:

>ServletException()

>ServletException(String message)

2)、配置相关

与Servlet配置相关的接口是java.servlet.ServletConfig接口。Servlet配置包括Servlet的名字、Servlet类的名字以及初始化参数等内容。下面的代码就是一个Servlet的配置。

Welcome(/sevlet-name)

cn.dt.web.Welcome

Welcome

/Welcome

Java.servlet.ServletConfig接口中提供了很多的方法,常用的如下:

方法
说明

getInitParameter(String name)
返回指定名称的参数的字符串

getInitParameterNames()
返回Servlet的所有初始化参数的名字,返回值为一个枚举类型对象

getServletContext()
返回当前Servlet正在执行的那个上下文的引用

getServletName()
返回当前Servlet实例的名字

getContext(String uripath)
返回由参数指定的一个ServletContext对象

Long(String msg)
想Servelt的日志文件中写入信息

getServerInfo()
返回当前运行的Servlet容器的名称和版本号码

getAttribute(String name)
返回由参数指定的名字

getAttributeNames()
返回容器中所有属性的名称

getServletContextName()
返回当前Web应用程序的ServletContext的名字


3)、实现相关

与Servlet实现相关的接口和类主要包括Servlet接口、GenericServlet类和HttpServlet类。

(1)、Servlet接口

Servlet接口是所有Servlet必须直接或间接实现的接口,它定义了一些方法用来初始化Servlet、接受客户端的请求、响应客户端请求以及销毁一个Servlet。下面是Servlet接口的常用方法:

方法
说明

Destroy()
销毁Servlet

getServletConfig()
获取Servlet配置相关的信息

getServletInfo()
获取Servlet的信息

Init(ServletConfig config)
用于初始化Servlet

Service(ServletRequest req , ServletResponse res)
这是运行应用程序逻辑的入口点,它接收练个参数,客户端请求信息ServletRequest和对客户端的响应ServletResponse


(2)、GenericServlet类

Javax.servlet.GenericServlet类是一个抽象类,提供了对Servlet接口的基本实现。GenericServlet的service()方法是一个抽象方法,GenericServlet类的子类必须直接或间接地实现service()方法。下面是GenericServlet类的常用方法:

方法
说明

getServletConfig()
返回一个ServletConfig对象

getServletContext()
返回Servlet上下文的引用

getServletName()
返回当前Servlet实例的名字

getServletInfo()
返回当前Servlet的有关信息

Log(String msg)
将信息写入Servlet的文件中

Service(ServletRequest req , ServletResponse res)
用来响应客户端的请求


(3)、HttpServlet类

是针对shiyongHTTP协议的Web服务器的Servlet类。HttpServlet类扩展了GenericServlet类,同时HttpServlet类也是一个抽象类。要扩展该类,需要实现以下方法中的一个或多个。下表是HttpServlet子类必须实现的方法:

方法
说明

doGet(HttpServletRequest req , HttpServletResponse res)
支持Http Get请求

doPost(HttpServletRequest req , HttpServletResponse res)
支持Http Post请求

doPut(HttpServl