Servlet的讲解与总结

01 servlet 是 service applet 的缩写,翻译为中文是服务器小程序. 他是用来处理客户端的请求的
02 servlet是一个接口,并不是一个类,这也是面向接口的一种实现,一个类只要实现了该接口,就可以被Tomcat服务器调用
03 该接口的具体代码

public interface Servlet {
01
    void init(ServletConfig var1) throws ServletException;
02
    ServletConfig getServletConfig();
03
    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
04
    String getServletInfo();
05
    void destroy();
}

第一个方法是void init(ServletConfig var1) throws ServletException;
该方法是第一次初始servlet是调用,是被Tomcat服务器调用的,参数是ServletConfig ,这是一个这样的类型

								```
								public interface ServletConfig {
								    String getServletName();
								
								    ServletContext getServletContext();
								
								    String getInitParameter(String var1);
								
								    Enumeration<String> getInitParameterNames();
								}
								```
					这也是一个接口,但是呢?这个实现对象是Tomcat读取了这一段信息后产生的
  <servlet>
        <servlet-name>dispatcher</servlet-name>
        <!--全局的sevelet-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置加载时初始化 默认的配置名字 XXX+-servlet.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

这段配置文件就是config
那么,怎么得到他呢?
看02 方法
ServletConfig getServletConfig();
就可以得到,并且在servlet中存储

//该方法有tomcat服务器调用
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化Serv");
        this.servletConfig=servletConfig;

    }
//ServletConfig是当前Servlet容器向Servlet传递信息用的
    @Override
    public ServletConfig getServletConfig() {

        return servletConfig;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        String servletName = servletConfig.getServletName();
//        一个应用就一个应用上下文
        ServletContext servletContext = servletConfig.getServletContext();
        System.out.println("servletContext:"+servletContext);
//        获取所有初始化参数
        Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
//        遍历枚举
        while (initParameterNames.hasMoreElements()){
            String name =initParameterNames.nextElement();
            String initParameter = servletConfig.getInitParameter(name);
            System.out.println(initParameter);
        }
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("销毁");
    }

}

04 第三个方法
就是public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
这个方法获取请求的信息,返回发出的信息
很简单

05 servletContext

context就是语境,在程序里就是上下文,就是代码执行的环境
这个context是所有serclet共享的

猜你喜欢

转载自blog.csdn.net/qq_40592484/article/details/83901353