web浏览器提交请求后,服务器端收到请求,但是服务器端一直阻塞,使用数据流一直卡着,麻烦看看原因
package com.bzsxt.server;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.ServerSocket;
import java.net.Socket;
import com.bzsxt.chat.CloseUtil;
/*
 *  #通过web页面提交数据时候,提交数据没有换行标识,所以用缓冲流读取不到换行.
 * */
public class Server3 {
	public static void main(String[] args) {
		ServerSocket server = null;
		Socket socket = null;
		BufferedReader bReader = null;
		BufferedWriter bWriter = null;
		String CRLF="\r\n";//换行
		String BLANK=" ";//空格
		try {
			server = new ServerSocket(8080);
			System.out.println("服务端开启");
			socket = server.accept();
			byte [] bs = new byte [20480];
			
			DataInputStream dataInputStream= new DataInputStream(socket.getInputStream());
			int len = -1;
			while ((len=dataInputStream.read(bs, 0, bs.length))!=-1) {
				System.out.println(new String(bs, 0, len, "utf-8"));
			}
			System.out.println("game over -----------");
			
			/**对Web浏览器的请求作出响应*/
			StringBuilder sb=new StringBuilder();
			StringBuilder sbContent=new StringBuilder();//响应的文本
			sbContent.append("<html><head><title>响应结果</title></head>");
			sbContent.append("<body>登录成功</body></html>");
			
			//(1)拼接响应头
			sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("OK");
			sb.append(CRLF);//换行
			sb.append("Content-Type: text/html;charset=utf-8");
			sb.append(CRLF);//换行
			sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF);
			sb.append(CRLF);//换行,代表响应头与响应的正文部门之间的空行
			sb.append(sbContent);
			
			//通过流输出 
			bWriter=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"utf-8"));
			bWriter.write(sb.toString());
			bWriter.flush();
			bWriter.close();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			CloseUtil.close(bReader, socket, server);
		}
	}
}