Servlet是运行在服务端的Java应用程序,由Servlet容器对其进行管理,当用户发送HTTP请求时,容器将通知对应的Servlet对象进行处理,完成服务端与客户端之间的交互。
1、Servlet接口
在Servlet开发中,任何一个Servlet对象都要直接或间接实现javax.servlet.Servlet接口,Servlet接口的主要方法说明如下。
init方法
当首次创建Servlet时就会调用init方法。而不是每个用户请求都会调用该方法,它用于一次性初始化过程。
当前存在两个版本的init:一个版本不接受任何参数,另一个接受ServletConfig对象作为参数。
无参数的版本:
public void int() throws ServletException {
// Initialization coe…
}
有参数的版本:
public void int(ServletConfig config) throws ServletException {
super.init(config);
// Initialization coe…
}service方法
每当服务器接收到对Servlet请求时,服务器就会产生一个新线程,并调用service方法,service方法检查HTTP请求类型,并相应地调用doGet、doPost等方法。如果Servlet需要以相同方式处理POST和GET请求,可以直接覆盖service方法。
public void service(
HttpServletRequest request,
HttpServletResponse response
) throws ServletException, IOException {
// servlet code
}doGet、doPost和doXxx方法
这些方法包含Servlet的核心内容,特别是用于处理GET和POST请求的doGet和doPost方法。若需要对DELETE请求进行处理,可以覆盖doDelete方法,PUT请求可以覆盖doPut方法。
public void doGet (
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// servlet code
}getServletConfig()方法
用于获取Servlet对象的配置信息,返回ServletConfig对象。该对象中包含servlet启动配置信息.这个信息中包括了所有初始化参数和一个ServletContext对象。
2、 ServletConfig对象
ServletConfig对象位于Javax.servlet包中,它封装了Servlet的配置信息。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
该对象主要定义了四个方法。
public String getInitParameter(String name)
该方法返回名称为name的初始化参数值。
public Enumeration getInitParameterNames()
该方法返回所有初始化参数的枚举集合。
public ServletContext getServletContext()
该方法返回Servlet上下文对象。
public String getServletName()
该方法返回Servlet对象的实例名称。
3、 HttpServletRequest对象
HttpServletRequest对象位于javax.servlet.http包中,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在该对象中,通过该对象提供的方法,可以获得客户端请求的所有信息。
该对象主要定义了如下方法。
public String getRequestURL()
返回客户端发出请求时的完整URL。
public String getRequestURI()
返回请求行中的参数部分。
public String getQueryString ()
返回请求行中的参数部分(参数名+值),如name=张三
public String getRemoteHost()
返回发出请求的客户机的完整主机名。
public String getRemoteAddr()
返回发出请求的客户机的IP地址。
public String getMethod()
返回请求所使用的HTTP类型,如GET、POST等。
4、 HttpServletResponse对象
HttpServletResponse对象位于javax.servlet.http包中,该对象向客户端输出数据。
该对象主要定义了如下方法。
public ServletOutputStream getOutputStream()
该方法返回输出流对象,该流对象可以向客户端输出文本和二进制数据。
PrintWriter public getWriter()
该方法返回PrintWriter对象,PrintWriter对象可以向客户端输出文本数据。