ServletConfig和ServletConText
ServletConfig接口
一、ServletConfig介绍
- 概述:ServletConfig是Servlet的配置参数对象,在Servlet的规范中,允许为每一个Servlet都提供一些初始化的配置,所以每一个Servlet都有一个ServletConfig。
- 作用: 当Servlet容器初始化Servlet时,Servlet容器会给Servlet的init()方法传入一个ServletConfig对象,即传入一些配置信息给Servlet。
- 生命周期: 应用一加载则创建,应用停止则被销毁;
- 创建时间: 创建完Servlet对象时,接着创建。Servletconfig对象
二、ServletConfig常用方法
三、ServletConfig的配置方式
- 在<servlet>标签种,通过<init-param>标签来配置。有两个子标签:
1. <param-name>:代表初始化参数的key。
2. <param-value>: 代表初始化参数的value。
注意: 这里配置的参数,只作为演示用,无实际意义。
四、ServletConfig实现步骤(练习)
- 定义一个类,继承HttpServlet。
- 重写doGet()和doPost()方法。
- 在web.xml进行配置。
- 在请求方法中通过请求对象获取到ServletConfig对象。
- 然后再通过getInitParameter()方法获取到配置的初始化参数。
- 部署并启动项目。
- 通过浏览器测试。
ServletContext对象
一、ServletConText介绍
-
概述:ServletContext对象是一个应用上下文对象,也是一个域对象。表示Servlet应用程序,每个web应用程序都只有一个ServletContext对象。
-
ServletContext对象的作用:
(1). 有了ServletContext对象,就可以共享从应用程序中的所有资源访问到的数据信息,并且可以动态注册web对象。
(2).可以获得应用域的全局初始化参数,以及达到Servlet之间的数据共享;
(3).可以作为域对象在整个应用中共享数据;域对象即在一定的作用范围内实现资源共享;
(4).可以用来获取应用中的资源在服务器上的绝对路径;
(5).获取文件的mime类型: 在网络传输中,并不是以扩展名来区分文件的类型,都是以mime类型;如:text/html;表示一个html文件。 -
生命周期: 应用一加载则创建,应用被停止则销毁
-
创建时间: 加载web应用时,创建ServletContext对象。
二、域对象
- 域对象指的是对象有作用域,即有作用范围。域对象可以实现数据的共享,不同作用范围对象,共享数据的范围能力也不同。
- 在Servlet规范中,一共有4个域对象。其他三个是:request请求域,PageContext页面域,session会话域。ServletContext就是其中的一个。是web应用中最大的作用域,也叫application应用域,可以实现整个应用之间的数据共享!
三、ServletContext配置方式
- ServletContext不像ServletConfig接口在Servlet标签里配置,而是针对于整个应用的配置,也叫全局的初始化参数;
- 在<web-APP>标签中,通过<context-param>标签来配置,有两个子标签:
1. <param-name>: 代表全局初始化参数的key。
2.<param-value>: 代表全局初始化参数的value。
四、ServletContext常用方法
//获取当前项目的虚拟目录
System.out.println("当前虚拟目录:"+servletContext.getContextPath());
//获取服务器信息
System.out.println("服务器和版本信息:"+servletContext.getServerInfo());
//获取浏览器访问路径的绝对路径
System.out.println("虚拟目录所在的绝对路径"+
servletContext.getRealPath(servletContext.getContextPath()));
//向域中存数据
servletContext.setAttribute("name","迪丽热巴");
//获取统一资源标识符:虚拟路径/资源访问路径
System.out.println("获取统一资源标识符:"+req.getRequestURI());
//获取统一资源定位符: 浏览器的访问地址
System.out.println("获取统一资源定位符:"+req.getRequestURL());
System.out.println("获取虚拟目录:"+req.getContextPath());
System.out.println("获取Servlet映射路径:"+req.getServletPath());
System.out.println("获取访问者ip地址:"+req.getRemoteAddr());
System.out.println("获取请求的消息数据:"+req.getQueryString());
注意:
存放文件的三个路径:
- Src下: 代码 src下的文件,存在于web/Web-INF/classes/
- web下: 静态页面 /
- Web-INF下: 配置文件 /web/Web-INF/
五、ServletContext实现步骤
今天的文章ServletConfig和ServletContext详解分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63557.html