📜  Servlet – 包

📅  最后修改于: 2022-05-13 01:54:36.882000             🧑  作者: Mango

Servlet – 包

Servlet 是在支持Java的 Web 服务器或应用程序服务器上运行的 Java 程序。它们用于处理从网络服务器获得的请求,处理请求,产生响应,然后将响应发送回网络服务器。

servlet 中的包包含许多类和接口

包裹类型

Java Servlet 中有两种类型的包,它们为 servlet 应用程序提供各种功能特性。两个包如下:

  1. javax.servlet 包
  2. javax.servlet.http 包

类型 1: javax.servlet 包:这个 Servlet 包包含许多 servlet 接口和类,它们能够处理任何类型的协议和这个 javax.servlet 包包含由 servlet 或 Web 服务器容器调用的大型接口和类。没有指定任何协议。

类型 2: javax.servlet.http 包:这个 servlet 包包含更多的接口和类,它们能够处理 servlet 上任何指定的 http 协议类型。这个 javax.servlet.http 包包含许多仅用于 servlet 的 http 请求的接口和类

javax.servlet 包中的接口和类

javax.servlet 包中的接口

  1. 小服务程序
  2. Servlet请求
  3. 小服务程序响应
  4. 请求调度程序
  5. ServletConfig
  6. Servlet上下文
  7. 单线程模型
  8. 筛选
  9. 过滤器配置
  10. 过滤链
  11. Servlet请求监听器
  12. ServletRequestAttributeListener
  13. ServletContextListener
  14. ServletContextAttributeListener

javax.servlet 包中的类

下面列出了 javax.servlet 包中的类:

  1. GenericServlet
  2. Servlet输入流
  3. Servlet 输出流
  4. ServletRequestWrapper
  5. Servlet响应包装器
  6. ServletRequestEvent
  7. ServletContextEvent
  8. ServletRequestAttributeEvent
  9. ServletContextAttributeEvent
  10. Servlet异常
  11. 不可用异常

Servlet:该接口描述并连接了 Servlet 必须实现的所有方法。它包括许多初始化 Servlet 销毁的方法,以及一个处理所有请求的通用 (service()) 方法。此 Servlet 接口用于创建此 servlet 类,因为该类具有直接或间接实现这些接口以在其中获取 servlet 的特性

ServletRequest:这个 ServletRequest 接口,其中检查所有对象的方法,作为封装有关其所有请求的数据信息,即向服务器发出的请求,ServletRequest 接口的这个对象用于从用户那里检索信息数据

ServletResponse:检查所有对象的方法的接口,这些对象从服务器返回其允许的响应,并且此当前接口对象的对象用于估计对系统上最终用户的响应

ServletConfig:声明此接口 ServletConfig 有助于访问其主要参数的配置,这些参数在初始化阶段通过 Servlet 传递,并且此 ServletConfig 对象用于显式向外部 servlet 类提供信息数据。

ServletContext: ServletContext 接口的对象对于特征化信息非常有帮助。 Web 应用程序的数据正在向它解释 servlet

GenericServlet:这是一个实现 Servlet 的通用类检查。如果你想编写除 HTTP 之外的 Servlet 协议,那么简单的方法是扩展 GenericServlet 而不是直接实现 Servlet 接口

ServletException:是一些例子的Servlet调用问题时可以抛出的异常

ServletInputStream:此类 ServletInputStream 用于从最终用户请求中读取二进制数据

ServletContextEvent:在其 Web 应用程序的 servlet 上下文中进行任何更改,此类将其通知给最终用户。

ServletOutputStream:此类 ServletOutputStream 用于将传输的二进制数据发送到系统的最终用户端

javax.servlet.http 包中的接口和类

接口: javax.servlet.http 包提供了这些特性类,这些特性类是处理这些 HTTP 请求所允许的。它提供了可使用的 HttpServlet 类,因为它可以选择性地访问 javax.servlet 类的接口。

javax.servlet.http 中的接口

  1. HttpServlet请求
  2. HttpServlet响应
  3. HttpSession
  4. HttpSessionListener
  5. HttpSessionAttributeListener
  6. HttpSessionBindingListener
  7. HttpSessionActivationListener
  8. HttpSessionContext(现已弃用)
  9. HttpServletRequest – 作为 ServletRequest 接口的扩展,用于 HTTP 指定的功能
  10. HttpServletResponse – 因为这个 ServletResponse 接口的扩展用于功能类似于 HTTP
  11. HttpSession – 该接口具有访问 API 跟踪会话的功能
  12. HttpSessionAttributeListener – 此接口通知此 HttpSession 属性中是否预取了任何更改/编辑
  13. HttpSessionListener – 此 HttpSessionListener 接口通知在此接口 HttpSession 生命周期跨度过程中预取的任何更改/编辑

javax.servlet.http 包中的类

  1. HttpServlet
  2. 曲奇饼
  3. HttpServletRequestWrapper
  4. HttpServletResponseWrapper
  5. HttpSessionEvent
  6. HttpSessionBindingEvent
  7. HttpUtils(现已弃用)

HttpServlet:在这个 HttpServlet 中,纯粹抽象的类具有扩展和应用 HTTP 请求的功能。它们有类似在 Servlet 接口中声明的 Service() 方法,现在将调用类似于 doGet() 和 doPost() 的方法,这些方法可以为调用 Servlet 提供行为

