⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httprequesthandler.java

📁 简单的java http 服务器和客户端源代码
💻 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 + -