代码很简单,主要学习思路。
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; } }
。。。
相关推荐
* $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 是一款广泛应用的开源软件,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨Apache Tomcat 8.5.100这一特定版本的重要特性、安装与配置过程,以及如何...
在本文中,我们将深入探讨Apache Tomcat 8.5.75这一特定版本,以及它与Java、Linux操作系统的关系。 首先,Apache Tomcat 是一个由Apache软件基金会维护的Java Servlet容器。它的主要功能是解析并执行Java Servlets...
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 是一款开源的、基于Java Servlet和JavaServer Pages(JSP)技术的应用服务器,由Apache软件基金会开发和维护。这个"apache-tomcat-8.5.78.tar.gz"文件是一个针对Linux/Unix系统的归档压缩文件,包含了...
Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个特定的压缩包文件"apache-tomcat-7.0.109.tar.gz"是Apache Tomcat 7.0版本的第109次小更新。在Java Web...
Apache Tomcat是一款开源的Java Servlet容器,主要用于实现Java EE(现称为Jakarta EE)Web应用程序的部署和运行。它是一个轻量级应用服务器,特别适合小型到中型的应用。在这个官方原版的apache-tomcat-9.0.34.tar....
Apache Tomcat是一个开源的Java Servlet容器,主要用于实现JavaServer Pages (JSP)、Java Servlet以及Java EE的Web应用程序。在本例中,我们讨论的是Apache Tomcat 7.0.108版本的tar.gz压缩文件。这个版本是Tomcat 7...
common.java 一个公用类 derive.java 一个测试用子类 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 hasConstructor.java 拥有构造器的类 ...
在这个最新的9.0.36版本中,Tomcat提供了对最新Java标准的支持,同时也包含了对性能、安全性和稳定性的改进。 1. **Java Servlet和JSP支持**: - Java Servlet是Java平台上的一个标准接口,用于扩展服务器的功能,...
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是一个开源的Java Servlet容器,主要用于实现Java Web应用程序的部署。在这个"apache-tomcat-7.0.100.tar.gz"压缩包中,我们拥有的是Tomcat的7.0.100版本,这是一个适用于Linux操作系统的发布版。这个...
Apache Tomcat是一个开源的Java Servlet容器,用于部署和运行Java Web应用程序。它是基于Sun Microsystems的Java Servlet和JavaServer Pages(JSP)技术的。在本例中,我们讨论的文件"apache-tomcat-8.5.56-src.tar....
"java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError" 是一个典型的错误提示,它表明在并发执行过程中遇到了内存不足的问题。下面我们将深入探讨这个问题的原因、影响以及如何解决。 内存溢出...
由于本机安装的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 ...
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容器-源代码...
【标题】"Tomcat 9.0.37" 是一款广泛应用的开源Java Servlet容器,由Apache软件基金会开发。这个版本是Tomcat 9系列的一个具体发行版,它支持Java EE 8规范,并且提供了对最新Java技术的支持。 【描述】"tomcat9.0....
Javadocs是Java开发者的重要工具,它提供了Tomcat API的所有类、接口、方法和枚举的文档,包括它们的用途、参数、返回值和可能抛出的异常。通过Javadocs,开发者可以快速了解如何利用Tomcat提供的API来开发和集成...