ServletConfig和ServletContext

2024-03-26 18:52

本文主要是介绍ServletConfig和ServletContext,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ServletConfig接口

Servlet运行期间,需要一些配置信息,这些信息都可以在@WebServlet注解的属性中配置。当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet。ServletConfig定义了一系列获取配置信息的方法。

在这里插入图片描述

Servlet容器前面的注解:

@WebServlet(name = "MyServlet", urlPatterns = "/my-servlet",initParams = {@WebInitParam(name = "encoding", value = "UTF-8" ),@WebInitParam(name = "name1", value = "value1" )
}
)

或者在web.xml的根标签下填写:

<servlet><servlet-name>MyServlet</servlet-name><servlet-class>MyServlet</servlet-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>name1</param-name><param-value>value1</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/my-servlet</url-pattern>
</servlet-mapping>

getInitParameter(name)

可以直接调用getInitParameter(name),也可以初始化ServletConfig对象,用ServletConfig对象来调用getInitParameter(name)

ServletServletConfig对象和ServletContext,直接调用get...()方法是获取的ServletConfig的内容,如果要获得ServletContext的内容,一定要用ServletContext对象

    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {String encoding = getInitParameter("encoding");String name1 = getInitParameter("name1");System.out.println("encoding = " + encoding);}

在这里插入图片描述

getInitParameterNames()

    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {Enumeration<String> initParameterNames = getServletConfig().getInitParameterNames();while (initParameterNames.hasMoreElements()) {String name = initParameterNames.nextElement();String value = getServletConfig().getInitParameter(name);System.out.println(name + " = " + value);}}

在这里插入图片描述

getServletName()

    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("Servlet name is " + getServletName());}

在这里插入图片描述

ServletContext接口

Servlet容器启动时,会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用。ServletContext对象不仅封装了当前Web应用的所有信息,而且实现了多个Servlet之间数据的共享。

在web.xml文件中,可以配置Servlet的初始化信息,还可以配置整个Web应用的初始化信息。Web应用初始化参数的配置方式具体如下所示。

 <context-param><param-name>参数名</param-name><param-value>参数值</param-value></context-param>

在调用时需要先初始化一个ServletContext对象

ServletContext context = getServletContext();
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {ServletContext context = getServletContext();Enumeration<String> initParameterNames = context.getInitParameterNames();while (initParameterNames.hasMoreElements()) {String name = initParameterNames.nextElement();String value = context.getInitParameter(name);System.out.println(name + " = " + value);}}

在这里插入图片描述

实现多个Servlet对象共享数据

由于一个Web应用中的所有Servlet共享同一个ServletContext对象,所以ServletContext对象的域属性可以被该Web应用中的所有Servlet访问。ServletContext接口中定义了用于增加、删除、设置ServletContext域属性的四个方法。

在这里插入图片描述

读取Web应用下的资源文件

ServletContext接口定义了一些读取Web资源的方法,这些方法是依靠Servlet容器来实现的。Servlet容器根据资源文件相对于Web应用的路径,返回关联资源文件的IO流、资源文件在文件系统的绝对路径等。

在这里插入图片描述

这篇关于ServletConfig和ServletContext的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849518

相关文章

java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()

java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String; 今天在部署时居然报了这么个错. 查后发现,getContextPath()在servlet 2.5下才有的, servlet 2.4是没有这个方法的. 特此记录.   建servlet-api.jar换成2.5以

servlet基础,如何实现一个servlet,servletConfig,HTTPServlet,ServletContext

1.什么是servlet? *servlet 服务器端的小程序.*干什么用的?处理客户端请求的小程序*JavaEE三大组件之一*Servlet*Filter 过滤器*listener 监听器 servlet流程 1.请求服务器2.创建req,resp两个对象3.去web.xml中寻找servlet4.找到之后返回servlet信息5.服务器去判断当前servlet实例是否已经

ServletContext、ActionContext、ServletActionContext区别

Servlet 描述 这是一组接口,规范(sun公司并没有去实现它) 它的实现就是由各大服务器厂商(Tomcat)去实现 Tomcat是一个javaweb服务器,也是一个Servlet容器 Servlet是所有创建,运行,销毁都由Servlet容器完成 Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的 生命

Servlet--ServletContext接口

Servlet--ServletContext接口 定义public interface ServletContext 定义了一个 Servlet 的环境对象,通过这个对象,Servlet 引擎向 Servlet 提供环境信息。一个 Servlet 的环境对象必须至少与它所驻留的主机是一一对应的。在一个处理多个虚拟主机的 Servlet 引擎中(例如,使用了 HTTP1.1 的主机 头域)

Servlet--ServletConfig接口,GenericServlet类

ServletConfig接口 定义:public interface ServletConfig 这个接口定义了一个对象, 通过这个对象, Servlet 引擎配置一个 Servlet 并且允许 Servlet获得一个有关它的 ServletContext 接口的说明。每一个 ServletConfig 对象对应着一个唯一的Servlet。 方法: 1、getInitParameter pub

ServletConfig ServletContext ApplicatoinContext 区别与联系

sevletconfig针对于一个servlet   servletContext共享整个webapp applicationContext spring容器上下文    待补充。。

struts2--获取request、session、application、HttpRequest、HttpSession、ServletContext

request、session、application、HttpRequest、HttpSession、ServletContext 四种方法:只使用第二种方法,并且request和application不经常用到,另外, (1)使用struts2容器提供的ActionContext:(前三者)依赖于容器 <span style="font-size:14px;">package co

java之ServletContext

ServletContext,Servlet的上下文环境。 1.一个Servlet仅有一个ServletContext对象(单例模式); 2.ServletContext的生命周期始于Tomcat启动项目到项目被关闭; 3.ServletContext主要用于多Servlet之间的数据传递。 ServletContext属于域对象,域对象一般有以下四种:     ServletConte

Javaweb03-Servlet技术1(Servlet,ServletConfig,ServletContext)

Servlet技术(Servlet,ServletConfig,ServletContext) 1.Servlet的概述 Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写。与Java程序的区别是,Servlet 对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器(Tomcat)的支持。 Servlet接口的方法(javax.servlet.S

JavaWeb ——servlet学习3之ServletContext

JavaWeb ——servlet学习3之ServletContext 每个web工程都只有一个ServletContext对象。 说白了也就是不管在哪个servlet里面,获取到的这个类的对象都是同一个。 作用: 获取全局配置参数 获取web工程中的资源 存取数据,servlet间共享数据 域对象 获取全局配置参数: <context-param><param-name>con