<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dsiori的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/dsiori</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; dsiori]]></copyright><item><title><![CDATA[使用Netty实现简单聊天室功能]]></title><link>https://blog.csdn.net/dsiori/article/details/103635062</link><guid>https://blog.csdn.net/dsiori/article/details/103635062</guid><author>dsiori</author><pubDate>Fri, 20 Dec 2019 16:51:40 +0800</pubDate><description><![CDATA[这篇博客主要读述使用netty实现简单的聊天室功能 ，当然真正的聊天功能绝对不会这么简单，说简单只是相对于JDK原生的NIO模型来说。理解这个demo你需要对NIO和Netty的流程有一定的了解。推荐可以去看一下《Scalable IO in JAVA》

话不多说，来看代码

Server端代码


package com.patrick.netty.chat;

import io.n...]]></description><category></category></item><item><title><![CDATA[Netty 初识 Demo]]></title><link>https://blog.csdn.net/dsiori/article/details/103634556</link><guid>https://blog.csdn.net/dsiori/article/details/103634556</guid><author>dsiori</author><pubDate>Fri, 20 Dec 2019 16:32:01 +0800</pubDate><description><![CDATA[这是一个netty demo程序，在此不解读原理及API的详情，主要用于学习保留，这个demo我只对部份朋友可见，如果没接触过netty，又想要学习netty的朋友，建议先了解JDK的IO模型。后续有时间的话会总结netty的底层原理（如：粘包拆包、心跳机制、底层零拷贝等等），如果有什么问题也可以留言相互学习

服务端代码


package com.patrick.netty.demo;

i...]]></description><category></category></item><item><title><![CDATA[JAVA发送邮件（163邮箱）]]></title><link>https://blog.csdn.net/dsiori/article/details/88526520</link><guid>https://blog.csdn.net/dsiori/article/details/88526520</guid><author>dsiori</author><pubDate>Wed, 13 Mar 2019 10:47:48 +0800</pubDate><description><![CDATA[项目涉及到邮箱发送的功能 ，这篇博文主要是采用spring框架内集成的工具类 (JavaMailSenderImpl)，服务器采用的是163的邮箱服务器，在此不做太多内部方法的讲解，主要记录实现的代码。其中的注意事项，如下

 需要发送人的邮箱开启SMTP服务，例：163开启： 登陆网页版 ---》设置--》设置POP3/SMTP/IMAP 勾选就行。

一、硬编码方式实现

 ...]]></description><category></category></item><item><title><![CDATA[JS和JAVA将数字格式化为金额形式（例：1234567 ==》1,234,567.00）]]></title><link>https://blog.csdn.net/dsiori/article/details/83013096</link><guid>https://blog.csdn.net/dsiori/article/details/83013096</guid><author>dsiori</author><pubDate>Thu, 11 Oct 2018 15:30:24 +0800</pubDate><description><![CDATA[总是需要用到金额的格式化的运算，在此计算以便后期使用：

 

前端格式化：

/*
    *  格式化数字千分位并保留小数后N位,并四舍五入
    * 参数说明：
    * n：保留几位小数
    * */
    function formatMoney(s, n) {
        n = n &amp;gt; 0 &amp;amp;&amp;amp; n &amp;lt;= 20 ? n : 2;
      ...]]></description><category></category></item><item><title><![CDATA[springMVC返回JSON的方式]]></title><link>https://blog.csdn.net/dsiori/article/details/79867070</link><guid>https://blog.csdn.net/dsiori/article/details/79867070</guid><author>dsiori</author><pubDate>Mon, 09 Apr 2018 16:11:30 +0800</pubDate><description><![CDATA[方法一：


@RequestMapping(value="/test" , method = RequestMethod.GET)
@ResponseBody    //加上这个注解
public String login(String username , HttpServletRequest request , HttpServletResponse response){
    ...]]></description><category></category></item><item><title><![CDATA[JAVA下载、删除、修改文件名、]]></title><link>https://blog.csdn.net/dsiori/article/details/79161977</link><guid>https://blog.csdn.net/dsiori/article/details/79161977</guid><author>dsiori</author><pubDate>Thu, 25 Jan 2018 15:00:21 +0800</pubDate><description><![CDATA[JAVA文件的下载
	/**
	 * 下载文件
	 * 
	 * @param savepath 保存路径
	 * @param resurl  资源路径
	 * @param fileName  自定义资源名
	 */
	public String getInternetRes(String savepath, String resurl, String fileName) {
       ]]></description><category></category></item><item><title><![CDATA[WebService接口调用]]></title><link>https://blog.csdn.net/dsiori/article/details/78422147</link><guid>https://blog.csdn.net/dsiori/article/details/78422147</guid><author>dsiori</author><pubDate>Thu, 02 Nov 2017 10:40:01 +0800</pubDate><description><![CDATA[最近项目中有朋友咨询我webService接口的调用，在这里总结并分享一下，我对webService方法的调用。


