- 浏览: 80606 次
- 性别:
- 来自: 湖南
最新评论
-
lysvanilla:
补充: 对于action返回input的补充,查阅源代 ...
No result defined for action and result input
1.读取配置文件
EnvironmentConfig.java
- package com.billows.util;
- import java.io.*;
- import java.util.*;
- /**
- * java 读取配置(属性)文件
- * @author Billows.Van
- * billows.van@gmail.com
- */
- public class EnvironmentConfig {
- static EnvironmentConfig ec;// 创建对象ec
- private static Hashtable<String, Properties> register = new Hashtable<String, Properties>();// 静态对象初始化[在其它对象之前]
- private EnvironmentConfig() {
- super();
- }
- /**
- * 取得EnvironmentConfig的一个实例
- */
- public static EnvironmentConfig getInstance() {
- if (ec == null)
- ec = new EnvironmentConfig();// 创建EnvironmentConfig对象
- return ec;// 返回EnvironmentConfig对象
- }
- /**
- * 读取配置文件
- */
- public Properties getProperties(String fileName) {// 传递配置文件路径
- InputStream is = null;// 定义输入流is
- Properties p = null;
- try {
- p = (Properties) register.get(fileName);// 将fileName存于一个HashTable
- /**
- * 如果为空就尝试输入进文件
- */
- if (p == null) {
- try {
- is = new FileInputStream(fileName);// 创建输入流
- } catch (Exception e) {
- if (fileName.startsWith("/"))
- // 用getResourceAsStream()方法用于定位并打开外部文件。
- is = EnvironmentConfig.class.getResourceAsStream(fileName);
- else
- is = EnvironmentConfig.class.getResourceAsStream("/"+fileName);
- }
- p = new Properties();
- p.load(is);// 加载输入流
- register.put(fileName, p);// 将其存放于HashTable缓存
- is.close();// 关闭输入流
- }
- } catch (Exception e) {
- e.printStackTrace(System.out);
- }
- return p;// 返回Properties对象
- }
- /**
- * 此处插入方法描述。
- */
- public String getPropertyValue(String fileName, String strKey) {
- Properties p = getProperties(fileName);
- try {
- return (String) p.getProperty(strKey);
- } catch (Exception e) {
- e.printStackTrace(System.out);
- }
- return null;
- }
- }
package com.billows.util; import java.io.*; import java.util.*; /** * java 读取配置(属性)文件 * @author Billows.Van * billows.van@gmail.com */ public class EnvironmentConfig { static EnvironmentConfig ec;// 创建对象ec private static Hashtable<String, Properties> register = new Hashtable<String, Properties>();// 静态对象初始化[在其它对象之前] private EnvironmentConfig() { super(); } /** * 取得EnvironmentConfig的一个实例 */ public static EnvironmentConfig getInstance() { if (ec == null) ec = new EnvironmentConfig();// 创建EnvironmentConfig对象 return ec;// 返回EnvironmentConfig对象 } /** * 读取配置文件 */ public Properties getProperties(String fileName) {// 传递配置文件路径 InputStream is = null;// 定义输入流is Properties p = null; try { p = (Properties) register.get(fileName);// 将fileName存于一个HashTable /** * 如果为空就尝试输入进文件 */ if (p == null) { try { is = new FileInputStream(fileName);// 创建输入流 } catch (Exception e) { if (fileName.startsWith("/")) // 用getResourceAsStream()方法用于定位并打开外部文件。 is = EnvironmentConfig.class.getResourceAsStream(fileName); else is = EnvironmentConfig.class.getResourceAsStream("/"+fileName); } p = new Properties(); p.load(is);// 加载输入流 register.put(fileName, p);// 将其存放于HashTable缓存 is.close();// 关闭输入流 } } catch (Exception e) { e.printStackTrace(System.out); } return p;// 返回Properties对象 } /** * 此处插入方法描述。 */ public String getPropertyValue(String fileName, String strKey) { Properties p = getProperties(fileName); try { return (String) p.getProperty(strKey); } catch (Exception e) { e.printStackTrace(System.out); } return null; } }
用法:
- EnvironmentConfig ec=EnvironmentConfig.getInstance();
- String driverClassName=ec.getPropertyValue("/config/jdbc.properties", "jdbc.driverClassName");
EnvironmentConfig ec=EnvironmentConfig.getInstance(); String driverClassName=ec.getPropertyValue("/config/jdbc.properties", "jdbc.driverClassName");
2.Jdbc工具
JdbcUtil.java
- package com.billows.util;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- /**
- * @author Billows.Van haidii@126.com
- * @version 创建时间:2008-4-30 上午10:53:09 类说明
- */
- public class JdbcUtil {
- static {
- try {
- EnvironmentConfig ec=EnvironmentConfig.getInstance();
- String driverClassName=ec.getPropertyValue("/config/jdbc.properties", "jdbc.driverClassName");
- Class.forName(driverClassName);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- public static Connection getConnection() throws SQLException {
- Connection conn = null;
- EnvironmentConfig ec=EnvironmentConfig.getInstance();
- String url=ec.getPropertyValue("/config/jdbc.properties", "jdbc.url");
- String name=ec.getPropertyValue("/config/jdbc.properties", "jdbc.username");
- String pwd=ec.getPropertyValue("/config/jdbc.properties", "jdbc.password");
- conn = DriverManager.getConnection(url, name, pwd);
- return conn;
- }
- public static void release(Connection conn, PreparedStatement ps,ResultSet rs) {
- if (rs != null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}
- if (ps != null) try {ps.close();} catch (SQLException e) {e.printStackTrace();}
- if (conn!= null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}
- }
- public static void release(Object obj) {
- if (obj instanceof Connection) {
- Connection conn = (Connection) obj;
- if (conn != null)
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (obj instanceof PreparedStatement) {
- PreparedStatement ps = (PreparedStatement) obj;
- if (ps != null)
- try {
- ps.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (obj instanceof ResultSet) {
- ResultSet rs = (ResultSet) obj;
- if (rs != null)
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
package com.billows.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @author Billows.Van haidii@126.com * @version 创建时间:2008-4-30 上午10:53:09 类说明 */ public class JdbcUtil { static { try { EnvironmentConfig ec=EnvironmentConfig.getInstance(); String driverClassName=ec.getPropertyValue("/config/jdbc.properties", "jdbc.driverClassName"); Class.forName(driverClassName); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { Connection conn = null; EnvironmentConfig ec=EnvironmentConfig.getInstance(); String url=ec.getPropertyValue("/config/jdbc.properties", "jdbc.url"); String name=ec.getPropertyValue("/config/jdbc.properties", "jdbc.username"); String pwd=ec.getPropertyValue("/config/jdbc.properties", "jdbc.password"); conn = DriverManager.getConnection(url, name, pwd); return conn; } public static void release(Connection conn, PreparedStatement ps,ResultSet rs) { if (rs != null)try {rs.close();} catch (SQLException e) {e.printStackTrace();} if (ps != null) try {ps.close();} catch (SQLException e) {e.printStackTrace();} if (conn!= null)try {conn.close();} catch (SQLException e) {e.printStackTrace();} } public static void release(Object obj) { if (obj instanceof Connection) { Connection conn = (Connection) obj; if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if (obj instanceof PreparedStatement) { PreparedStatement ps = (PreparedStatement) obj; if (ps != null) try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (obj instanceof ResultSet) { ResultSet rs = (ResultSet) obj; if (rs != null) try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3.java数据源
DBConnectionPool.java
- package com.billows.util;
- import java.sql.Connection;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.sql.DataSource;
- public class DBConnectionPool {
- public static Connection getConnection() throws Exception{
- Context ctx = new InitialContext();
- DataSource ds = (DataSource)ctx.lookup("java:comp/env/hsql");
- // Context initContext = new InitialContext();
- // Context envContext = (Context)initContext.lookup("java:/comp/env");
- // DataSource ds = (DataSource)envContext.lookup("hsql");
- return ds.getConnection( );
- }
- }
package com.billows.util; import java.sql.Connection; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; public class DBConnectionPool { public static Connection getConnection() throws Exception{ Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/hsql"); // Context initContext = new InitialContext(); // Context envContext = (Context)initContext.lookup("java:/comp/env"); // DataSource ds = (DataSource)envContext.lookup("hsql"); return ds.getConnection( ); } }
4.hsqldb随web启动的Listener
- package com.billows.util;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import org.apache.log4j.Logger;
- import org.hsqldb.Server;
- import com.billows.util.EnvironmentConfig;
- /**
- * 该listener随web服务启动 并同时启动hsql-server
- * @auth Billows.Van
- * billows.van@gmail.com
- */
- public class HsqlListener implements ServletContextListener {
- public static final Logger log = Logger.getLogger("HsqlListener");
- private EnvironmentConfig ec=EnvironmentConfig.getInstance();
- /**配置文件中的占位符,代表webapp发布后的根目录.*/
- public static final String TOKEN = "${webapp.root}";
- /** 等待数据库停止的最大时间.*/
- public static final int WAIT_TIME = 1000;
- /**jdbc的url.*/
- private String url;
- /**登陆用户名.*/
- private String username;
- /**登陆密码.*/
- private String password;
- /**处理context初始化事件.
- * @param sce ServletContextEvent
- */
- public void contextInitialized(ServletContextEvent sce) {
- try {
- username = ec.getPropertyValue("/config/jdbc.properties", "jdbc.username");
- password = ec.getPropertyValue("/config/jdbc.properties", "jdbc.password");
- String databaseName = ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbname");
- int port = Integer.parseInt(ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbport"));
- String hsqlPath = ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbpath");
- // FIXME: 因为要用到getRealPath方法获得路径,在使用war包发布的时候会出现问题
- if (hsqlPath.startsWith(TOKEN)) {
- String webappRoot = sce.getServletContext().getRealPath("/").replace("\\", "/");
- hsqlPath = hsqlPath.substring(TOKEN.length());
- hsqlPath = webappRoot + hsqlPath;
- }
- String databasePath = hsqlPath + "/" + databaseName;
- url = "jdbc:hsqldb:hsql://localhost:" + port + "/" + databaseName;
- Server server = new Server();
- server.setDatabaseName(0, databaseName);
- server.setDatabasePath(0, databasePath);
- server.setPort(port);
- server.setSilent(true);
- server.start();
- Thread.sleep(WAIT_TIME);
- log.info("Hsqldb启动成功!");
- } catch (Exception ex) {
- log.error("Hsqldb启动失败:" + ex);
- }
- }
- /**
- * 处理context销毁事件.
- * @param sce ServletContextEvent
- */
- public void contextDestroyed(ServletContextEvent sce) {
- try {
- Class.forName("org.hsqldb.jdbcDriver");
- Connection conn = null;
- Statement state = null;
- try {
- // 向数据库发送shutdown命令,关闭数据库
- conn = DriverManager.getConnection(url, username, password);
- state = conn.createStatement();
- state.executeUpdate("SHUTDOWN;");
- try {
- Thread.sleep(WAIT_TIME);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- log.info("关闭hsqldb数据库成功!");
- } catch (SQLException ex1) {
- log.error("关闭hsqldb数据库时出现异常:" + ex1);
- } finally {
- // 确保关闭Statement
- if (state != null) {
- try {
- state.close();
- state = null;
- } catch (SQLException ex1) {
- log.error("关闭Statement时异常:"+ex1);
- }
- }
- // 确保关闭Connection
- if (conn != null) {
- try {
- conn.close();
- conn = null;
- } catch (SQLException ex1) {
- log.error("关闭Connection时异常:"+ex1);
- }
- }
- }
- } catch (ClassNotFoundException ex) {
- log.error("HsqldbListener : contextDestoryed : error : " + ex);
- }
- }
- }
package com.billows.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.log4j.Logger; import org.hsqldb.Server; import com.billows.util.EnvironmentConfig; /** * 该listener随web服务启动 并同时启动hsql-server * @auth Billows.Van * billows.van@gmail.com */ public class HsqlListener implements ServletContextListener { public static final Logger log = Logger.getLogger("HsqlListener"); private EnvironmentConfig ec=EnvironmentConfig.getInstance(); /**配置文件中的占位符,代表webapp发布后的根目录.*/ public static final String TOKEN = "${webapp.root}"; /** 等待数据库停止的最大时间.*/ public static final int WAIT_TIME = 1000; /**jdbc的url.*/ private String url; /**登陆用户名.*/ private String username; /**登陆密码.*/ private String password; /**处理context初始化事件. * @param sce ServletContextEvent */ public void contextInitialized(ServletContextEvent sce) { try { username = ec.getPropertyValue("/config/jdbc.properties", "jdbc.username"); password = ec.getPropertyValue("/config/jdbc.properties", "jdbc.password"); String databaseName = ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbname"); int port = Integer.parseInt(ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbport")); String hsqlPath = ec.getPropertyValue("/config/jdbc.properties", "jdbc.dbpath"); // FIXME: 因为要用到getRealPath方法获得路径,在使用war包发布的时候会出现问题 if (hsqlPath.startsWith(TOKEN)) { String webappRoot = sce.getServletContext().getRealPath("/").replace("\\", "/"); hsqlPath = hsqlPath.substring(TOKEN.length()); hsqlPath = webappRoot + hsqlPath; } String databasePath = hsqlPath + "/" + databaseName; url = "jdbc:hsqldb:hsql://localhost:" + port + "/" + databaseName; Server server = new Server(); server.setDatabaseName(0, databaseName); server.setDatabasePath(0, databasePath); server.setPort(port); server.setSilent(true); server.start(); Thread.sleep(WAIT_TIME); log.info("Hsqldb启动成功!"); } catch (Exception ex) { log.error("Hsqldb启动失败:" + ex); } } /** * 处理context销毁事件. * @param sce ServletContextEvent */ public void contextDestroyed(ServletContextEvent sce) { try { Class.forName("org.hsqldb.jdbcDriver"); Connection conn = null; Statement state = null; try { // 向数据库发送shutdown命令,关闭数据库 conn = DriverManager.getConnection(url, username, password); state = conn.createStatement(); state.executeUpdate("SHUTDOWN;"); try { Thread.sleep(WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } log.info("关闭hsqldb数据库成功!"); } catch (SQLException ex1) { log.error("关闭hsqldb数据库时出现异常:" + ex1); } finally { // 确保关闭Statement if (state != null) { try { state.close(); state = null; } catch (SQLException ex1) { log.error("关闭Statement时异常:"+ex1); } } // 确保关闭Connection if (conn != null) { try { conn.close(); conn = null; } catch (SQLException ex1) { log.error("关闭Connection时异常:"+ex1); } } } } catch (ClassNotFoundException ex) { log.error("HsqldbListener : contextDestoryed : error : " + ex); } } }
其中, jdbc.properties内容为
- jdbc.driverClassName=org.hsqldb.jdbcDriver
- jdbc.url=jdbc:hsqldb:hsql://localhost:9990/billows
- jdbc.dbname=billows
- jdbc.dbport=9990
- jdbc.dbpath=${webapp.root}/hsqldb
- jdbc.username=sa
- jdbc.password=
- jdbc.max_connections=30
jdbc.driverClassName=org.hsqldb.jdbcDriver jdbc.url=jdbc:hsqldb:hsql://localhost:9990/billows jdbc.dbname=billows jdbc.dbport=9990 jdbc.dbpath=${webapp.root}/hsqldb jdbc.username=sa jdbc.password= jdbc.max_connections=30
在web.xml中添加以下代码即可
<listener> <listener-class>com.billows.util.HsqlListener</listener-class> </listener>
发表评论
-
彩色验证码
2011-09-13 21:33 1014MakePicture.java产生图片的类: packag ... -
Java获取各种常用时间方法
2011-08-18 22:28 691Java代码 package com.hef ... -
Calendar常用方法封装
2011-08-18 22:26 794Java代码 <PRE class=j ... -
java常用日期操作对象
2011-08-18 22:25 1200Java代码 import java.uti ... -
MyEclipse搭建java web基本常识和环境配置
2011-08-18 22:17 1056MyEclipse配置工程使用的jdk 设置 ... -
防止表单重复提交
2010-12-28 02:08 0一、防止表单重复提交一般有两种方法: 1、使用重定向 ... -
Web应用的中文本地化
2010-12-27 19:16 9211、解决HTML页面中的中文问题 为了使HTML页面很 ... -
Struts2的业务控制器Action实现中的一些知识点
2010-12-26 02:14 14751、execute()方法是Action实现类的默认方法,只 ... -
Field-Driven和Model-Driven
2010-12-26 01:26 1403Struts2根据Action属性的不同将它分为两类:Fiel ... -
Struts2的Action接口
2010-12-25 15:13 1603在Struts2应用的开发过程中,针对不同用户请求编写相应的 ... -
Struts2 常用类
2010-12-25 14:53 15421、Action接口:通过实现Action接口可以 ... -
struts 2.1输入校验
2010-12-24 23:15 942Struts2 框架中的服务器端表单验证由两种方式实 ... -
struts2-2.2.1所需要的jar文件
2010-12-23 23:31 16121、struts2-2.2.1需要的jar文 ... -
No result defined for action and result input
2010-12-23 23:02 2416今天在学习struts2.2类型转换时,出现了No r ...
相关推荐
总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。"一些java常用的工具类"可能涵盖了上述的多种功能,为开发者提供了方便快捷的编程体验。通过理解和利用...
以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理数据库连接的一种机制,它能有效地复用已存在的数据库连接,避免频繁创建和关闭连接导致的性能开销。常见的...
1.[工具类] 读取、打印输出、保存xml .java 2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端...等等20几个常用工具类.
下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...
以下是对标题和描述中提到的一些Java常用工具类的详细讲解: 1. **UUID类**: `java.util.UUID` 是用来生成全局唯一标识符的类。UUID(Universally Unique Identifier)是一种128位的数字,可以确保生成的ID在全球...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...
并且在平时开发中会遇到各种各样通用的一些功能,比如对json的处理,对String对象的处理,对Excel文件的处理,MD5加密处理,Bean对象处理等等,这些常用并通用的方法可以被封装成一个个工具类如StringUtil,...
以下是对标题"常用的30个Java工具类"中提及的一些工具类及其功能的详细说明: 1. **MD5**: MD5(Message-Digest Algorithm 5)是一种广泛用于数据校验和加密的哈希函数。Java中的`java.security.MessageDigest`类...
在Java编程中,工具类(Util Class)是包含各种实用函数的静态类,它们提供了一种简化常见任务的方法。在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`...
"Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
Java常用工具类整理 本文将详细介绍 Spring 及 Guava 相关工具类的使用说明和代码 demo。这些工具类都是 Java 开发中常用的实用工具,可以帮助开发者快速高效地完成各种任务。 一、Spring 工具类 1. org.spring...
提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...
"Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...
精心整理的26个java常用工具类,如:FastJsonUtil,StringHelper,RandomHelper,FileHelper,HttpClientHelper等等,直接使用maven导入到eclipse中使用即可。