Servlet – 包
Servlet 是在支持Java的 Web 服务器或应用程序服务器上运行的 Java 程序。它们用于处理从网络服务器获得的请求,处理请求,产生响应,然后将响应发送回网络服务器。
servlet 中的包包含许多类和接口
Remember: In order to create servlet in packages, use command ”
包裹类型
Java Servlet 中有两种类型的包,它们为 servlet 应用程序提供各种功能特性。两个包如下:
- javax.servlet 包
- 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 包中的接口
- 小服务程序
- Servlet请求
- 小服务程序响应
- 请求调度程序
- ServletConfig
- Servlet上下文
- 单线程模型
- 筛选
- 过滤器配置
- 过滤链
- Servlet请求监听器
- ServletRequestAttributeListener
- ServletContextListener
- ServletContextAttributeListener
javax.servlet 包中的类
下面列出了 javax.servlet 包中的类:
- GenericServlet
- Servlet输入流
- Servlet 输出流
- ServletRequestWrapper
- Servlet响应包装器
- ServletRequestEvent
- ServletContextEvent
- ServletRequestAttributeEvent
- ServletContextAttributeEvent
- Servlet异常
- 不可用异常
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 中的接口
- HttpServlet请求
- HttpServlet响应
- HttpSession
- HttpSessionListener
- HttpSessionAttributeListener
- HttpSessionBindingListener
- HttpSessionActivationListener
- HttpSessionContext(现已弃用)
- HttpServletRequest – 作为 ServletRequest 接口的扩展,用于 HTTP 指定的功能
- HttpServletResponse – 因为这个 ServletResponse 接口的扩展用于功能类似于 HTTP
- HttpSession – 该接口具有访问 API 跟踪会话的功能
- HttpSessionAttributeListener – 此接口通知此 HttpSession 属性中是否预取了任何更改/编辑
- HttpSessionListener – 此 HttpSessionListener 接口通知在此接口 HttpSession 生命周期跨度过程中预取的任何更改/编辑
javax.servlet.http 包中的类
- HttpServlet
- 曲奇饼
- HttpServletRequestWrapper
- HttpServletResponseWrapper
- HttpSessionEvent
- HttpSessionBindingEvent
- 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
Welcome to MyFirstServlet
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 正确运行后的输出将如下图所示: