Servlet与模板模式那些事 (二)

2014-11-24 11:49:46 · 作者: · 浏览: 18

}
}

//父类HttpServlet
public abstract class HttpServlet extends GenericServlet
implements Serializable
{
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{……}

public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
HttpServletRequest request;
HttpServletResponse response;
try
{
request = (HttpServletRequest)req;
response = (HttpServletResponse)res;
} catch (ClassCastException e) {
throw new ServletException("non-HTTP request or response");
}
//调用protected service
service(request, response);
}
}

//自己写的Servlet,继承HttpServlet
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet
{
//重写父类中的doGet方法
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String strOne = request.getParameter("username");
String strTwo = request.getParameter("password");

System.out.println("username=" + strOne);
System.out.println("password=" + strTwo);

response.setContentType("text/html");
response.getWriter().println("Login Success!!");
}
//重写父类中的doPost方法
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet(request,response);
}
}


总结,这种实现,重复的代码都上升到了父类中去,而变化的部分在子类中具体实现。