`
taody
  • 浏览: 101163 次
  • 性别: 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
分享到:
评论

相关推荐

    Windows 脚本技术参考手册

    安全和 Windows 脚本宿主&lt;br&gt;&lt;br&gt; CryptoAPI 工具&lt;br&gt; 对脚本进行签名&lt;br&gt; 软件限制策略&lt;br&gt; 签名验证策略&lt;br&gt; 验证脚本&lt;br&gt;&lt;br&gt; 参考&lt;br&gt;&lt;br&gt; XML 元素&lt;br&gt;&lt;br&gt; <?job?> 元素&lt;br&gt; <?XML?> 元素&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;...

    RabbitMQ工具类及测试类(完整版)

    RabbitMQClientUtil是MQ的测试工具类,他封装了fanout、direct、topic三种exchange模式,并包括发送数据和接收数据。 Test1、Test2是测试类 使用maven管理,在pom.xml文件中引入如下代码: &lt;!-- Rabbitmq工具包...

    java工具类——String

    String过滤敏感字

    【RBAC】基于springboot+shiro实现RBAC权限后台管理系统.zip

    |—— |—— util —— 工具类 |—— model |—— |—— base —— pojo的父类 |—— |—— dao —— 持久层 |—— |—— domain —— 与数据库对应的实体类 |—— |—— dto —— 封装返回给前端的数据 |—— |——...

    深入体验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...

    Html+css静态网页制作

    在HTML中,我们可以使用各种标签来定义页面的不同部分,如`&lt;header&gt;`定义页眉,`&lt;nav&gt;`创建导航菜单,`&lt;section&gt;`分隔内容区域,`&lt;article&gt;`定义独立内容,`&lt;footer&gt;`表示页脚,以及`&lt;form&gt;`用于创建表单元素,使...

    sdoapi,sdoutl-1.0及maven中pom.xml的配置

    SDOAPI提供了对服务数据对象的一系列操作接口,而SDOUtil则是配合SDOAPI使用的实用工具类。这两个组件通常在Java开发中用于构建面向服务的架构(SOA)系统,尤其是在处理复杂数据交换时。本篇文章将深入探讨sdoapi、...

    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`方法: ``...

    WinDBG(微软开发的免费源码级调试工具) zkacb汉化版(8.16 update!)

    WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和...各取所需吧&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;安装文件下载地址...

    Delphi7.完美经典.part1

    &lt;br&gt;&lt;br&gt;目录 : &lt;br&gt;第0章 认识Delphi &lt;br&gt;&lt;br&gt;0-1 前言 &lt;br&gt;0-2 Delphi简介 &lt;br&gt;0-3 进入Delphi7 &lt;br&gt;0-4 退出Delphi &lt;br&gt;&lt;br&gt;第1章 常用的窗口工具 &lt;br&gt;&lt;br&gt;1-1 窗体(Form) &lt;br&gt;1-2 代码编辑器(Code Editor) ...

    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 ...

    使用注解SpringMVC从页面导出Excel和word文档的使用的jar包——使用ExportExcel工具类.rar

    在实际项目中,ExportExcel工具类可能还会包含其他功能,如自定义样式、合并单元格、添加图表等,以满足更复杂的需求。此外,你还需要确保正确处理异常,提供友好的错误提示。 总的来说,通过注解SpringMVC和...

    Oracle 9i Java程序设计——使用PL/SQL和Java的解决方案

    &lt;br&gt;原书名:Oracle 9i Java Programming&lt;br&gt;&lt;br&gt;Oracle 9i Java程序设计——使用PL/SQL和Java的解决方案 &lt;br&gt;&lt;br&gt;【原出版社】 Wrox Press &lt;br&gt;【作 者】Bjarki Holm,John Carnell等 &lt;br&gt;【译 者】 康博 &lt;br&gt;【丛 ...

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

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

    Maven的HelloWorld程序

    在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。对于初学者来说,理解并创建一个基本的Maven项目,例如“HelloWorld”程序,是入门的绝佳方式。下面我们将详细探讨...

    jacoco实践demo

    **Java代码覆盖率工具JaCoCo实战** JaCoCo(JaCoCo: Java Code Coverage Library)是一款广泛使用的开源Java代码覆盖率工具,它可以帮助开发者在单元测试中衡量和验证代码的覆盖情况。JaCoCo通过字节码注入的方式,...

Global site tag (gtag.js) - Google Analytics