`
taody
  • 浏览: 100107 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

<<项目架构那点儿事>>——工具类,你喜欢你就拿去

 
阅读更多

欢迎访问我的社区资源论坛http://www.javadt.com

 

【前言】众所周知,各式各样的Util类为我们提供了便利,也同时减少了我们对底层硬编码的时间,包括对字符串的操作,文件操作,反射的操作,泛型的操作,以及熟知的分页类,Json解析类、日期工具类等,这里把我开发的项目中用到过的工具类分享出来,都是经过多个项目的开发积累而锤炼出来的,提供给大家交流和学习。

【目录】
            1.文件操作类 FileUtil
            2.反射工具类 ReflectionUtil
            3.泛型工具类 GenericsUtils
            4.分页组件 Pagenation,PageUtil,Query
            5.Http与servlet工具类 ServletUtils
            6.日期工具类 DateUtil
            7.Json解析类JsonUtil
            8.编码与解码工具类 EncodeUtils


【代码片段】 由于篇幅有限,我只列举EncodeUtils、Pagenation,其他的大家下载附件即可查看。

/**
* 各种格式的编码加码工具类.
* 集成Commons-Codec,Commons-Lang及JDK提供的编解码方法.
* @author fisher
*/
public class EncodeUtils {

        private static final String DEFAULT_URL_ENCODING = "UTF-8";


        /**
         * Hex编码.
         */
        public static String hexEncode(byte[] input) {
                return Hex.encodeHexString(input);
        }

        /**
         * Hex解码.
         */
        public static byte[] hexDecode(String input) {
                try {
                        return Hex.decodeHex(input.toCharArray());
                } catch (DecoderException e) {
                        throw new IllegalStateException("Hex Decoder exception", e);
                }
        }

        /**
         * Base64编码.
         */
        public static String base64Encode(byte[] input) {
                return new String(Base64.encodeBase64(input));
        }

        /**
         * Base64编码, URL安全(将Base64中的URL非法字符如+,/=转为其他字符, 见RFC3548).
         */
        public static String base64UrlSafeEncode(byte[] input) {
                return Base64.encodeBase64URLSafeString(input);
        }

        /**
         * Base64解码.
         */
        public static byte[] base64Decode(String input) {
                return Base64.decodeBase64(input);
        }

        /**
         * URL 编码, Encode默认为UTF-8.
         */
        public static String urlEncode(String input) {
                try {
                        return URLEncoder.encode(input, DEFAULT_URL_ENCODING);
                } catch (UnsupportedEncodingException e) {
                        throw new IllegalArgumentException(
                                        "Unsupported Encoding Exception", e);
                }
        }

        /**
         * URL 解码, Encode默认为UTF-8.
         */
        public static String urlDecode(String input) {
                try {
                        return URLDecoder.decode(input, DEFAULT_URL_ENCODING);
                } catch (UnsupportedEncodingException e) {
                        throw new IllegalArgumentException(
                                        "Unsupported Encoding Exception", e);
                }
        }

        /**
         * Html 转码.
         */
        public static String htmlEscape(String html) {
                return StringEscapeUtils.escapeHtml(html);
        }

        /**
         * Html 解码.
         */
        public static String htmlUnescape(String htmlEscaped) {
                return StringEscapeUtils.unescapeHtml(htmlEscaped);
        }

        /**
         * Xml 转码.
         */
        public static String xmlEscape(String xml) {
                return StringEscapeUtils.escapeXml(xml);
        }

        /**
         * Xml 解码.
         */
        public static String xmlUnescape(String xmlEscaped) {
                return StringEscapeUtils.unescapeXml(xmlEscaped);
        }

}

/**
* @author fisher
* @description 分页查询对象
*/

public class Pagenation {
    
    /** 是否有上一页 */
    private boolean hasPrePage;
    
    /** 是否有下一页 */
    private boolean hasNextPage;
        
    /** 每页记录数 */
    private int everyPage;
    
    /** 总页数 */
    private int totalPage;
       
    /** 当前页 数*/
    private int currentPage;
    
    /** 查询的开始行数*/
    private int beginIndex;
    
    
    public Pagenation(){
        
    }
    
    /** construct the page by everyPage 
     * @param everyPage
     * */
    
    public Pagenation(int everyPage){
        this.everyPage = everyPage;
    }
    
    /** The whole constructor */
    public Pagenation(boolean hasPrePage, boolean hasNextPage,  
                     int everyPage, int totalPage, 
                     int currentPage, int beginIndex) {
        this.hasPrePage = hasPrePage;
        this.hasNextPage = hasNextPage;
        this.everyPage = everyPage;
        this.totalPage = totalPage;
        this.currentPage = currentPage;
        this.beginIndex = beginIndex;
    }

    /**
     * @return 
     * Returns the beginIndex.
     */
    public int getBeginIndex() {
        return beginIndex;
    }
    
    /**
     * @param beginIndex 
     * The beginIndex to set.
     */
    public void setBeginIndex(int beginIndex) {
        this.beginIndex = beginIndex;
    }
    
    /**
     * @return 
     * Returns the currentPage.
     */
    public int getCurrentPage() {
        return currentPage;
    }
    
    /**
     * @param currentPage 
     * The currentPage to set.
     */
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    
    /**
     * @return 
     * Returns the everyPage.
     */
    public int getEveryPage(){
        return everyPage;
    }
    
    /**
     * @param everyPage 
     * The everyPage to set.
     */
    public void setEveryPage(int everyPage) {
        this.everyPage = everyPage;
    }
    
    /**
     * @return 
     * Returns the hasNextPage.
     */
    public boolean getHasNextPage(){
        return hasNextPage;
    }
    
    /**
     * @param hasNextPage 
     * The hasNextPage to set.
     */
    public void setHasNextPage(boolean hasNextPage) {
        this.hasNextPage = hasNextPage;
    }
    
    /**
     * @return 
     * Returns the hasPrePage.
     */
    public boolean getHasPrePage() {
        return hasPrePage;
    }
    
    /**
     * @param hasPrePage 
     * The hasPrePage to set.
     */
    public void setHasPrePage(boolean hasPrePage) {
        this.hasPrePage = hasPrePage;
    }
    
    /**
     * @return Returns the totalPage.
     * 
     */
    public int getTotalPage() {
        return totalPage;
    }
    
    /**
     * @param totalPage 
     * The totalPage to set.
     */
    public void setTotalPage(int totalPage){
        this.totalPage = totalPage;
    }
    
}
  • jar.zip (803.3 KB)
  • 下载次数: 15
分享到:
评论

相关推荐

    Visual C++.NET编程技术体验

    定制窗口&lt;br&gt;2.2 示例——设置窗口风格&lt;br&gt;2.3.1 示例——创建六边形窗口&lt;br&gt;2.3.2 示例——创建异形窗口&lt;br&gt;第3章 菜单和控制条高级应用&lt;br&gt;3.1.3 示例——菜单编程&lt;br&gt;3.2.3 示例——工具栏编程&lt;br&gt;3.3.3 示例——...

    微信小程序——[小工具类]XCX-scaffold-master(截图+源码).zip

    微信小程序——[小工具类]XCX-scaffold-master(截图+源码).zip 微信小程序——[小工具类]XCX-scaffold-master(截图+源码).zip 微信小程序——[小工具类]XCX-scaffold-master(截图+源码).zip 微信小程序——[小...

    使用Maven管理进行多模块开发案例

    Maven项目管理工具,可以将一个完整的项目拆成一个一个模块进行开发,而一些比较通用的模块就可以作为公用组件。在其他项目中直接依赖使用,比如:公用的方法,权限组件等等。 一,新建一个简单的Maven工程,这个...

    经典软件合集

    这些都是我多年上网所收集的,包括一下的工具:&lt;br&gt;flash下载——可以下载网页上任意的flash&lt;br&gt;help系统服务终结者&lt;br&gt;真人发声计算器&lt;br&gt;计算器&lt;br&gt;清除任何显卡生成的桌面右键多余菜单&lt;br&gt;收藏夹移动工具&lt;br&gt;图片...

    实验5 列表与表格——让网站更规整(4学时).zip

    一个基本的表格结构包括`&lt;table&gt;`、`&lt;tr&gt;`(行)、`&lt;th&gt;`(表头)和`&lt;td&gt;`(单元格)标签。例如: ```html &lt;table&gt; &lt;tr&gt; &lt;th&gt;姓名&lt;/th&gt; &lt;th&gt;年龄&lt;/th&gt; &lt;th&gt;城市&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;张三&lt;/td&gt; &lt;td&gt;25&lt;/td&gt;...

    itextpdf实现对pdf操作的工具类

    * 7、生成pdf目录(未具体形成工具类,待定制) * 8、批量pdf合成一份pdf * 9、批量pdf合成一份pdf并生成目录 pom引入 &lt;dependency&gt; &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; &lt;artifactId&gt;itextpdf&lt;/artifactId&gt; &lt;version&gt;...

    HTML+CSS美食静态网页设计——简单牛排美食餐饮(9个页面)公司网站模板企业网站实现

    &lt;li&gt;&lt;a href="#contact"&gt;联系我们&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/nav&gt; &lt;/header&gt; &lt;!-- 主体内容 --&gt; &lt;main&gt; &lt;section id="home"&gt; &lt;h1&gt;欢迎光临我们的美食网站&lt;/h1&gt; &lt;p&gt;探索各式各样的美味佳肴。&lt;/p&gt; &lt;/section&gt; ...

    深入体验Java Web开发内幕

    &lt;br&gt;【图书目录】&lt;br&gt;第1章 XML基础&lt;br&gt; 1.1 XML技术概述&lt;br&gt; 1.2 XML的基本语法&lt;br&gt; 1.3 XML的约束模式&lt;br&gt; 1.4 DTD&lt;br&gt; 1.5 DTD的语法细节&lt;br&gt; 1.6 XML Schema&lt;br&gt; 1.7 名称空间&lt;br&gt; 1.8 引入XML Schema...

    .NET文档生成工具(.Net 2.0)——更新至2.1

    &lt;font face="Verdana"&gt;.net 文档生成工具&lt;/font&gt;用于将&lt;font face="Verdana"&gt;xml 文档注释&lt;/font&gt;生成格式类似MSDN的HTML帮助文档,并编译为CHM文档。&lt;span style="color: red"&gt;&lt;strong&gt;(下文中将该工具称为ADB,该...

    WEB前端期末大作业——关于酒店主题网站设计——高级酒店公寓网页(4页)

    &lt;li&gt;&lt;a href="#contact"&gt;联系我们&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/nav&gt; &lt;/header&gt; &lt;main&gt; &lt;section id="home"&gt; &lt;h1&gt;欢迎来到我们的酒店&lt;/h1&gt; &lt;p&gt;我们提供最舒适的住宿体验。&lt;/p&gt; &lt;/section&gt; &lt;section id="services"&gt; ...

    网页设计必备——html初级教程

    3. 文本元素:讲解如何使用&lt;h1&gt;到&lt;h6&gt;定义标题,&lt;p&gt;创建段落,&lt;em&gt;和&lt;strong&gt;强调文本。 4. 链接:教学如何创建&lt;a&gt;标签以实现页面间的链接和外部资源的引用。 5. 图像:说明&lt;img&gt;标签的用法,包括图片的来源、尺寸和...

    读取yml文件工具类.zip

    接着,调用`Yaml.load()`方法将YAML数据解析为一个`Map&lt;String, Object&gt;`,这样我们就可以方便地通过键值对访问配置信息。最后,记得关闭输入流以释放资源。 在实际使用时,可以像下面这样调用`loadYaml`方法: ``...

    Java2+类库参考手册-pdf

    译 者 序&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; Java是Sun公司推出的新型面向对象程序设计语言。它将面向对象、平台无关性、稳固性、安全性、多线程等诸多特性集于一身,为用户...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 译 者&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 2000年5月&lt;br&gt;&lt;br&gt;

    PL/SQL Developer 6.05注册版-1

    &lt;br&gt;&lt;br&gt;此版本包含注册文件和简体中文语言安装包&lt;br&gt;&lt;br&gt;Enhancements in PL/SQL Developer 7.1.5&lt;br&gt;======================================&lt;br&gt;- Fixed some access violations&lt;br&gt;- Inserting a record in the ...

    Android快速开发系列 10个常用工具类 程序源码

    在Android应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们包含了一系列静态方法,用于处理各种常见的任务,从而提高代码的复用性和可维护性。本资源"Android快速开发系列 10个常用工具类 程序源码...

    LoadRunner文章集锦(推荐)

    测试工具LoadRunner和OpenSTA比较分析 &lt;br&gt;webservices压力测试总结(1) &lt;br&gt;webservices压力测试总结(2) &lt;br&gt;webservices压力测试总结(3) &lt;br&gt;webservices压力测试总结(4) &lt;br&gt;用LoadRunner下载文件并...

    DNS切换工具——TestingBox

    DNS切换工具——TestingBox DNS切换工具——TestingBox DNS切换工具——TestingBox DNS切换工具——TestingBox DNS切换工具——TestingBox DNS切换工具——TestingBox

Global site tag (gtag.js) - Google Analytics