JavaWeb ServletConfig作用及原理分析讲解

 更新时间:2022年10月09日 11:19:04   作者:知奕奕  
ServletConfig对象,叫Servlet配置对象。主要用于加载配置文件的初始化参数。我们知道一个Web应用里面可以有多个servlet,如果现在有一份数据需要传给所有的servlet使用,那么我们就可以使用ServletContext对象了

基本概念

servlet 关系

servlet 和 servletconfig 是一对一的关系;

servletconfig 作用

它存储 web.xml 内的 servlet 标签内的所有信息;

tomcat 在解析 web.xml 中的标签时,就会自动把 servlet 标签包装到 servletconfig 里面去;

使用

获取 config 基础信息

首先我们手动创建一个 ConfigServlet,注册流程这里省略了;

这里为了方便,直接选择继承 GenericServlet;

public class ConfigServlet extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        // 设置请求头
        servletResponse.setContentType("text/html");
        PrintWriter writer = servletResponse.getWriter();
        // 获取本servlet的servletconfig
        ServletConfig config = this.getServletConfig();
        // 打印本config的真实对象名称
        writer.println("servletconfig: " + config.toString() + "<br>");
        // 获取当前servletconfig所管辖的servlet的名称
        String configName = config.getServletName();
        writer.println("名字是:" + configName);
    }
}

携带信息

我们可以在 web.xml 中的 servlet 标签下,使用 init-param 夹带信息

所夹带的信息可以通过 servletconfig 进行获取,夹带信息数量不限;

<servlet>
    <servlet-name>configServlet</servlet-name>
    <servlet-class>com.zhiyiyi.javaweb.servlet.ConfigServlet</servlet-class>
    <init-param>
        <param-name>user</param-name>
        <param-value>root</param-value>
    </init-param>
</servlet>

使用 servletconfig 获取信息:

目前获取 init-param 中的信息有以下两种方式:

  1. 使用 getInitParameterNames 获取所有参数名称后再一一拿出 value
  2. 使用 getInitParameter 精准指定参数名后获取 value
// 使用枚举的方法获取到所有参数名称
Enumeration<String> initParameterNames = config.getInitParameterNames();
// 迭代输出获取到的参数名称
while (initParameterNames.hasMoreElements()) {
    String name = initParameterNames.nextElement();
    writer.println(name + "<br>");
}
// 直接指定需要获取的参数名称,精准拿到value
String userName = config.getInitParameter("user");
writer.println(userName + "<br>");

到此这篇关于JavaWeb ServletConfig作用及原理分析讲解的文章就介绍到这了,更多相关JavaWeb ServletConfig内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 无感NullPointerException的值相等判断方法

    无感NullPointerException的值相等判断方法

    当我们需要去判断一个 入参/查库 返回的开关变量(通常是个Integer类型的)时,常常会写如下的if-else判断语句。但又会为在生产环境看到的「NullPointerException」感到困扰,遇到这个问题如何处理呢,下面小编通过本文给大家详细讲解,需要的朋友参考下吧
    2023-02-02
  • SpringBoot开发中的组件和容器详解

    SpringBoot开发中的组件和容器详解

    这篇文章主要介绍了SpringBoot开发中的组件和容器详解,SpringBoot 提供了一个内嵌的 Tomcat 容器作为默认的 Web 容器,同时还支持其他 Web 容器和应用服务器,需要的朋友可以参考下
    2023-09-09
  • 详解Java中信号量Semaphore的使用

    详解Java中信号量Semaphore的使用

    在Java中,正确地管理并发是一件既挑战又有趣的事情,当谈到并发控制,就不得不说Java中的一个非常强大的工具,就是Semaphore,下面我们就来看看Java中信号量Semaphore的具体使用吧
    2024-01-01
  • 新手初学Java集合框架

    新手初学Java集合框架

    这篇文章主要介绍了JAVA集合框架的相关知识,文中讲解非常细致,帮助大家更好的理解学习JAVA框架,感兴趣的朋友快来了解下,希望能给你带来帮助
    2021-07-07
  • SpringCloud引入feign失败或找不到@EnableFeignClients注解问题

    SpringCloud引入feign失败或找不到@EnableFeignClients注解问题

    这篇文章主要介绍了SpringCloud引入feign失败或找不到@EnableFeignClients注解问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java 策略模式与模板方法模式相关总结

    Java 策略模式与模板方法模式相关总结

    这篇文章主要介绍了Java 策略模式与模板方法模式相关总结,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • java中有关构造方法中的输出

    java中有关构造方法中的输出

    这篇文章主要介绍了java中有关构造方法中的输出,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 使用curator实现zookeeper锁服务的示例分享

    使用curator实现zookeeper锁服务的示例分享

    这篇文章主要介绍了使用curator实现zookeeper锁服务的示例,需要的朋友可以参考下
    2014-02-02
  • 基于logback 实现springboot超级详细的日志配置

    基于logback 实现springboot超级详细的日志配置

    java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)。这篇文章主要介绍了基于logback springboot超级详细的日志配置,需要的朋友可以参考下
    2019-06-06
  • Java多线程局域网聊天室的实现

    Java多线程局域网聊天室的实现

    在学习了一个学期的java以后,搞了一个多线程的聊天室,熟悉了一下服务器和客户机的操作。感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论