在这中间大约有10天因写文本上传的程序发现IO流基础薄弱,一直在复习学习IO流的知识,现在再次开始学习Web的知识Serverlet。这次的目的是学习服务器,所以首先努力的写一个能读取网页的MyWeb服务器。
回想一下以前的知识,想要读取网络上的文件,首先必须创建TCP的socket服务器,然后获取客户端,最后再创建一个文件输入流读取web.html,然后将读取的字符写出。所以代码相对简单
public static void main(String[] args) throws IOException {
//创建TCP的socket服务器
ServerSocket ss = new ServerSocket(10008);
//提示一句话
System.out.println("在10008上等待连接。。。");
//获取客户端
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
//创建一个文件输入流读取web.html
BufferedReader bufr = new BufferedReader(new FileReader("G:\\eclipse\\workspace\\ServerletDemo\\src\\MyWeb\\web.html"));
String line = null;
while((line=bufr.readLine())!=null){
os.write(line.getBytes());
}
System.out.println("。。。在10008上连接结束");
//关闭流
bufr.close();
os.close();
s.close();
}
重要的是它的思想。由客户端发出访问请求,通过端口在模拟服务器内阅读该网页,并将网页内容写回至客户端。其实Web服务器的基本原理就是这个,Tomcat、JBoss、WebLogic、WebSphere写的更加强大更加健壮。