Servlet接口

目录

前言

1、Servlet接口

1.1 Servlet接口实现类:HttpServlet

2、ServletConfig接口

3、ServletContext接口

3.1 实现多个Servlet对象共享数据

3.2 读取Web应用下的资源文件


前言

Servlet是运行在Web服务器端的应用程序(Java语言编写)

Servlet对象主要封装了对HTTP请求的处理,并且运行需要需要Servlet容器的支持

HTTP服务器只负责静态HTML页面的解析,而Servlet的请求则转交给Servlet容器,Servlet容器会根据请求路径以及Servlet之间的映射关系,调用相应的Servlet,Servlet将处理的结果返回Servlet容器,并通过HTTP服务器将响应传输给客户端

1、Servlet接口

针对Servlet接口,SUN公司提供了两个默认的接口实现类:GenericServlet和HttpServlet

Servlet接口方法

  • 1、void init(ServletConfig config)

功能:Servlet容器在Servlet实例化后调用此方法完成实例的初始化 

  • 2、service(ServletRequest request,ServletRespon respon)

功能:service方法会通过ServletRequest对象获得客户端的相关信息和请求信息,在对请求处理后,调用ServletRespon对象的方法设置响应信息

  • 3、void destroy()

功能:销毁Servlet实例并释放它占用的资源

  • 4、String getServletInfo()

功能:返回包含关于Servlet的信息的一个字符串

  • 5、ServletConfig getServletConfig

功能:获取ServletConfig对象,一般用于获取它的配置信息

1.1 Servlet接口实现类:HttpServlet

常用方法:

  • 1、protect void doGet(HttpServletRequest req,HttpServletRespon resp)

功能:用于处理GET类型的HTTP请求

  • 2、protect void doPost(HttpServletRequest req,HttpServletRespon resp)

功能:用于处理POST类型的HTTP请求

  • 3、protect void doPut(HttpServletRequest req,HttpServletRespon resp)

功能:用于处理PUT类型的HTTP请求

2、ServletConfig接口

当Tomcat初始化一个Servlet时,会将Servlet的配置信息封装到一个ServletConfig对象中,通过调用init()来将Servlet对象传递给Servlet

ServletConfig定义了一系列获取配置信息的方法如下:

  • 1、String getServletName()

功能:返回Servlet的名字

  • 2、String getInitParameter(String name)

功能:根据初始化参数名返回初始化参数值

  • 3、Enumeration getInitParameterNames()

功能:返回一个Enumeration对象,其中包含了所有的初始化参数名

  • 4、ServletContext getServletContext()

功能:返回一个代表当前Web应用的ServletContext对象

3、ServletContext接口

在Servlet容器启动后,会为每个Web应用创建一个并且唯一的ServletContext对象代表当前Web应用

ServletContext对象不仅封装了当前Web应用的所有信息,还实现了多个Servlet之间数据的共享

3.1 实现多个Servlet对象共享数据

一个Web应用中的所有Servlet共享同一个ServletContext对象,所以ServletContext对象的域属性可以被该Web应用中的所有Servlet访问

域对象 : 实现数据存取, 域对象存储数据格式: key/value,域对象内部有一个Map

ServletContext接口定义了用于增加、删除、设置ServletContext域属性的四个方法,方法如下:

  • 1、Enumeration getAttributeNames()

功能:返回一个包含存放在ServletContext中的所有域属性名的Enumeration对象

  • 2、Object getAttribute(String name)

功能:根据参数指定的域属性名返回一个与之匹配的域属性值

  • 3、void setAttribute(String name,Object obj)

功能:设置ServletContext的域属性名,name为域属性名,obj为域属性值

  • 4、void removeAttribute(String name)

功能:根据参数指定的域属性名,从ServletContext中删除匹配的域属性

3.2 读取Web应用下的资源文件

为了在实际开发中能够读取到Web应用中的一些资源文件,例如文件、图片等。ServletContext接口定义了一些读取Web资源的方法,这些方法都是依靠Servlet容器来实现的

Servlet容器根据资源文件相对于Web应用的路径,返回关联资源文件的IO流、资源文件在文件系统的绝对路径等

获取资源路径的相关方法如下:

  • 1、Set getResourcePaths(String path)

功能:返回一个Set集合,包含资源目录中子目录和文件的路径名称

参数:Path必须以正斜线(/)开始,指定匹配资源的部分路径

  • 2、String getRealPath(String path)

功能:返回资源文件在服务器文件系统上的真实路径(文件的绝对路径)

参数:Path代表资源文件的虚拟路径,以正斜线(/)开始,“/”表示当前Web应用的根目录,如果Servlet容器不能将虚拟路径转换为文件系统的真实路径,则返回null

  • 3、URL getResource(String Path)

功能:返回映射到某个资源文件的URL对象

参数:Path正斜线(/)开始,“/”表示当前Web应用的根目录

  • 4、InputStream getResourceAsStream(String path)

功能:返回映射到某个资源文件的InputStream输入流对象

参数:Path正斜线(/)开始,“/”表示当前Web应用的根目录

你可能感兴趣的:(JavaWeb,servlet,java,前端)