`
uule
  • 浏览: 6351493 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

tomcat中处理消息提示的公用类 StringManager.java

 
阅读更多

代码很简单,主要学习思路。

 

tomcat中处理消息提示的公用类 StringManager.java:

 

其实思路就是每个包名对应一个Stringmanager对象,而非所有公用一个S听ringmanager对象

 

每个包中都有一个LocalStrings.properties的配置文件,定义公用提示信息

每个使用的类中都添加StringManager对象  

 

每个包下都有常量文件Constants.java,其中定义常量Package为该文件DefaultServlet所在包名 

 

使用:

public class DefaultServlet   extends HttpServlet {


	//每个使用的类中都添加StringManager对象
	//每个包下都有常量文件Constants.java,其中定义常量Package为该文件DefaultServlet所在包名
    //public static final String Package = "org.apache.catalina.servlets";
	protected static StringManager sm =  StringManager.getManager(Constants.Package);
	...
	
	//使用1
	//directory.title为properties文件中的属性,可直接读取
	sb.append(sm.getString("directory.title", name));
	
	//使用2
	 throw new SAXException(sm.getString("defaultServlet.blockExternalEntity2");
	...
}

 

StringManger.java中定义了一个ResourceBundle对象,用于读取相应包下的配置文件

 

同时定义一个Hashtable对象,使用Hashtable存放各包对应的StringManager对象,以便使用时直接通过get(packageName) 调用

 

public class StringManager {

    private ResourceBundle bundle;
	
	private static Hashtable managers = new Hashtable();
    
	
	public synchronized static StringManager getManager(String packageName) {
        StringManager mgr = (StringManager)managers.get(packageName);

        if (mgr == null) {
            mgr = new StringManager(packageName);
            managers.put(packageName, mgr);
        }
        return mgr;
    }

    private StringManager(String packageName) {
		//获取各包下配置文件的路径
        String bundleName = packageName + ".LocalStrings";
		
        try {
            bundle = ResourceBundle.getBundle(bundleName);
            return;
        } catch( MissingResourceException ex ) {
            // Try from the current loader ( that's the case for trusted apps )
            ClassLoader cl=Thread.currentThread().getContextClassLoader();
            if( cl != null ) {
                try {
                    bundle=ResourceBundle.getBundle(bundleName, Locale.getDefault(), cl);
                    return;
                } catch(MissingResourceException ex2) {
                }
            }            
        }
    }

	
	
    //get时,通过内部对象bundle读取properties文件内容
    public String getString(String key) {
        return MessageFormat.format(getStringInternal(key), (Object [])null);
    }


    protected String getStringInternal(String key) {
        if (key == null) {
            String msg = "key is null";

            throw new NullPointerException(msg);
        }

        String str = null;

        if( bundle==null )
            return key;
        try {
            str = bundle.getString(key);
        } catch (MissingResourceException mre) {
            str = "Cannot find message associated with key '" + key + "'";
        }

        return str;
    }
   
}

 。。。

 

 

 

分享到:
评论

相关推荐

    SocketInputStream.java

    * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/StringManager.java,v 1.2 2001/07/22 20:25:14 pier Exp $ * $Revision: 1.2 $ * $Date: 2001/07/22 20:25:14 $ * * =...

    apache-tomcat-8.5.100.tar.gz

    Apache Tomcat 是一款广泛应用的开源软件,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨Apache Tomcat 8.5.100这一特定版本的重要特性、安装与配置过程,以及如何...

    apache-tomcat-8.5.75.tar.gz

    在本文中,我们将深入探讨Apache Tomcat 8.5.75这一特定版本,以及它与Java、Linux操作系统的关系。 首先,Apache Tomcat 是一个由Apache软件基金会维护的Java Servlet容器。它的主要功能是解析并执行Java Servlets...

    apache-tomcat-9.0.56.tar.gz

    Apache Tomcat是一款开源的软件,它是Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个"apache-tomcat-9.0.56.tar.gz"文件是Tomcat的9.0.56版本的源码包,采用的是tar.gz格式,这是一种在...

    apache-tomcat-8.5.78.tar.gz

    Apache Tomcat 是一款开源的、基于Java Servlet和JavaServer Pages(JSP)技术的应用服务器,由Apache软件基金会开发和维护。这个"apache-tomcat-8.5.78.tar.gz"文件是一个针对Linux/Unix系统的归档压缩文件,包含了...

    apache-tomcat-7.0.109.tar.gz

    Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个特定的压缩包文件"apache-tomcat-7.0.109.tar.gz"是Apache Tomcat 7.0版本的第109次小更新。在Java Web...

    官方原版apache-tomcat-9.0.34.tar.gz

    Apache Tomcat是一款开源的Java Servlet容器,主要用于实现Java EE(现称为Jakarta EE)Web应用程序的部署和运行。它是一个轻量级应用服务器,特别适合小型到中型的应用。在这个官方原版的apache-tomcat-9.0.34.tar....

    apache-tomcat-7.0.108.tar.gz

    Apache Tomcat是一个开源的Java Servlet容器,主要用于实现JavaServer Pages (JSP)、Java Servlet以及Java EE的Web应用程序。在本例中,我们讨论的是Apache Tomcat 7.0.108版本的tar.gz压缩文件。这个版本是Tomcat 7...

    Java开发技术大全(500个源代码).

    common.java 一个公用类 derive.java 一个测试用子类 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 hasConstructor.java 拥有构造器的类 ...

    最新版linux apache-tomcat-9.0.36.tar.gz

    在这个最新的9.0.36版本中,Tomcat提供了对最新Java标准的支持,同时也包含了对性能、安全性和稳定性的改进。 1. **Java Servlet和JSP支持**: - Java Servlet是Java平台上的一个标准接口,用于扩展服务器的功能,...

    apache-tomcat-8.5.81.tar.gz

    Tomcat是Apache软件基金会的Jakarta项目的一部分,它遵循Java EE(现在称为 Jakarta EE)规范中的Web应用程序部分。Tomcat 8.5.x 版本支持Java Servlet 3.1、JavaServer Pages (JSP) 2.3以及Expression Language (EL...

    apache-tomcat-7.0.100.tar.gz

    Apache Tomcat是一个开源的Java Servlet容器,主要用于实现Java Web应用程序的部署。在这个"apache-tomcat-7.0.100.tar.gz"压缩包中,我们拥有的是Tomcat的7.0.100版本,这是一个适用于Linux操作系统的发布版。这个...

    apache-tomcat-8.5.56-src.tar.gz

    Apache Tomcat是一个开源的Java Servlet容器,用于部署和运行Java Web应用程序。它是基于Sun Microsystems的Java Servlet和JavaServer Pages(JSP)技术的。在本例中,我们讨论的文件"apache-tomcat-8.5.56-src.tar....

    Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException)

    "java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError" 是一个典型的错误提示,它表明在并发执行过程中遇到了内存不足的问题。下面我们将深入探讨这个问题的原因、影响以及如何解决。 内存溢出...

    Tomcat启动时报错:java.lang.UnsatisfiedLinkError的解决

    由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的。 解决方法 后面我把原先tomcat启动环境用的jdk1.7改为了本机安装的jdk1.8就不在报错。 具体过程: 在myeclipse中点击window→preference→在搜索框中...

    基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip

    基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat ...

    apache-tomcat-9.0.27-apache-tomcat-10.0.27.zip

    Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。它由Apache软件基金会维护,是实现Java EE(现在称为Jakarta EE)Web Profile规范的重要组成部分。这个压缩包...

    Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码+文档.rar

    Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码+文档.rar Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码+文档.rar Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码...

    tomcat9.0.37.tar.gz

    【标题】"Tomcat 9.0.37" 是一款广泛应用的开源Java Servlet容器,由Apache软件基金会开发。这个版本是Tomcat 9系列的一个具体发行版,它支持Java EE 8规范,并且提供了对最新Java技术的支持。 【描述】"tomcat9.0....

    apache-tomcat-9.0.34-fulldocs.tar.gz

    Javadocs是Java开发者的重要工具,它提供了Tomcat API的所有类、接口、方法和枚举的文档,包括它们的用途、参数、返回值和可能抛出的异常。通过Javadocs,开发者可以快速了解如何利用Tomcat提供的API来开发和集成...

Global site tag (gtag.js) - Google Analytics