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
中的信息有以下两种方式:
- 使用 getInitParameterNames 获取所有参数名称后再一一拿出 value
- 使用 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内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:JavaWeb ServletConfig作用及原理分析讲解
基础教程推荐
- Java文件管理操作的知识点整理 2023-05-19
- Java并发编程进阶之线程控制篇 2023-03-07
- java基础知识之FileInputStream流的使用 2023-08-11
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- java实现多人聊天系统 2023-05-19
- Java实现查找文件和替换文件内容 2023-04-06
- Java实现线程插队的示例代码 2022-09-03
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- Java数据结构之对象比较详解 2023-03-07
- springboot自定义starter方法及注解实例 2023-03-31