Servlet体系结构

Servlet接口

  • public void init(ServletConfig config) – 初始化操作
  • public void service(ServletRequest req, ServletResponse res) – 处理请求服务
  • public void destroy() – 销毁实例,释放资源
  • public ServletConfig getServletConfig() – 获得servlet 的初始化和启动参数。
  • public String getServletInfo() –返回有关 servlet 的信息

ServletConfig接口

  • 在Servlet初始化过程中获取配置信息
  • 一个Servlet只有一个ServletConfig对象
  • public String getInitParameter(String name) – 根据名称获得初始化参数
  • public ServletContext getServletContext( ) – 获得Servlet上下文

GenericServlet抽象类

  • 提供了Servlet与ServletConfig接口的默认实现方法
  • 只继承该类,也能够实现一个Servlet
import javax.servlet.GenericServlet;
public class LoginGenericServlet extends GenericServlet {

    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {

    }
}

HttpServlet抽象类

  • 继承于GenericServlet
  • 处理HTTP协议的请求和响应
  • 我们实现自定义的Servlet的默认父类
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

    public LoginServlet() {
        super();
    }

    public void destroy() {
        super.destroy();
    }

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

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }
    public void init() throws ServletException {

    }
}

ServletContext接口

  • Servlet上下文环境
  • 提供了Servlet在运行过程中所需要的所有的资源
  • 可以通过该接口获得Servlet运行的信息 – 获得Servlet上下文的初始化信息

ServletRequest接口 VS HttpServletRequest接口

  • 共同点:都是处理请求
  • 不同点:
    1. 包(位置)不同 javax.servlet VS javax.servlet.http
    2. HttpServletRequest接口只处理Http协议下的请求
    3. 两个接口是继承关系
public interface HttpServletRequest extends ServletRequest

ServletResponse接口 VS HttpServletResponse接口

  • 共同点:都是处理请求
  • 不同点:
    1. 包(位置)不同 javax.servlet VS javax.servlet.http
    2. HttpServletResponse接口只处理Http协议下的请求
    3. 两个接口是继承关系
public interface HttpServletResponse extends ServletResponse

Servlet API应用 – 获得初始化信息

[1]获得一个Servlet的初始化信息

  1. web.xml文件
  <servlet>
    <init-param>
        <param-name>uidparam-name>
        <param-value>22param-value>
    init-param>
  servlet>
  1. 代码中获得信息
int uid = Integer.parseInt(this.getInitParameter("uid"));

[2]获得Servlet上下文的初始化信息

  1. web.xml文件
<web-app>
  <context-param>
    <param-name>encodingparam-name>
    <param-value>utf-8param-value>
  context-param>
web-app>
  1. 代码中获得信息
String encoding = this.getServletContext().getInitParameter("encoding");

你可能感兴趣的:(Servlet)