Servlet

2019-04-23  本文已影响0人  十六只猴子王

什么是Servlet

屏幕快照 2019-04-21 下午8.22.08.png

服务器会把接受的请求交给Servlet,每个Servlet必须实现javax.servlet.Servlet接口

实现Servlet的方式

package Servlet;

import javax.servlet.*;
import javax.servlet.Servlet;
import java.io.IOException;

public class AServlet implements Servlet {
    //实现生命周期方法
    //他会在Servlet对象创建之后马上执行,并且只执行一次(出生之后)
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init.....");
    }

    //获取Servlet的配置信息
    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig...");
        return null;
    }

    //实现生命周期方法
    //这个方法会被调用多次,每次处理请求都是在调用这个方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service....");
    }

    //获取Servlet的信息
    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo...");
        return null;
    }

    //实现生命周期方法
    //它会在Servlet销毁之前调用一次,并且只调用一次
    @Override
    public void destroy() {
        System.out.println("destroy...");
    }
}

Servlet是自己写,但对象是服务器来创建,并且服务器来调用相应的方法

String getServletName()获得的是<servlet-name>里面的内容
Servlet Context getServletContext():获取Servlet上下文对象
String getInitParameter(String name):通过名称获取指定初始化参数的值
Enumeration getInitParamenterNames():获取所有初始化参数的名称

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>Servlet</servlet-name>
        <servlet-class>Servlet.AServlet</servlet-class>
        <init-param>
            <param-name>p1</param-name>
            <param-value>v1</param-value>
        </init-param>
        <init-param>
            <param-name>p2</param-name>
            <param-value>v2</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet</servlet-name>
        <url-pattern>/A</url-pattern>
    </servlet-mapping>
</web-app>
package Servlet;

import javax.servlet.*;
import javax.servlet.Servlet;
import java.io.IOException;
import java.util.Enumeration;


public class AServlet implements Servlet {
    //实现生命周期方法
    //他会在Servlet对象创建之后马上执行,并且只执行一次(出生之后)
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init.....");
        //获取初始化参数
        System.out.println(servletConfig.getInitParameter("p1"));
        System.out.println(servletConfig.getInitParameter("p2"));

        //获取所有初始化参数的名称
        Enumeration a = servletConfig.getInitParameterNames();
        while(a.hasMoreElements()){
            System.out.println(a.nextElement());
        }
    }

    //获取Servlet的配置信息
    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig...");
        return null;
    }

    //实现生命周期方法
    //这个方法会被调用多次,每次处理请求都是在调用这个方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service....");
    }

    //获取Servlet的信息
    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo...");
        return null;
    }

    //实现生命周期方法
    //它会在Servlet销毁之前调用一次,并且只调用一次
    @Override
    public void destroy() {
        System.out.println("destroy...");
    }
}
上一篇下一篇

猜你喜欢

热点阅读