<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[koutatu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/koutatu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; koutatu]]></copyright><item><title><![CDATA[keystore 介绍]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/11063321</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/11063321</guid><author>koutatu</author><pubDate>Wed, 04 Sep 2013 15:25:08 +0800</pubDate><description><![CDATA[Keytool 是一个有效的安全钥匙和证书的管理工具. 
Java 中的 keytool.exe （位于 JDK\Bin 目录下）可以用来创建数字证书，所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中，证书库中的一条证书包含该条证书的私钥，公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件，数字证书文件只包括主体信息和对应的公钥。 
Keytool 把钥匙和证书储]]></description><category></category></item><item><title><![CDATA[事务：spring事务支持]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/9989287</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/9989287</guid><author>koutatu</author><pubDate>Thu, 15 Aug 2013 20:02:17 +0800</pubDate><description><![CDATA[当你涉及到两个其他业务方法一起绑定为一个业务操作的时候，例如一个ATM取款的简单操作： 
ATM机器吐钱2和更新你帐户存款就是一个取钱的主要操作，它就需要要求如果两者都成功，即 
一起提交，如果有一者失败，即回滚该两个操作，这种时候就需要事务了。 
一、事务的特性：原子性、一致性、分离性、持久性，简称（ACID）。
原子性(Atomicity）、一致性（Consistency）、隔离性（I]]></description><category></category></item><item><title><![CDATA[ThreadLocal是什么]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/9569859</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/9569859</guid><author>koutatu</author><pubDate>Sun, 28 Jul 2013 21:27:01 +0800</pubDate><description><![CDATA[ThreadLocal是什么
早在JDK 1.2的版本中就提供java.lang.ThreadLocal，ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。
ThreadLocal很容易让人望文生义，想当然地认为是一个“本地线程”。其实，ThreadLocal并不是一个Thread，而是Thread的局部变量，也许把它命名为T]]></description><category></category></item><item><title><![CDATA[struts ActionMessage简介]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/9412189</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/9412189</guid><author>koutatu</author><pubDate>Mon, 22 Jul 2013 18:28:05 +0800</pubDate><description><![CDATA[在formbean中的validate函数验证过之后直接return errors即可返回到INPUT页面，在action中验证完之后使用saveErrors(request,errors);来把errors保存到request范围内，然后使用return mapping.findForward("input");返回到input页面。


标签的属性：name表示根据相应的KEY名选择哪一]]></description><category></category></item><item><title><![CDATA[getContextPath、getServletPath、getRequestURI的区别]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/9409995</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/9409995</guid><author>koutatu</author><pubDate>Mon, 22 Jul 2013 15:53:14 +0800</pubDate><description><![CDATA[假定你的web application 名称为news,你在浏览器中输入请求路径：
http://localhost:8080/news/main/list.jsp
则执行下面向行代码后打印出如下结果：
1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项目的名字
打印结果：/news
   2、System.]]></description><category></category></item><item><title><![CDATA[纳品小工具（根据文件一览从工程中取文件，包括testcase和testcase数据文件）]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7787012</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7787012</guid><author>koutatu</author><pubDate>Wed, 25 Jul 2012 23:33:30 +0800</pubDate><description><![CDATA[import java.io.BufferedInputStream;

public class testNouhinTool {
 /**
  * @param args
  */
 public static void main(String[] args) {
  
  String ORG_DIRECTORY = "F:\\testNouhiuTool";
  Stri]]></description><category></category></item><item><title><![CDATA[JAVA反射实现基本的copyProperty,getProperty,isEmpty方法]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7671690</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7671690</guid><author>koutatu</author><pubDate>Sun, 17 Jun 2012 21:39:13 +0800</pubDate><description><![CDATA[import java.lang.reflect.InvocationTargetException;
public class BeanUtils {
    public static Object getProperty (Object bean, String name) {
     Class c = bean.getClass();
     try {
   Method]]></description><category></category></item><item><title><![CDATA[Filter和Intercepor的区别]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7339520</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7339520</guid><author>koutatu</author><pubDate>Sat, 10 Mar 2012 12:44:44 +0800</pubDate><description><![CDATA[前段时间参与一个项目，过滤器用的是Interceptor 觉得比以前用的Filter好用很多，现在拿出来比较一下
Filter
    该过滤器的方法是创建一个类XXXFilter实现此接口，并在该类中的doFilter方法中声明过滤规则，然后在配置文件web.xml中声明他所过滤的路径
    
        XXXFilter
        
            com.w]]></description><category></category></item><item><title><![CDATA[Ibatis中的jdbcType]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7315826</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7315826</guid><author>koutatu</author><pubDate>Sat, 03 Mar 2012 20:17:38 +0800</pubDate><description><![CDATA[iBatis官方的说法是, 只要是JDBC提供的JdbcType类中所定义的常量字符串，jdbcType这个属性就可以取这个值，虽然有一些类型iBatis尚且不能支持(例如blobs等)。而JdbcType类则由不同的JDBC Driver提供，可能由于Driver(不同类型的数据库有不同的Driver)的不同会存在差异，不过大同小异。一般都支持如下类型（大小写不敏感）：
Array, BigI]]></description><category></category></item><item><title><![CDATA[Ibatis处理空值，jdbcType]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7315803</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7315803</guid><author>koutatu</author><pubDate>Sat, 03 Mar 2012 20:10:34 +0800</pubDate><description><![CDATA[转载
 
set propetty 
要设置的属性是基本数据类型，而数据库中表对应的字段可以为null

iBATIS关于空值(NULL)的解决方案

使用iBATIS作为数据库持久层的人都有体会,iBATIS对NULL值的处理并不优雅.本文讨论常见的NULL值处理方案.jdbcType 应该是java.sql.Types 中所列举的类型中的一种.

1.String为NULL的]]></description><category></category></item><item><title><![CDATA[ibatis动态sql]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7315001</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7315001</guid><author>koutatu</author><pubDate>Sat, 03 Mar 2012 14:33:46 +0800</pubDate><description><![CDATA[转:ibatis动态sql



      直接使用JDBC一个非常普遍的问题就是动态SQL。使用参数值、参数本身和数据列都是动态SQL，通常是非常困难的。典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接。对于这个问题，Ibatis提供了一套标准的相对比较清晰的方法来解决一个问题，这里有个简单的例子：
     
         select * from u]]></description><category></category></item><item><title><![CDATA[动态扩大数组]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7172581</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7172581</guid><author>koutatu</author><pubDate>Tue, 03 Jan 2012 13:42:03 +0800</pubDate><description><![CDATA[一般方法：利用java.util.Arrays类中的copyOf方法
public static void main(String[] args) {
  String[] a = {"1","2","3","4"};
  a = Arrays.copyOf(a, 10);
  for(int i = 0;i
   System.out.println(a[i]);
  }
 }]]></description><category></category></item><item><title><![CDATA[利用反射直接访问类中的私有变量]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7172057</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7172057</guid><author>koutatu</author><pubDate>Mon, 02 Jan 2012 22:41:11 +0800</pubDate><description><![CDATA[package reflection;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class testMain {
 /**
  * @param args
  */
 publ]]></description><category></category></item><item><title><![CDATA[C语言字节对齐]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7100885</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7100885</guid><author>koutatu</author><pubDate>Sun, 25 Dec 2011 11:46:43 +0800</pubDate><description><![CDATA[转自： http://blog.youkuaiyun.com/21aspnet/article/details/6729724
 
文章最后本人做了一幅图，一看就明白了，这个问题网上讲的不少，但是都没有把问题说透。
　　一、概念 
　　 
　　 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍，他就被称做自然对齐。比如在32位cpu下，假设一个整型变量的地址为0x00000]]></description><category></category></item><item><title><![CDATA[java批处理，读csv文件，写入数据库]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7100281</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7100281</guid><author>koutatu</author><pubDate>Sat, 24 Dec 2011 20:48:21 +0800</pubDate><description><![CDATA[转自：http://cxck.itpub.net/post/28897/302636
 
下面这个例子，是从tab分隔的csv文件里读取数据，把数据写入hostname上的DBNAME的USER_MASTER里。
 
import java.io.*;
import java.sql.*;
 
import oracle.jdbc.*;
 
public class Batch1]]></description><category></category></item><item><title><![CDATA[java批处理，检查数据库中信息和文件夹中文件信息的一致性]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7099722</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7099722</guid><author>koutatu</author><pubDate>Sat, 24 Dec 2011 15:17:02 +0800</pubDate><description><![CDATA[import java.sql.ResultSet;
import java.sql.SQLException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
imp]]></description><category></category></item><item><title><![CDATA[Shell脚本截取字符串]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7069847</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7069847</guid><author>koutatu</author><pubDate>Wed, 14 Dec 2011 11:53:23 +0800</pubDate><description><![CDATA[#!/bin/sh
str="1234 | 5678 |   90 1234  43   "
echo $str
#全局删除空格

str1=`echo $str | cut -d '|' -f 1 | sed s/' '//g`
echo "###$str1###"
str2=`echo $str | cut -d '|' -f 2 | sed s/' '//g`
echo "#]]></description><category></category></item><item><title><![CDATA[LINUX下TCP套接口重复服务器编程范例]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7067729</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7067729</guid><author>koutatu</author><pubDate>Tue, 13 Dec 2011 17:28:42 +0800</pubDate><description><![CDATA[服务器端
#include 
#include 
#include 
#include 
#include 
#include 
#include 
main()
{
  int nSocket,nCliSocket;
  int nCliLen;
  struct sockaddr_in sin,cli_sin;
  //struct sockaddr_in *p =]]></description><category></category></item><item><title><![CDATA[提高Linux上socket性能---加速网络应用程序]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7060011</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7060011</guid><author>koutatu</author><pubDate>Sat, 10 Dec 2011 20:16:53 +0800</pubDate><description><![CDATA[转自：http://www.examda.com/Linux/Instructs/060311/105003993.html
 
在开发 socket 应用程序时，首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示，您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及]]></description><category></category></item><item><title><![CDATA[linux中套接口socket,bind函数测试，bzero警告解决方法]]></title><link>https://blog.youkuaiyun.com/koutatu/article/details/7057276</link><guid>https://blog.youkuaiyun.com/koutatu/article/details/7057276</guid><author>koutatu</author><pubDate>Fri, 09 Dec 2011 15:27:05 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
main()
{
  int nSocket;
  struct sockaddr_in sin;
  //struct sockaddr_in *p = &sin;
  nSocket = socket(PF_INET,SOCK_STREAM,0);
  bzero(&sin]]></description><category></category></item></channel></rss>