servlet 3.0 registered in the three major components

Traditional registration of the three components (Servlet, Filter, Listener) of

 

 

1. Create three components

package com.web.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
   
    public MyServlet() {
        super();
    }

    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
    }

    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        doGet(request, response);
    }

}

 

package com.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyFilter implements Filter{
    
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        String param01=filterConfig.getInitParameter("param01");
        String param02=filterConfig.getInitParameter("param02");
        System.out.println(param01);
        System.out.println(param02);
    }

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
            throws IOException, ServletException {
        System.out.println ( "Filter Request" );
        arg2.doFilter(arg0, arg1);
    }
    
    @Override
    public void destroy() {
        System.out.println ( "Filter request complete" );
        Filter.super.destroy();
    }

}

 

package com.web.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;



public class MyListener implements ServletContextListener {

    
    public MyListener() {
      
    }

    
    public void contextDestroyed(ServletContextEvent sce)  { 
       
    }

    
    public void contextInitialized(ServletContextEvent sce)  { 
        sce.getServletContext();
        System.out.println ( "Creating the ServletContext start" );
    }
    
}

 2, registered in web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

<!-- 注册监听器 -->
<listener>
    <listener-class>com.web.listener.MyListener</listener-class>
</listener>

<!-- 注册Servlet -->
<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>com.web.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>myServlet</servlet-name>
      <url-pattern>/myServlet</url-pattern>
 </servlet-mapping>
    

    
    <!-- 注册过滤器 -->
    <filter>
        <filter-name>myFilter</filter-name>
        <filter-class>com.web.filter.MyFilter</filter-class>
        <init-param>
            <param-name>param01</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>
            <param-name></param02param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>myFilter</filter-name>
        <url-pattern>/myServlet</url-pattern>
    </filter-mapping>
     
     
</web-app>

 

 Servlet 3.0 After registration of the three components (can use a comment to not introduce)

Registered in the implementation of the interface class implements javax.servlet.ServletContainerInitializer

 

package com.tomcat.learn;

amount java.util.Set;

import com.web.filter.MyFilter;
import com.web.listener.MyListener;
import com.web.servlet.MyServlet;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

public class ContainerInitializer implements ServletContainerInitializer{

    @Override
    public void onStartup(Set<Class<?>> arg0, ServletContext arg1) throws ServletException {
        //注册Servlet
        ServletRegistration.Dynamic myServlet=arg1.addServlet("myServlet", MyServlet.class);
        myServlet.addMapping("/myServlet");
        
        // Register filter 
        FilterRegistration.Dynamic myFilter = arg1.addFilter ( "myFilter", the MyFilter. Class );
        myFilter.addMappingForUrlPatterns(null, false, "/myServlet");
        
        //注册Listener
        arg1.addListener(MyListener.class);
        
        
    }

}

 If the time in the Spring, but also in org.springframework.web.WebApplicationInitializer implementation class onStartup registration process

 

 

 

Guess you like

Origin www.cnblogs.com/cplinux/p/12323316.html