Servlet, filter, and listener

Source: Internet
Author: User

I. Functions of Servlet, filter, and listener

Servlet functionality: A servlet is a small application running on a Web server that receives requests from clients, processes, and returns responses. (the servlet itself has actually been able to do the filter and listener functions, but the two separate components are actually implemented with functional multiplexing and pluggable architectures )

Filter's function: filter, or filter, is a technique for functional processing before the servlet acquires the request and after the response. ( adorner mode )

Listener function: Listener is used to monitor the change of the object and carry out the corresponding function processing. In this article, listener is the listener for the servlet, and the action events and changes in the life state of the servlet trigger the corresponding listener. ( Listener mode )

Second, the life cycle comparison of Servlet, filter and listener

(i), the life cycle of these three components is controlled by the Web container

stage servlet filter listener
Initialize void init (servletconfig config) void Init (filterconfig) processing void Service (ServletRequest req, servletresponse res) void DoFilter ( ServletRequest request, servletresponse response, Filterchain chain)
Destroy void Destroy () void Destroy ()

(b), the corresponding class and configuration of the wording, you can find that the servlet and filter are very similar.

These two articles are well written "Listener in Web. XML, filter, servlet load order and its details", "java filter, servlet, listener learning ."

The main thing here is to pay attention to what kind of methods they have achieved. The listener in this article only monitors object life cycle changes, and other listeners monitor events that are manipulated by objects, such as: Httpsessionattributelistener.

 PackageCom.kwan.web.three;Importjava.io.IOException;ImportJavax.servlet.ServletConfig;Importjavax.servlet.ServletException;Importjavax.servlet.ServletRequest;ImportJavax.servlet.ServletResponse;ImportJavax.servlet.http.HttpServlet; Public classDemoservletextendsHttpServlet {@Override Public voidService (ServletRequest arg0, servletresponse arg1)throwsservletexception, IOException {//TODO auto-generated Method Stub        Super. Service (arg0, arg1); } @Override Public voiddestroy () {//TODO auto-generated Method Stub        Super. Destroy (); } @Override Public voidInit ()throwsservletexception {//TODO auto-generated Method Stub        Super. Init (); } @Override Public voidInit (servletconfig config)throwsservletexception {//TODO auto-generated Method Stub        Super. init (config); }    } PackageCom.kwan.web.three;Importjava.io.IOException;ImportJavax.servlet.Filter;ImportJavax.servlet.FilterChain;ImportJavax.servlet.FilterConfig;Importjavax.servlet.ServletException;Importjavax.servlet.ServletRequest;ImportJavax.servlet.ServletResponse; Public classDemofilterImplementsFilter {@Override Public voiddestroy () {//TODO auto-generated Method Stub} @Override Public voidDoFilter (ServletRequest arg0, Servletresponse arg1, Filterchain arg2)throwsIOException, servletexception {//TODO auto-generated Method Stub} @Override Public voidInit (Filterconfig arg0)throwsservletexception {//TODO auto-generated Method Stub            }} PackageCom.kwan.web.three;Importjavax.servlet.ServletContextEvent;ImportJavax.servlet.ServletContextListener;Importjavax.servlet.ServletRequestEvent;ImportJavax.servlet.ServletRequestListener;Importjavax.servlet.http.HttpSessionEvent;ImportJavax.servlet.http.HttpSessionListener;//Listen the lifecycle of Object HttpSession, ServletContext, ServletRequest Public classDemolistenerImplementsHttpsessionlistener, Servletcontextlistener, Servletrequestlistener {@Override Public voidrequestdestroyed (servletrequestevent arg0) {//TODO auto-generated Method Stub} @Override Public voidrequestinitialized (servletrequestevent arg0) {//TODO auto-generated Method Stub} @Override Public voidcontextdestroyed (servletcontextevent arg0) {//TODO auto-generated Method Stub} @Override Public voidcontextinitialized (servletcontextevent arg0) {//TODO auto-generated Method Stub} @Override Public voidsessioncreated (httpsessionevent arg0) {//TODO auto-generated Method Stub} @Override Public voidsessiondestroyed (httpsessionevent arg0) {//TODO auto-generated Method Stub            }}
<?XML version= "1.0" encoding= "UTF-8"?><Web-appxmlns= "Http://java.sun.com/xml/ns/javaee"Xmlns:xsi= "Http://www.w3.org/2001/XMLSchema-instance"xsi:schemalocation= "Http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version= "3.0"Metadata-complete= "true">    <servlet>      <Servlet-name>Servletdemo</Servlet-name>      <Servlet-class>Com.kwan.web.three.DemoServlet</Servlet-class>  </servlet>  <servlet-mapping>      <Servlet-name>Servletdemo</Servlet-name>      <Url-pattern>/servlet</Url-pattern>  </servlet-mapping>    <Filter>      <Filter-name>Filterdemo</Filter-name>      <Filter-class>Com.kwan.web.three.DemoFilter</Filter-class>  </Filter>  <filter-mapping>      <Filter-name>Filterdemo</Filter-name>      <Url-pattern>/*</Url-pattern>  </filter-mapping>    <Listener>      <Listener-class>Com.kwan.web.three.DemoListener</Listener-class>  </Listener></Web-app>

Three, adorner mode and listener mode (time to add later)

Servlet, filter, and listener

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.