目录
前言
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应用的根目录
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net