JAVA中ResourceBundle使用详解(一)

JAVA中ResourceBundle使用详解(一)最近在看 HttpServlet 源码时候 碰到 ResourceBund 的使用 就此记录一下 一 ResourceBund 是啥这个类主要用来解决国际化和本地化问题 国际化和本地化是啥 另一篇文章有写 这里直接上用法 这个类获取的属性也是来自于 properties 属性文件 获取 properties 属性有两个方式 一是通过 Properties 二是通过 ResourceBund 方式 Pr

最近在看HttpServlet源码时候,碰到ResourceBundle的使用,就此记录一下。

一、ResourceBundle是啥

在package java.util;下

这个类主要用来解决国际化和本地化问题。国际化和本地化是啥,另一篇文章有写,这里直接上用法。

这个类获取的属性也是来自于properties属性文件,获取properties属性有两个方式,一是通过Properties;二是通过ResourceBundle方式。ResourceBundle与Properties的区别在于ResourceBundle通常是用于国际化的属性配置文件读取,Properties则是一般的属性配置文件读取。

Properties与ResourceBundle两个类都可以读取属性文件中以key/value形式存储的键值对,但是ResourceBundle读取属性文件时操作相对简单

Properties类继承Hashtable,将键值对存储在集合中。基于输入流从属性文件中读取键值对,load()方法调用完毕,就与输入流脱离关系,不会自动关闭输入流,需要手动关闭。Properties这个本文不作展开。

而ResourceBundle该类是基于类读取属性文件:他是将属性文件当作类,意味着属性文件必须放在包中,使用属性文件的全限定性类名而非路径指代属性文件,简单的说,就是将文件放在包中,通过使用类的全限定方式来指定,而不是通过指定路径的方式。如下:

/ * 基于类读取属性文件:该方法将属性文件当作类来处理,属性文件放在包中,使用属性文件的全限定性而非路径来指代文件 */ @Test public void demo() { ResourceBundle bundle = ResourceBundle.getBundle("com.four.properties.demo"); //这里就可以直接获取该配置文件的属性了 System.out.println("driver=" + bundle.getString("jdbc.driver")); System.out.println("url=" + bundle.getString("jdbc.url")); System.out.println("username=" + bundle.getString("jdbc.username")); System.out.println("password=" + bundle.getString("jdbc.password")); System.out.println("-----------------------------"); System.out.println("遍历属性文件"); Enumeration 
  
    keys = bundle.getKeys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); System.out.println(key + "=" + bundle.getString(key)); } } 
  

再说的简单点,就是通过key来获取properties属性配置文件的value,完了,就这样,没啥了

二、HttpServlet中的使用

HttpServlet里使用的是

private static ResourceBundle lStrings = ResourceBundle.getBundle("javax.servlet.http.LocalStrings"); 
err.cookie_name_is_token=Cookie name \"{0}\" is a reserved token err.cookie_name_blank=Cookie name must not be null or empty err.io.nullArray=Null passed for byte array in write method err.io.indexOutOfBounds=Invalid offset [{0}] and / or length [{1}] specified for array of size [{2}] err.io.short_read=Short Read err.ise.getWriter=Illegal to call getWriter() after getOutputStream() has been called err.ise.getOutputStream=Illegal to call getOutputStream() after getWriter() has been called http.method_not_implemented=Method {0} is not defined in RFC 2068 and is not supported by the Servlet API http.method_get_not_supported=HTTP method GET is not supported by this URL http.method_post_not_supported=HTTP method POST is not supported by this URL http.method_put_not_supported=HTTP method PUT is not supported by this URL http.method_delete_not_supported=Http method DELETE is not supported by this URL 

在这里插入图片描述
这是他的doget处理方法,通过获取http.method_get_not_supported获取valueHTTP method GET is not supported by this URL,所以当你servlet继承这个类的时候,doget用父类的处理方式,就会出现这个错误,就是从这里拿到的
在这里插入图片描述




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177344.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:44
下一篇 2026年3月26日 下午7:44


相关推荐

  • DB2_自动生成值

    DB2_自动生成值

    2021年9月2日
    66
  • 等待,是一生最初的苍老

    等待,是一生最初的苍老

    2021年8月2日
    64
  • 常见负载均衡策略「建议收藏」

    常见负载均衡策略「建议收藏」常见负载均衡策略负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法。轮循RoundRobin:这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,

    2022年10月13日
    5
  • 设备的dpr_移动端自适应处理–dpr

    设备的dpr_移动端自适应处理–dpr可伸缩布局方案 这个只是手淘的一个插件移动端高清多屏适配方案 主要参考的是这个概念阐述 1 物理像素 physicalpixe 一个物理像素是显示器 手机屏幕 上最小的物理显示物理单元 在操作系统的调度下 每一个设备都有自己的颜色值和亮度值 2 设备独立像素 density independentp 设备独立像素 也叫密度无关像素 可以认为是计算机坐标系统中得一个点 这个点

    2026年3月18日
    2
  • C#生成Excel出现8000401a的错误的另一种解决办法。「建议收藏」

    C#生成Excel出现8000401a的错误的另一种解决办法。「建议收藏」网上能搜到的解决办法,常见的就是以下3种,比如参考这个博客https://www.cnblogs.com/gavindou/archive/2012/08/29/2661757.html1,增加虚拟权限:在web.config里面增加的键值;要求administrator具有管理员权限,这种方案使用后确实可行,可是不利于部署,因为有经验的人都知道把一个最高权限的服务器帐号密码公开显示在配置…

    2022年8月22日
    9
  • Win11安裝clawbot

    Win11安裝clawbot

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号