一、webService接口调用工具类
public class WebService {
	private WebService() {
		throw new IllegalAccessError("CallWebServiceInterface class");
	}]]></description><category></category></item><item><title><![CDATA[Nginx配置详解]]></title><link>https://blog.csdn.net/dsiori/article/details/78227945</link><guid>https://blog.csdn.net/dsiori/article/details/78227945</guid><author>dsiori</author><pubDate>Fri, 13 Oct 2017 16:41:46 +0800</pubDate><description><![CDATA[以下为具体的配置文件 nginx.conf 详解：

user nginx nginx ; Nginx用户及组：用户 组。window下不指定

 worker_processes 8; 工作进程：数目。根据硬件调整，通常等于CPU数量或者2倍于CPU。

error_log  logs/error.log;  

error_log  logs/error.log  notice]]></description><category></category></item><item><title><![CDATA[前端页面控制按钮可用时间]]></title><link>https://blog.csdn.net/dsiori/article/details/78125034</link><guid>https://blog.csdn.net/dsiori/article/details/78125034</guid><author>dsiori</author><pubDate>Thu, 28 Sep 2017 16:23:30 +0800</pubDate><description><![CDATA[最近在H5页面的使用过程中有用前端 的一些小知识  ，在此处分享一下，先看下面代码


一、定时任务控制按钮的可用时间
  //控制按钮可用时间
     function reducetime(){
		  document.getElementById("sub").disabled = true;
		  document.getElementById("sub").value = ]]></description><category></category></item><item><title><![CDATA[JAVA date类型处理的一些小知识]]></title><link>https://blog.csdn.net/dsiori/article/details/78124209</link><guid>https://blog.csdn.net/dsiori/article/details/78124209</guid><author>dsiori</author><pubDate>Thu, 28 Sep 2017 15:35:49 +0800</pubDate><description><![CDATA[最近做项目用到关于一些date类型的数据处理，比如说两个日期比较、获取几天前或几天后的日期（请看之前的文章）、获取几分钟之间的日期、前端JS页面的日期处理等等。查了很多资料，有些请的不是很清楚，特别是日期类型的大小比较，需要转来转去。废话不多说，现在开始分享：


一、两个日期之间的比较（）
此处需要特别注意，开始我一直以为字符串之间的比较也会返回固定值 比如说大于返回 1 ，小于返回 -]]></description><category></category></item><item><title><![CDATA[数据库中事件的理解总结]]></title><link>https://blog.csdn.net/dsiori/article/details/77881598</link><guid>https://blog.csdn.net/dsiori/article/details/77881598</guid><author>dsiori</author><pubDate>Thu, 07 Sep 2017 15:39:51 +0800</pubDate><description><![CDATA[在项目中经常要使用事件来处理一些历史数据，现在对数据库事件进行一个总结


事件简介

事件（event）是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次，也可周期性的启动，它由一个特定的线程来管理的，也就是所谓的“事件调度器”。

事件和触发器类似，都是在某些事情发生的时候启动。当数据库上启动一条语句的时候，触发器就启动了，而事件是根据调度事件来启动的。由于他们彼]]></description><category></category></item><item><title><![CDATA[mysql查询当天、本周、本月、上月的数据]]></title><link>https://blog.csdn.net/dsiori/article/details/73603579</link><guid>https://blog.csdn.net/dsiori/article/details/73603579</guid><author>dsiori</author><pubDate>Thu, 22 Jun 2017 13:58:04 +0800</pubDate><description><![CDATA[今天

select * from 表名 where to_days(时间字段名) = to_days(now());


昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名)  1


