代码很简单,主要学习思路。
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 $ * * =...
(2) 从光盘中将shopping目录拷贝到电脑中,这里假定拷贝在“D:\shopping”,即把包含了网上购物系统所有文件的shopping目录放到D盘中。 (3) 在Tomcat安装目录的conf\Catalina\localhost目录下新建一个shop.xml配置...
common.java 一个公用类 derive.java 一个测试用子类 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 hasConstructor.java 拥有构造器的类 ...
apache-tomcat-8.5.75.tar.gz
apache-tomcat-9.0.60.tar.gz
基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat 安装apr 支持 Tomcat Native.zip 基于java的开发源码-Tomcat ...
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...
Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案
TomcatJava.Web.part2.rar TomcatJava.Web.part2.rar
TomcatJava.Web.part1.rar TomcatJava.Web.part1.rar
apache-tomcat-7.0.109.tar.gz
apache-tomcat-8.5.78.tar.gz
由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的。 解决方法 后面我把原先tomcat启动环境用的jdk1.7改为了本机安装的jdk1.8就不在报错。 具体过程: 在myeclipse中点击window→preference→在搜索框中...
apache-tomcat-[version]-compat.zip or .tar.gz: required in addition to the base distro for using tomcat with a Java 1.4 environment. apache-tomcat-[version]-deployer.zip or .tar.gz: the standalone ...
8.5.51版本的Tomcat服务器。Tomcat服务器是一个免费的开源的Web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制...
tomacat是一种开发工具。。。。。。。。。。。。。。。。。。。tomcat-jdbc-9.0.31.jar
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
java_tomcat安装包.rar java_tomcat安装包.rar java_tomcat安装包.rarjava_tomcat安装包.rar