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应用的根目录

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏大橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值