Servlet获取配置信息(ServletConfig)

ServletConfig

ServletConfig:当Servlet容器初始化Servlet时,Servlet容器会给Servlet的init方法传入一个ServletConfig。ServletConfig封装可以通过@WebServlet或者部署描述符传给Servlet的配置信息。这样传入的每条信息就叫做一条初始参数,要在Servlet容器传给Servlet的init方法的ServletConfig中调用getInitParameter方法getInitParameter的方法签名如下:

java.lang.String getInitParameter(java.lang.String name)

此外,getInitParameterNames方法则是返回所有初始参数名称的一个Enumeration:

java.util.Enumeration<java.lang.String> getInitParameterNames();

例如:为了获取contactName参数值,要使用下面的方法签名:

String contactName=servletConfig.getInitParameter("contactName");

除了getInitParamter和getInitParamterNames外,ServletConfig还提供了另外一个很有用的方法:getServletContext。利用这个方法可以从Servlet内部获取ServletContext。

web.xml中配置信息的获取,一共有三种方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class servletConfig extends HttpServlet{
 
    private ServletConfig config;
     
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
    // TODO Auto-generated method stub
    //1.得到ServletConfig对象的第一种方式
    String encoding1=config.getInitParameter("encoding");
    System.out.println(encoding1); 
         
    //2.得到ServletConfig对象的第二种方式
        //getServletConfig()方法在Servlet接口 中定义的,GenericServlet重写了该方法
    String encoding3=this.getServletConfig().getInitParameter("encoding");
    System.out.println(encoding3);
         
         
    //3.得到ServletConfig对象的第三种方式
        //HttpServlet继承了GenericServlet,GenericServlet实现了ServletConfig接口
        //ServletConfig接口中有getInitParameter()方法,GenericServlet重写了该方法
    String encoding2=this.getInitParameter("encoding");
    System.out.println(encoding2);
    }  
}

  原web.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>  
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>com.zk.myservlet.servletConfig</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  

posted @   leagueandlegends  阅读(1551)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示