📄 httprequesthandler.java
字号:
package testHttp.httpserver;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import org.apache.commons.lang.StringUtils;
import testHttp.parser.XMLParser;
/**
*
* <p>
* Title: HttpRequestHandler.java
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright:OnewaveInc Copyright (c) 2007
* </p>
* <p>
* Company: OnewaveInc
* </p>
*
* @author Zhengrw
* @version 3.0
*/
public class HttpRequestHandler implements Runnable {
final static String CRLF = "\r\n";
private Socket socket;
private InputStream input;
private PrintWriter output;
private BufferedReader br;
// 构造方法
public HttpRequestHandler(Socket socket) throws Exception {
this.socket = socket;
this.input = socket.getInputStream();
this.output = new PrintWriter(socket.getOutputStream(), true);
this.br = new BufferedReader(new InputStreamReader(input));
}
// 实现Runnable 接口的run()方法
public void run() {
try {
processRequest();
} catch (Exception e) {
// TODO: 如果线程结束,这里打印
System.out.println();
System.out.println(e);
}
}
// TODO:具体的业务处理
private void processRequest0(String xmlString) throws Exception {
XMLParser.parse(xmlString);
}
private void processRequest() throws Exception {
while (true) {
// 读取并显示客户端提交的请求信息
StringBuffer sb = new StringBuffer();
String headerLine = null;
while (!StringUtils.isEmpty((headerLine = br.readLine()))) {
// System.out.println(headerLine);
sb.append(headerLine).append(CRLF);
}
processRequest0(sb.toString());
// 完成回应消息
// 发送到服务器信息
output.println("ok");
// 关闭套接字和流
try {
output.close();
br.close();
socket.close();
} catch (Exception e) {
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -