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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java线程重复执行以及操作共享变量的代码示例

    Java线程重复执行以及操作共享变量的代码示例

    这篇文章主要介绍了Java中对线程重复执行以及操作共享变量的代码示例,来自于Java面试题目的练习整理,需要的朋友可以参考下
    2015-12-12
  • 如何理解Java线程池及其使用方法

    如何理解Java线程池及其使用方法

    线程池是首先创建一些线程,它们的集合称为线程池。使用线程池可以提高性能,它在系统启动时创建大量空闲的线程,程序将一个任务传给线程池,它就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务
    2021-06-06
  • JAVA JSP页面技术之EL表达式整理归纳总结

    JAVA JSP页面技术之EL表达式整理归纳总结

    这篇文章主要介绍了java中JSP页面技术之EL表达式概念作用以及语法等的使用,需要的朋友可以参考
    2017-04-04
  • 快速掌握Java8中的Optional

    快速掌握Java8中的Optional

    Optional 是一个容器类,代表一个值存在或不存在,Optional并不是用来替换所有的null,而是为了在设计良好的API中更明确地表达可能缺失的值,这篇文章主要介绍了Java8的Optional及使用,需要的朋友可以参考下
    2023-07-07
  • Java实现验证码具体代码(图片、汉字)

    Java实现验证码具体代码(图片、汉字)

    这篇文章主要为大家详细介绍了Java实现验证码具体代码,包括图片验证码、汉字验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • java实现随机抽取奖品工具类

    java实现随机抽取奖品工具类

    这篇文章主要为大家详细介绍了java实现随机抽取奖品工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Java微信公众平台开发(5) 文本及图文消息回复的实现

    Java微信公众平台开发(5) 文本及图文消息回复的实现

    这篇文章主要为大家详细介绍了Java微信公众平台开发第五步,回文本及图文消息回复的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Ubuntu快速安装eclipse

    Ubuntu快速安装eclipse

    这篇文章主要为大家详细介绍了Ubuntu快速安装eclipse的简单教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Java编程之双重循环打印图形

    Java编程之双重循环打印图形

    这篇文章主要介绍了Java编程之双重循环打印图形,属于Java编程基础练习部分,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • spring中ApplicationListener的使用小结

    spring中ApplicationListener的使用小结

    ApplicationListener是spring提供的一个监听器,本文主要介绍了spring中ApplicationListener的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07

最新评论