java web入门-servlet初步

Java web三大组件:Servlet、Filter、Listener。

servlet是单例的,一个对象只会有服务器创建一个对象。

每个servlet必须实现javax.servlet.Servlet接口

实现servlet接口的三个方式:

实现javax.servlet.Servlet接口

继承javax,servlet.GenericServelet类

继承javax.servlet.http.HttpServlet类

servlet接口五个方法:

public void init(ServletConfig config) throws ServletException {}

public ServletConfig getServletConfig() {return null;}

public void destroy() {}

public String getServletInfo() {return null;}

public void service(ServletRequest req, ServletResponse res)throws ServletException,IOException{}

配置文件web.xml:

每个servlet需要一个<servlet><servlet-name></servlet-name><servlet-class></servlet-class>将servlet名称和一个servlet类绑定,一个<servlet-mapping><servlet-name></servlet-name><url-pattern></url-pattern>将servlet与url绑定。

servlet生命周期:

1.服务器会在Servlet第一次被访问时创建Servlet,或者是在服务器启动时创建Servlet。如果服务器启动时就创建Servlet,那么还需要在web.xml文件中配置。也就是说默认情况下,Servlet是在第一次被访问时由服务器创建的。(第一次惩罚)

而且一个Servlet类型,服务器只创建一个实例对象,创建后会调用init方法初始化。

2.服务器每收到一个请求就会调用一次service方法

3.结束时会调用destroy方法。

servlet接口相关类型:请求对象ServletRequest,响应对象ServletResponse,配置文件ServletConfig。

GenericServlet:

servlet接口的一种实现,可以通过继承GenericServlet类来修改。

GenericServlet的init方法是通过先将config变量赋值(供其他方法使用),再调用无参的init方法,故在修改时只需要重写无参init即可。

HttpServlet:

GenericServlet的子类,添加了对HTTP的额外支持。

HttpServlet在接口service方法中将两个普通参数强转为HTTP参数(HttpServletRequest和HttpServletResponse)。再调用自己特有的service(使用HTTP参数)方法,在这个方法内部通过判断请求类型(post和get)来确定调用doPost方法和doGet方法。故在实现时只需要覆盖doGet方法和doPost方法即可。

原文地址:https://www.cnblogs.com/liuzey/p/11282139.html