近7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7]]></description><category></category></item><item><title><![CDATA[JAVA中常用的加密算法（Hash、base64、MD5、ASC）]]></title><link>https://blog.csdn.net/dsiori/article/details/72779066</link><guid>https://blog.csdn.net/dsiori/article/details/72779066</guid><author>dsiori</author><pubDate>Sat, 27 May 2017 10:23:03 +0800</pubDate><description><![CDATA[/** 
     * MD5加密 
     * @param message 要进行MD5加密的字符串 
     * @return 加密结果为32位字符串 
     */  
    public static String getMD5(String message) {  
        MessageDigest messageDigest = null;  
        S]]></description><category></category></item><item><title><![CDATA[Lucene （一）建立索引及应用的属性详解]]></title><link>https://blog.csdn.net/dsiori/article/details/71354647</link><guid>https://blog.csdn.net/dsiori/article/details/71354647</guid><author>dsiori</author><pubDate>Sun, 07 May 2017 19:39:00 +0800</pubDate><description><![CDATA[public class HelloLucene {
	
	//创建索引
	public void index(){
		IndexWriter writer = null;
		
		try {
			//1、创建目录Directory
			Directory directory = FSDirectory.open(new File("D:/testLucene/index"));//指定创]]></description><category></category></item><item><title><![CDATA[JAVA中查询一个词在内容中出现的次数、判断集合中是否包含关键字、查询字符串数组单个字符的长度]]></title><link>https://blog.csdn.net/dsiori/article/details/70214558</link><guid>https://blog.csdn.net/dsiori/article/details/70214558</guid><author>dsiori</author><pubDate>Mon, 17 Apr 2017 18:26:35 +0800</pubDate><description><![CDATA[JAVA中查询一个词在内容中出现的次数

public int getCount(String str,String key){
		 if(str == null || key == null || "".equals(str.trim()) || "".equals(key.trim())){
			 return 0;
		 }
	        int count = 0;
	    ]]></description><category></category></item><item><title><![CDATA[IKAnalyzer 在项目中的应用及在网上查询的部分实例资料]]></title><link>https://blog.csdn.net/dsiori/article/details/70143843</link><guid>https://blog.csdn.net/dsiori/article/details/70143843</guid><author>dsiori</author><pubDate>Wed, 12 Apr 2017 16:06:23 +0800</pubDate><description><![CDATA[IK Analyzer是基于lucene实现的分词开源框架，下载路径:http://code.google.com/p/ik-analyzer/downloads/list

需要在项目中引入：

IKAnalyzer.cfg.xml

IKAnalyzer2012.jar

lucene-core-3.6.0.jar

stopword.dic

项目中的应用

pr]]></description><category></category></item><item><title><![CDATA[DetachedCriteria多条件查询or，disjunction]]></title><link>https://blog.csdn.net/dsiori/article/details/69397052</link><guid>https://blog.csdn.net/dsiori/article/details/69397052</guid><author>dsiori</author><pubDate>Thu, 06 Apr 2017 17:06:01 +0800</pubDate><description><![CDATA[[java] view
 plain copy


 print?



public Page getCoordByPage(Page queryHandler, TCoordinate conditions) {  
        DetachedCriteria dc = DetachedCriteria.forClass(TCoordinate.class);  
 ]]></description><category></category></item><item><title><![CDATA[EasyUI在项目中的相关使用]]></title><link>https://blog.csdn.net/dsiori/article/details/64922070</link><guid>https://blog.csdn.net/dsiori/article/details/64922070</guid><author>dsiori</author><pubDate>Wed, 22 Mar 2017 17:20:18 +0800</pubDate><description><![CDATA[最近项目是采用Easyui作为前端页面，正好此次前端页面由我来编写，在这总结部分使用方法及技术，同时还有相关的JS控制代码，在这里只是实用技巧，如果需要更详细的情况，需要去查看API文档  http://www.jeasyui.net/
一、异步树


		$('#moduleTree').tree({
    		    	url: contextPath +'/', //URL地址
  ]]></description><category></category></item><item><title><![CDATA[html页面滚动效果之marquee标签详解]]></title><link>https://blog.csdn.net/dsiori/article/details/54972547</link><guid>https://blog.csdn.net/dsiori/article/details/54972547</guid><author>dsiori</author><pubDate>Fri, 10 Feb 2017 17:22:42 +0800</pubDate><description><![CDATA[html之marquee详解




该标签不是HTML3.2的一部分，并且只支持MSIE3以后内核，所以如果你使用非IE内核浏览器(如：Netscape)可能无法看到下面一些很有意思的效果
该标签是个容器标签
语法：


以下是一个最简单的例子：

代码如下:
Hello, World
 
下面这两个事件经常用到：
onMouseOut="this.start()]]></description><category></category></item><item><title><![CDATA[线程池框架核心代码解析-转]]></title><link>https://blog.csdn.net/dsiori/article/details/54947165</link><guid>https://blog.csdn.net/dsiori/article/details/54947165</guid><author>dsiori</author><pubDate>Thu, 09 Feb 2017 14:50:51 +0800</pubDate><description><![CDATA[原文地址：http://www.codeceo.com/article/java-thread-pool-kernal.html

前言

多线程编程中，为每个任务分配一个线程是不现实的，线程创建的开销和资源消耗都是很高的。线程池应运而生，成为我们管理线程的利器。Java 通过Executor接口，提供了一种标准的方法将任务的提交过程和执行过程解耦开来，并用Runnable表示任务。
]]></description><category></category></item></channel></rss>