个人java学习路线-Servlet适配器原理GenericServlet
介绍
Servlet类直接实现javax.servlet.Servlet接口时,很多方法是目前不需要的,我们可能只要编写service。
所以我们有必要在中间添加一个适配器,以后所有的Servlet类不再直接实现Servlet接口,应该去继承适配器
我们创建GenericServlet实现Servelt接口
public abstract class GenericServlet implements Servlet {
private ServletConfig config;
@Override
public void init(ServletConfig config) throws ServletException {
this.config=config;
this.init();
}
public void init() {
}
@Override
public abstract void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException;
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
return config;
}
@Override
public String getServletInfo() {
return "";
}
//---------------------下面是扩展方法---------------------------------
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
//------------------------------------------------------
}
那么我们以后就可以直接继承GenericServlet,从而减少不必要的代码
public class HelloServlet extends GenericServlet {
@Override
public void init() {
System.out.println("HelloServlet's init....");
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.print("hello world");
out.print("<br>");
out.print(getServletContext());
}
}
GenericServlet当然是已有类,导入就行import javax.servlet.GenericServlet,这里只是模仿一下