Servlet(3)ServletConfig接口的介绍(获取web.xml中某个Servlet中的初始配置参数)
来源:互联网 发布:数据库客户端如何使用 编辑:程序博客网 时间:2024/06/01 10:50
什么是ServletConfig?
当web容器在创建servlet实例对象时,可以给每一个servlet设置初始化信息,而这些初始化信息会被自动封装到ServletConfig中。
当在调用servlet的init方法时,会将ServletConfig对象传递给servlet。因此通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
为什么要设置初始化信息?
在实际开发中,有一些东西不适合在servlet程序中写死,这类数据就可以通过配置方式配给servlet,如:
servlet采用哪个编码表,连接什么数据库等
原DemoServlet.java在web.xml中的相关配置为:
<servlet></servlet>
<servlet-mapping></servlet-mapping>
上边两个是一组,不能缺少!
<servlet> <servlet-name>demo</servlet-name> <servlet-class>cn.flying.servlet.DemoServelt</servlet-class></servlet><servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping>
如何设置初始化信息?(写在某个Sevlet的web.xml中对应的配置中)
直接在web.xml中的servlet标签中进行配置(设置初始化信息),(带注释的,方便理解)如下:
<servlet> <servlet-name>demo</servlet-name> <servlet-class>cn.flying.servlet.DemoServelt</servlet-class> <!-- 为该servlet设置初始化信息:以key和value的形式存储数据 --> <init-param> <!-- 设置初始化信息的key --> <param-name>name</param-name> <!-- 设置初始化信息的value --> <param-value>张三</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping>不要注释(注意与原来的对比一下):
<servlet> <servlet-name>demo</servlet-name> <servlet-class>cn.flying.servlet.DemoServelt</servlet-class> <init-param> <param-name>name</param-name> <param-value>张三</param-value> </init-param></servlet><servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping>如何获取初始化信息?
获取初始化信息的常用方法:
1、getInitParameter(String name):通过key获取value值(适合单个key和value,如有n个,需要重复n遍部分代码)
DemoServlet.java完整代码如下:
package com.flying.servlet;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DemoServlet extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {ServletConfig servletConfig = this.getServletConfig();String name = servletConfig.getInitParameter("name");System.out.println("name的值是:"+name);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
1 把项目/工程(servlet)发布到到tomcat中启动2 在地址栏中输入:http://localhost:8080/servlet/hello 回车确认
控制台显示:
name的值是:张三
2、getInitParameterNames():获取所有初始化信息的key,返回的是一个枚举,然后可以通过遍历枚举获取所有的key,在通过key来获取value。
DemoServlet.java完整代码如下:package com.flying.servlet;import java.io.IOException;import java.util.Enumeration;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DemoServlet extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {ServletConfig servletConfig = this.getServletConfig();Enumeration<String> names = this.getInitParameterNames();while (names.hasMoreElements()) {String name = (String) names.nextElement();//此时name(就相当于key)的值是web.xml中的name字符串,不是:张三System.out.println(name+"的值是:"+servletConfig.getInitParameter(name));}}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
1 把项目/工程(servlet)重新启动
2 在地址栏中输入:http://localhost:8080/servlet/hello 回车确认
【结果和上面的一样】
控制台显示:
name的值是:张三
【注意】
若web.xml中配置了多个初始化信息,采用2、getInitParameterNames()方法
如下:
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.flying.servlet.DemoServlet</servlet-class> <init-param><param-name>name</param-name> <param-value>张三</param-value> </init-param> <init-param><param-name>name2</param-name> <param-value>李四 </param-value> </init-param></servlet><servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern></servlet-mapping>1 把项目/工程(servlet)重新启动
2 在地址栏中输入:http://localhost:8080/servlet/hello 回车确认
控制台显示:
name的值是:张三
name2的值是:李四
- Servlet(3)ServletConfig接口的介绍(获取web.xml中某个Servlet中的初始配置参数)
- servlet获取web.xml中配置的初始化参数
- Servlet(4)ServletContext接口 (获取web.xml中所有Servlet共有的信息)
- 通过ServletConfig对象获取Servlet配置参数
- 通过ServletConfig对象获取Servlet配置参数
- Servlet获取web.xml中的参数方法
- 通过ServletConfig获取Servlet的初始化参数
- Servlet的ServletConfig对象获取初始化参数
- ServletConfig servlet初始化参数获取
- 在Servlet和JSP中访问web.xml设置的初始参数
- Servlet-在web.xml中配置Servlet(Demo)
- servlet中获取ServletConfig 对象的 方法
- 关于Servlet和JSP中配置的初始参数的获取与设置
- Servlet获取配置信息(ServletConfig)和ServletContext
- servlet 的web.xml配置文件中的介绍
- [Servlet]Servlet、ServletConfig、ServletContext、GenericServlet、初始参数简介
- Servlet中Web.xml的配置详解(一)
- Servlet中Web.xml的配置详解(一)
- 配置好apache SSL之后 浏览器https访问未响应的解决方法
- Andorid事件分发源码解析
- 图论的题目
- Linux网络编程
- 51Nod 1008 N的阶乘 mod P
- Servlet(3)ServletConfig接口的介绍(获取web.xml中某个Servlet中的初始配置参数)
- Dijkstra's Algorithm(迪杰斯特拉算法)
- 第二周 汉诺塔
- Android事件分发的View的焦点捕捉事件
- Linux 使用gdb对c/c++代码进行调试
- 内存泄露与内存溢出
- matlab循环语句注意点
- 微信小程序服务器请求和上传数据,上传图片并展示,提交表单完整实例代码附效果图
- 无法找到调试信息