ÓÃServerSocketºÍSocketÀ´±àд·þÎñÆ÷³ÌÐòºÍ¿Í»§³ÌÐò£¬ÊÇJavaÍøÂç±à³ÌµÄ×î»ù±¾µÄ·½Ê½¡£ÕâЩ·þÎñÆ÷³ÌÐò»ò¿Í»§³ÌÐòÔÚÔËÐйý³ÌÖг£³£»á×èÈû¡£ÀýÈçµ±Ò»¸öÏß³ÌÖ´ÐÐServerSocketµÄaccept()·½·¨Ê±£¬¼ÙÈçûÓпͻ§Á¬½Ó£¬¸ÃÏ߳̾ͻáÒ»Ö±µÈµ½ÓÐÁ˿ͻ§Á¬½Ó²Å´Óaccept()·½·¨·µ»Ø¡£ÔÙÀýÈçµ±Ïß³ÌÖ´ÐÐSocketµÄread()·½·¨Ê±£¬Èç¹ûÊäÈëÁ÷ÖÐûÓÐÊý¾Ý£¬¸ÃÏ߳̾ͻáÒ»Ö±µÈµ½¶ÁÈëÁË×ã¹»µÄÊý¾Ý²Å´Óread()·½·¨·µ»Ø¡£
¼ÙÈç·þÎñÆ÷³ÌÐòÐèҪͬʱÓë¶à¸ö¿Í»§Í¨ÐÅ£¬¾Í±ØÐë·ÖÅä¶à¸ö¹¤×÷Ị̈߳¬ÈÃËüÃÇ·Ö±ð¸ºÔðÓëÒ»¸ö¿Í»§Í¨ÐÅ£¬µ±È»Ã¿¸ö¹¤×÷Ï̶߳¼ÓпÉÄܾ³£´¦ÓÚ³¤Ê±¼äµÄ×èÈû״̬¡£
´ÓJDK1.4°æ±¾¿ªÊ¼£¬ÒýÈëÁË·Ç×èÈûµÄͨÐÅ»úÖÆ¡£·þÎñÆ÷³ÌÐò½ÓÊÕ¿Í»§Á¬½Ó¡¢¿Í»§³ÌÐò½¨Á¢Óë·þÎñÆ÷µÄÁ¬½Ó£¬ÒÔ¼°·þÎñÆ÷³ÌÐòºÍ¿Í»§³ÌÐòÊÕ·¢Êý¾ÝµÄ²Ù×÷¶¼¿ÉÒÔ°´·Ç×èÈûµÄ·½Ê½½øÐС£·þÎñÆ÷³ÌÐòÖ»ÐèÒª´´½¨Ò»¸öỊ̈߳¬¾ÍÄÜÍê³ÉͬʱÓë¶à¸ö¿Í»§Í¨ÐŵÄÈÎÎñ¡£
·Ç×èÈûµÄͨÐÅ»úÖÆÖ÷ÒªÓÉjava.nio°ü£¨ÐÂI/O°ü£©ÖеÄÀàʵÏÖ£¬Ö÷ÒªµÄÀà°üÀ¨ServerSocketChannel¡¢SocketChannel¡¢Selector¡¢SelectionKeyºÍByteBufferµÈ¡£
Ò»¡¢Ïß³Ì×èÈû
ÔÚÉú»îÖУ¬×î³£¼ûµÄ×èÈûÏÖÏóÊǹ«Â·ÉÏÆû³µµÄ¶ÂÈû¡£Æû³µÔÚ¹«Â·ÉÏ¿ìËÙÔËÐУ¬Èç¹ûǰ·½½»Í¨ÊÜ×裬¾ÍÖ»ºÃÍ£ÏÂÀ´µÈ´ý£¬µÈµ½¹«Â·Ë ......
/**
* ÃèÊö£ºÊý¾Ý¿â³õʼ»¯»ù±¾Àà
*
* @×÷Õß ÍõȺ
* @´´½¨ÈÕÆÚ 2010-04-08
* @ÐÞ¸ÄÈË xxx
* @ÐÞ¸ÄÈÕÆÚ xxx
* @¼ì²éÈË xxx
* @¼ì²éÈÕÆÚ xxx
*/
import java.sql.SQLException;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.oumasoft.bstmanage.ibatis.SqlMapConfig;
import com.oumasoft.bstmanage.ibatis.data.JsgnPo;
import com.oumasoft.bstmanage.ibatis.data.Test;
import java.util.*;
import org.w3c.dom.*;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.dom.*;
import org.apache.log4j.Logger;
import com.oumasoft.bstmanage.ibatis.dao.ClientDao;
public class InitDBDao{
static Logger logger = Logger.getLogger(ClientDao.class.getName());
static SqlMapClient sqlMap = null;
private static File file = null;//¶ÁдÎļþ
private static DocumentBuilderFactory factory = null;
private static DocumentBuilder b ......
/**
* ÃèÊö£ºÊý¾Ý¿â³õʼ»¯»ù±¾Àà
*
* @×÷Õß ÍõȺ
* @´´½¨ÈÕÆÚ 2010-04-08
* @ÐÞ¸ÄÈË xxx
* @ÐÞ¸ÄÈÕÆÚ xxx
* @¼ì²éÈË xxx
* @¼ì²éÈÕÆÚ xxx
*/
import java.sql.SQLException;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.oumasoft.bstmanage.ibatis.SqlMapConfig;
import com.oumasoft.bstmanage.ibatis.data.JsgnPo;
import com.oumasoft.bstmanage.ibatis.data.Test;
import java.util.*;
import org.w3c.dom.*;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.dom.*;
import org.apache.log4j.Logger;
import com.oumasoft.bstmanage.ibatis.dao.ClientDao;
public class InitDBDao{
static Logger logger = Logger.getLogger(ClientDao.class.getName());
static SqlMapClient sqlMap = null;
private static File file = null;//¶ÁдÎļþ
private static DocumentBuilderFactory factory = null;
private static DocumentBuilder b ......
Îå¸öÓÐÓõĹýÂËÆ÷
Ò»¡¢Ê¹ä¯ÀÀÆ÷²»»º´æÒ³ÃæµÄ¹ýÂËÆ÷
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* ÓÃÓÚµÄʹ Browser ²»»º´æÒ³ÃæµÄ¹ýÂËÆ÷
*/
public class ForceNoCacheFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException
{
((HttpServletResponse) response).setHeader("Cache-Control","no-cache");
((HttpServletResponse) response).setHeader("Pragma","no-cache");
((HttpServletResponse) response).setDateHeader ("Expires", -1);
filterChain.doFilter(request, response);
}
public void destroy()
{
}
public void init(FilterConfig filterConfig) throws ServletException
{
}
}
¶þ¡¢¼ì²âÓû§ÊÇ·ñµÇ½µÄ¹ýÂËÆ÷
&nb ......
ʵ²»ÏàÂ÷£¬JavaÊÇÎÒ¼û¹ýµÄÖ´ÐÐЧÂÊ×îµÍµÄ³ÌÐòÉè¼ÆÓïÑÔ£¬Ç°²»¾ÃÔÚCSDNÂÛ̳ÉÏÓиöÆÀ²â£¬¼ÆËã9999µÄ½×³Ë£¬Í¬ÑùµÄÑ»·Ëã·¨£¬JavaµÄºÄʱÊÇ.NETµÄ5±¶¡£ÎÒÒÔǰºÜϲ»¶Serv-U£¬×Ô´ÓËüÓÃJavaÖØÐ´Ö®ºóÎÒ¾ÍÔÙҲûÓùý£¬ÊµÔÚÊÇÌ«ÂýÁË£¬ÎÒÄþ¿ÉÓÃIIS´î½¨FTP£¬ËäÈ»IIS´î½¨FTPÔÚȨÏÞ¹ÜÀíÉϺܲ»Áé»î¡£
ÎÒÓиöͬѧ£¬ËûÊǸãJavaµÄ£¬Ëû¸øÎÒ˵“Java²»ÊÇЧÂʵͣ¬¶øÊÇËÙ¶ÈÂý¡£”£¬ÎÒ²»ÊǸãJavaµÄ£¬ÎÒʵÔÚÏ벻͸Õâ¾ä»°µÄº¬Ò壬ÄѵÀÖ´ÐÐËÙ¶ÈÂý²»¾ÍÊÇЧÂʵÍÂð£¿ÄѵÀÖ´ÐÐËÙ¶ÈÂý»¹³ÉЧÂʸßÁË£¿
ÆäʵJavaÖ®ËùÒÔÔÚÔø¾¶À²½ÌìÏ£¬¾ÍÊÇÒòΪËûµÄ¿çƽ̨¡¢°²È«ÐÔ£¬ÕâÁ½·½Ã棬ЧÂʿɲ»ÊÇJavaµÄÇ¿Ï·´¶øÊÇËû×î¶ÌµÄÒ»¿éµ²°å£¬ËäÈ»Java×ÜÊÇÓÃÀíÂÛÖ¤Ã÷±È.NET¿ì¡£
Ò²ÐíC#¸ÕÉÏÊеÄʱºòÓÐЩ³Ï®Java°É£¬µ«×Ô´ÓC# 2.0ÉÏÊÐÖ®ºó£¬Õû¸ö¾ÖÃæ¾ÍŤתǬÀ¤ÁË£¬²»µ«JavaÔÚÄ£·ÂC#£¬¶øÇÒËû´ÓÀ´¶¼Ã»ÄܸúµÃÉÏC#µÄ½Å²½¡£
¾Í°²È«ÐÔ¶øÑÔ£¬JavaÒѾԶԶµÍÓÚVB.NET£¬¸üÎÞ·¨Ó밲ȫÐÔÖø³ÆµÄC#Ïà±È¡£
Ò²ÐíΨһ¿ÉÒÔÈÃÊÀÈËÁôÁµJavaµÄÀíÓɾÍÊ£ÏÂËüµÄÍõÅÆ——¿çƽ̨¡£
˵¾äʵ»°£¬Java¿çƽ̨¸ù±¾¾Í²»ÊÇÍâÐÐÈËÏëÏëµÄÄÇÖÖ£¬Ò»´Î±àÒ룬´¦´¦ÔËÐС£
ÒòΪ¸÷ϵͳµÄAPI²»Í¬£¬´úÂëµ÷ÓÃAPI±àд³ÌÐò¾Í»áÓöµ½ºÜ¶à²»¼æÈݵĵط½£¬±ÈÈçJ ......
·þÎñÆ÷ÖÐתÏûÏ¢£¬ÊÇ·ÑʱµÄÊ£¬¿ÉÒÔ¼ÓÈë¶àÏ̡߳£ÕâÑùÒÔÀ´£¬»á²úÉúºÜ¶àÏ̡߳£¿ÉÒÔÔËÓÃÏ̳߳ØÀ´¹ÜÀí¡£
ÕâÀïÔËÓÃjava.util.concurrent°üµÄExecutors.newCachedThreadPoolÀ´¹ÜÀí¡£
·Ï»°ÉÙ˵£¬ÉÏ´úÂ룺
·þÎñÆ÷¶Ë£ºMySocketServer.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.kevin.nio;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Date;
import java.util.Iterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author kevin
*/
public class MySocketServer implements Runnable{
private boolean running;
......
public static boolean isCheckN(String pInput) {
String regEx = "^[0-9]+$";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(pInput);
return m.find();
}
public static boolean isCheckE(String pInput)
{
if (!pInput.equals("")){
if (!Pattern.matches("XXXX",pInput)){
return false;
}
}
return true;
} ......