Cookie:该类为 Servlet 提供了一个接口,用于在最终用户计算机或系统上存储一小部分数据信息。

HttpServletRequestWrapper 和 HttpServletResponseWrapper:这两个包装类允许 HttpServletResponse 和 HttpServletRequest 通过其函数与 servlet 接口的能力

HttpSessionEvent:在 servlet 中的 Web 应用程序会话中遇到任何活动或更改/编辑时通知此类 HttpSessionEvent

HttpSessionBindingEvent:当任何当前会话中的任何属性有界、无界或被替换时通知此类

实现:通过实现Servlet接口在servlet上的示例如下:

文件:gfg.html

HTML
// gfg.html code

    
        
                     
      <p1>Welcome to MyFirstServlet</p1>      


XML

  
  
    Demo
     
    Demo
  
  
  
     
    Demo
     
    
    /go
     
  


Java
// Java Program to Illustrate Usage of Servlet-packages
 
// Importing required classes
import java.io.*;
import javax.servlet.*;
 
// Class
public class MyFirstServlet implements Servlet {
 
    ServletConfig config = null;
 
    // Method 1
    public void init(ServletConfig config)
    {
        // this keyword refers to current instance itself
        this.config = config;
 
        System.out.println("servlet is initialized:::"
                           + config);
    }
 
    // Method 2
    public void service(ServletRequest request,
                        ServletResponse response)
        throws IOException, ServletException
    {
 
        response.setContentType("text/html");
 
        // Response interface of servlet is use
        PrintWriter out = response.getWriter();
 
        out.print("");
 

Welcome to GFG PORTAL

"); out.print("

Example of Servlet Interface

"); out.print("");     }       // Method 3     public void destroy()     {         System.out.println("servlet is destroyed now");     }       // Method 4     public ServletConfig getServletConfig()     {         return config;     }       // Method 5     public String getServletInfo()     {         return "copyright 2007-2011";     } }


Java
// Java Program to Illustrate Usage of Servlet-packages
 
// Importing required classes
import java.io.*;
import javax.servlet.*;
 
// Class
public class MyFirstServlet implements Servlet {
 
    ServletConfig config = null;
 
    // Method 1
    public void init(ServletConfig config)
    {
        // this keyword refers to current instance itself
        this.config = config;
 
        System.out.println("servlet is initialized:::"
                           + config);
    }
 
    // Method 2
    public void service(ServletRequest request,
                        ServletResponse response)
        throws IOException, ServletException
    {
 
        response.setContentType("text/html");
 
        // Response interface of servlet is use
        PrintWriter out = response.getWriter();
 
        out.print("");
 

Welcome to GFG PORTAL

"); out.print("

Example of Servlet Interface

"); out.print("");     }       // Method 3     public void destroy()     {         System.out.println("servlet is destroyed now");     }       // Method 4     public ServletConfig getServletConfig()     {         return config;     }       // Method 5     public String getServletInfo()     {         return "copyright 2007-2011";     } }


我们创建了一个提交按钮——提交

文件:page.xml

XML


  
  
    Demo
     
    Demo
  
  
  
     
    Demo
     
    
    /go
     
  

我们检查 URL 名称是否应该与代码中使用的 HTML 表单匹配

文件:MyFirstServlet。Java

Java

// Java Program to Illustrate Usage of Servlet-packages
 
// Importing required classes
import java.io.*;
import javax.servlet.*;
 
// Class
public class MyFirstServlet implements Servlet {
 
    ServletConfig config = null;
 
    // Method 1
    public void init(ServletConfig config)
    {
        // this keyword refers to current instance itself
        this.config = config;
 
        System.out.println("servlet is initialized:::"
                           + config);
    }
 
    // Method 2
    public void service(ServletRequest request,
                        ServletResponse response)
        throws IOException, ServletException
    {
 
        response.setContentType("text/html");
 
        // Response interface of servlet is use
        PrintWriter out = response.getWriter();
 
        out.print("");
 

Welcome to GFG PORTAL

"); out.print("

Example of Servlet Interface

"); out.print("");     }       // Method 3     public void destroy()     {         System.out.println("servlet is destroyed now");     }       // Method 4     public ServletConfig getServletConfig()     {         return config;     }       // Method 5     public String getServletInfo()     {         return "copyright 2007-2011";     } }

输出:当用户单击按钮时,以下有页面

Java

// Java Program to Illustrate Usage of Servlet-packages
 
// Importing required classes
import java.io.*;
import javax.servlet.*;
 
// Class
public class MyFirstServlet implements Servlet {
 
    ServletConfig config = null;
 
    // Method 1
    public void init(ServletConfig config)
    {
        // this keyword refers to current instance itself
        this.config = config;
 
        System.out.println("servlet is initialized:::"
                           + config);
    }
 
    // Method 2
    public void service(ServletRequest request,
                        ServletResponse response)
        throws IOException, ServletException
    {
 
        response.setContentType("text/html");
 
        // Response interface of servlet is use
        PrintWriter out = response.getWriter();
 
        out.print("");
 

Welcome to GFG PORTAL

"); out.print("

Example of Servlet Interface

"); out.print("");     }       // Method 3     public void destroy()     {         System.out.println("servlet is destroyed now");     }       // Method 4     public ServletConfig getServletConfig()     {         return config;     }       // Method 5     public String getServletInfo()     {         return "copyright 2007-2011";     } }

到页面

Servlet 正确运行后的输出将如下图所示: