1.servlet一般运行在容器中处理客户端的请求,例如容器Tomcat,咱们自己写好的java类,写好main方法,不能处理客户端的请求,咱们写好的servlet类必须部署在一个servlet容器中,这样servlet才能处理客户端的请求,servlet不能随便写,必须依照sun公司规定的一套api
常见的servlet容器:
Tomcat,Jetty/Resin
2.咱们要是想写一个类,能够被Tomcat部署起来,来应对客户端的请求,那么这个类就不能随便写,通常来说,要去实现一个接口,即实现Servlet(在javax.servlet包下)接口,实现这个接口的具体的类们,就应该能够获得这种处理客户端请求的能力,但是这个servlet这个接口,没有考虑到具体的协议的细节,服务器端不止是http这种服务器,有可能是ftp服务器所以实现javax.servlet包下的接口就不合适,但是servlet这个接口有几个具体的子类,GenericServlet(这个类也没有考虑具体的协议),HttpServlet,咱们要处理,基于客户端这种http的请求,所以咱们要使用HttpServlet(考虑到http协议的细节),所以咱们要写一个能处理客户端请求的http协议的类,就应该继承HttpServlet.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doGet(req, resp);
}
doGet什么时候被调用,不是咱们自己写程序去调用这个方法,而是将来一旦客户端请求过来了,Tomcat会帮忙调用咱们写好的类new出来的对象,这个对象的doGet方法,doGet方法是servlet容器在适当的时候帮忙调用的,Tomcat帮忙调用的时候,会传递进来两个参数
HttpServletRequest req:客户端传递过来的请求,请求里面包含了客户端的Ip地址,传递过来的form表单的参数。
HttpServletResponse resp:代表到客户端的应答。
Tomcat: 因为到客户端的连接是基于TCP的SOCKET连接,tomcat自己知道到客户端的连接,不用我们自己写。如果没有tomcat我们要自己写。
常见的servlet容器:
Tomcat,Jetty/Resin
2.咱们要是想写一个类,能够被Tomcat部署起来,来应对客户端的请求,那么这个类就不能随便写,通常来说,要去实现一个接口,即实现Servlet(在javax.servlet包下)接口,实现这个接口的具体的类们,就应该能够获得这种处理客户端请求的能力,但是这个servlet这个接口,没有考虑到具体的协议的细节,服务器端不止是http这种服务器,有可能是ftp服务器所以实现javax.servlet包下的接口就不合适,但是servlet这个接口有几个具体的子类,GenericServlet(这个类也没有考虑具体的协议),HttpServlet,咱们要处理,基于客户端这种http的请求,所以咱们要使用HttpServlet(考虑到http协议的细节),所以咱们要写一个能处理客户端请求的http协议的类,就应该继承HttpServlet.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doGet(req, resp);
}
doGet什么时候被调用,不是咱们自己写程序去调用这个方法,而是将来一旦客户端请求过来了,Tomcat会帮忙调用咱们写好的类new出来的对象,这个对象的doGet方法,doGet方法是servlet容器在适当的时候帮忙调用的,Tomcat帮忙调用的时候,会传递进来两个参数
HttpServletRequest req:客户端传递过来的请求,请求里面包含了客户端的Ip地址,传递过来的form表单的参数。
HttpServletResponse resp:代表到客户端的应答。
Tomcat: 因为到客户端的连接是基于TCP的SOCKET连接,tomcat自己知道到客户端的连接,不用我们自己写。如果没有tomcat我们要自己写。