Servlet的核心是Servlet,它是所有Servlet类直接或间接实现的一个接口。
Servlet接口定义了Servlet与Servlet容器之间的契约。这个契约归结起来就是:Servletlet容器将Servlet类装入内存,并在Servlet实例上调用具体的方法。每一个Servlet只能有一个实例。
Servlet接口定义了以下5种方法:
生命周期方法:init,service,desdroy
非生命周期方法:getServletInfo,getServletConfig
相关参数对象类型详见:代码内部(包括:ServletRequest,ServletResponse,ServletConfig,,,)
init:
public void init(ServletConfig servletconfig) throws ServletException { //servlet被请求时
this.servletconfig=servletconfig;//Serlvet容器传入servletconfig
/*
* ServletConfig封装配置信息(@webServlet或者部署描述符传给Servlet的配置信息)
* 传入的配置信息叫做初始参数:由key和value组成
* 相关方法:getInitParameter(java.lang.string.name)
*
* 此外:getInitParameterNames();//得到所有参数列表
* getServletContext(); //获取ServletContext
*/
}
service:
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
//每当发生请求Servlet容器就会调用这个方法,处理后续请求
/** ServletResquest
* 对于每一个HTTP请求,Servlet都会创建一个ServletRequest对象,然后传给Servlet的service对象
* 相关方法:
* getContentlenth();//返回请求主体的字节长度
* getContentType(); //返回MIME(多互联网邮件扩展类型)的类型
* getParameter(); //返回请求参数值
* getProtocol(); //返回请求协议的名称和版本
*/
/*
* ServletResponse
* 表示对Servlet的响应,在调用Servlet的Service方法前Servlet首先创建Servletresponse对象
* 相关方法:
* setContentType(); //发送HTML标签前,设置响应的内容类型,"text/html"
* getWriter(); //创建一个写的对象
*/
PrintWriter w=arg1.getWriter();
w.println("<html><head>"
+ "</head><body>"
+ "encoding:"
+ "</body></html>");
}
desdroy:
public void destroy() { //用途:销毁Servlet或者卸载应用程序(关闭Servlet容器)
System.out.println("要进行销毁了");}
getServletInfo:
public String getServletInfo() { //getSevletInfo 这个返回servlet的描述
return "My servlet";
}
getServletCinfig:
public ServletConfig getServletConfig() { //获得init方法中传入的ServletConfig对象
return getServletConfig();
}