JavaWeb——Servlet
前言:什么是Servlet?
Servlet是采用Java写的Web服务器端程序。
当客户端(浏览器)向服务器端发起请求时,服务器将请求(Request)进行封装后便调用Servlet程序处理请求,Servlrt将处理后的结果(Response)返回给服务器,服务器对结果进行封装后返回给客户端。
我们在学习开发中往往采用TomCat来作为服务器,由TomCat来调用Servlet处理Web请求。
Servlet
Servlet中的方法
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
当客户端向服务器发起请求时,服务器启动Servlet,Servlet首先调用 getServletConfig() 方法获得Servlet相关配置,并作为参数传递给 init() 方法,init() 方法用来初始化Servlet,Servlet初始化完成后就会调用 service() 方法处理请求 ,getServletInfo() 可以获得Servlet的一段描述信息,当请求处理结束后,便会调用 destroy() 方法销毁Servlet。这也是Servlet的生命周期。
ServletRequest 及 ServletResponse
Servlet在调用 service() 方法前会生成ServletRequest对象和ServletResponse对象。
我们可以通过ServletRequest中的方法来获取请求的相关信息:
public interface ServletRequest {
int getContentLength();//返回请求主体的字节数
String getContentType();//返回主体的MIME类型
String getParameter(String var1);//返回请求参数的值
}
可以通过ServletResponse中的方法自定义返回结果:
public interface ServletResponse {
String getCharacterEncoding();// 获取字符编码格式
String getContentType();//获取内容类型
ServletOutputStream getOutputStream() throws IOException;//获取二进制输出流,可用于(通过缓冲区)向响应体中书写内容
PrintWriter getWriter() throws IOException;//获取文本输出流,可用于(通过缓冲区)向响应体中书写内容
void setCharacterEncoding(String var1);// 设置字符编码格式
void setContentLength(int var1);// 设置响应体长度
void setContentType(String var1);// 设置响应数据类型
void setBufferSize(int var1);// 设置缓冲区大小
int getBufferSize();// 获取缓冲区大小
void flushBuffer() throws IOException;// 刷新缓冲区
void resetBuffer();// 清空缓冲区
boolean isCommitted();