Java内容重新整理删除过期的东西

This commit is contained in:
estom
2025-09-14 03:49:42 -04:00
parent 9b8524ff80
commit 885b795e45
413 changed files with 643 additions and 1340 deletions

View File

@@ -0,0 +1,71 @@
/**
* 创建时间2016-8-18
*/
package cn.aofeng.demo.httpclient.server;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
/**
* @author <a href="mailto:aofengblog@163.com">聂勇</a>
*/
public abstract class AbstractHandler implements HttpHandler {
private static Logger _logger = Logger.getLogger(AbstractHandler.class);
protected String _charset = "utf-8";
public AbstractHandler(String charset) {
this._charset = charset;
}
/**
* 处理请求头。
*/
public void handleHeader(HttpExchange httpEx) {
InetSocketAddress remoteAddress = httpEx.getRemoteAddress();
_logger.info("收到来自"+remoteAddress.getAddress().getHostAddress()+":"+remoteAddress.getPort()+"的请求");
URI rUri = httpEx.getRequestURI();
_logger.info("请求地址:"+rUri.toString());
String method = httpEx.getRequestMethod();
_logger.info("请求方法:"+method);
Headers headers = httpEx.getRequestHeaders();
Set<Entry<String, List<String>>> headerSet = headers.entrySet();
_logger.info("请求头:");
for (Entry<String, List<String>> header : headerSet) {
_logger.info(header.getKey()+":"+header.getValue());
}
}
/**
* 处理响应。
*/
public void handleResponse(HttpExchange httpEx, String content)
throws UnsupportedEncodingException, IOException {
String rc = "冒号后面是收到的请求,原样返回:"+content;
byte[] temp = rc.getBytes(_charset);
Headers outHeaders = httpEx.getResponseHeaders();
outHeaders.set("ABC", "123");
httpEx.sendResponseHeaders(200, temp.length);
OutputStream outs = httpEx.getResponseBody();
outs.write(temp);
IOUtils.closeQuietly(outs);
}
}

View File

@@ -0,0 +1,66 @@
/**
* 创建时间2016-8-18
*/
package cn.aofeng.demo.httpclient.server;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
/**
* 二进制处理器。
*
* @author <a href="mailto:aofengblog@163.com">聂勇</a>
*/
public class BinaryHandler extends AbstractHandler implements HttpHandler {
private static Logger _logger = Logger.getLogger(BinaryHandler.class);
private String _dir = "/home/nieyong/temp/JavaTutorial";
public BinaryHandler(String charset) {
super(charset);
}
@Override
public void handle(HttpExchange httpEx) throws IOException {
super.handleHeader(httpEx);
handleRequest(httpEx);
String content = "收到一个二进制的请求";
super.handleResponse(httpEx, content);
}
/**
* 处理请求。
* @throws IOException
*/
public String handleRequest(HttpExchange httpEx) throws IOException {
OutputStream outs = null;
InputStream ins = null;
try {
File file = new File(_dir, ""+System.currentTimeMillis());
if (!file.exists()) {
file.createNewFile();
}
outs = new FileOutputStream(file);
ins = httpEx.getRequestBody();
IOUtils.copyLarge(ins, outs);
} catch (Exception e) {
_logger.error("read request or write file occurs error", e);
} finally {
IOUtils.closeQuietly(ins);
IOUtils.closeQuietly(outs);
}
return null;
}
}

View File

@@ -0,0 +1,50 @@
/**
* 创建时间2016-8-18
*/
package cn.aofeng.demo.httpclient.server;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
/**
* 字符串处理器。
*
* @author <a href="mailto:aofengblog@163.com">聂勇</a>
*/
public class CharacterHandler extends AbstractHandler implements HttpHandler {
static Logger _logger = Logger .getLogger(CharacterHandler.class);
public CharacterHandler(String charset) {
super(charset);
}
@Override
public void handle(HttpExchange httpEx) throws IOException {
super.handleHeader(httpEx);
String content = handleRequest(httpEx);
super.handleResponse(httpEx, content);
}
/**
* 处理请求。
*/
public String handleRequest(HttpExchange httpEx)
throws UnsupportedEncodingException, IOException {
InputStream ins = httpEx.getRequestBody();
String content = URLDecoder.decode(
IOUtils.toString(ins, _charset), _charset);
_logger.info("请求内容:"+content);
IOUtils.closeQuietly(ins);
return content;
}
}

View File

@@ -0,0 +1,41 @@
/**
* 创建时间2016-8-5
*/
package cn.aofeng.demo.httpclient.server;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.log4j.Logger;
import com.sun.net.httpserver.HttpServer;
/**
* 简单的HTTP Server。
*
* @author <a href="mailto:aofengblog@163.com">聂勇</a>
*/
public class SimpleHttpServer {
private static Logger _logger = Logger.getLogger(SimpleHttpServer.class);
private static String _charset = "utf-8";
/**
* @param args
*/
public static void main(String[] args) {
int port = 8888;
try {
HttpServer server = HttpServer.create(new InetSocketAddress(port), 128);
server.createContext("/get", new CharacterHandler(_charset));
server.createContext("/post", new CharacterHandler(_charset));
server.createContext("/file", new BinaryHandler(_charset));
server.start();
_logger.info("http server already started, listen port:"+port);
} catch (IOException e) {
_logger.error("", e);
}
}
}