第一个Servlet程序

第一个Servlet程序

 

一、Servlet简介

   Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中。Servler容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用"请求/响应"的模式

   Servlet可完成如下功能:

    -- 创建并返回基于客户请求的动态HTML页面

    -- 创建可嵌入到现有HTML页面中的部分HTML页面(HTML片段)

    -- 与其他服务器资源(如数据库或基于Java的应用程序)进行通信

 

二、Servlet容器相应客户端请求的过程

  第一个Servlet程序_第1张图片

  ① Servlet引擎检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步

  ②装载并创建该Servlet的一个实例对象:调用该Servlet的构造器

  ③调用Servlet实例对象的init()方法

  ④创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去

  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destory方法

 

三、Servlet案例 

HelloServlet.java

package com.servlet.demo;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet implements Servlet
{
    public HelloServlet()
    {
        System.out.println("HelloServlet contrustor method!");
    }
    
    @Override
    public void destroy()
    {
        System.out.println("Servlet destory method!");
    }

    @Override
    public ServletConfig getServletConfig()
    {
        System.out.println("servlet config method!");
        return null;
    }

    @Override
    public String getServletInfo()
    {
        System.out.println("servlet info method!");
        return null;
    }

    @Override
    public void init(ServletConfig config) throws ServletException
    {
        System.out.println("Servlet init method!");
    }

    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException
    {
        System.out.println("servlet service method!");
    }

}

 

web.xml

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="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">
  <display-name></display-name>    
 
  <!-- 配置和映射Servlet -->
  <servlet>
      <!-- Servlet 注册的名称 -->
      <servlet-name>HelloServlet</servlet-name>
      <!-- Servlet 的全类名 -->
      <servlet-class>com.servlet.demo.HelloServlet</servlet-class>
  </servlet>
  

  <servlet-mapping>
    <!-- 需要和某一个servlet节点的servlet-name子节点的文本节点一致 -->
      <servlet-name>HelloServlet</servlet-name>
      <!-- 映射具体的访问路径: / 代表当前WEB应用的根目录 -->
      <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

 

你可能感兴趣的:(第一个Servlet程序)