tomcat初探

最近这段时间回顾了一下JAVA基础,到了网络编程的socket这一章,进而想到最常见的服务器tomcat,于是就开始深入学习tomcat。

对于浏览器访问页面这个过程,简单的来说的,浏览器发出请求,然后服务器接受请求作出响应,最后浏览器将响应的结果展示给用户。再往底层深入一下,浏览器与服务器之间的信息交换,将请求与响应的内容依照一种协议的格式进行编排,然后在网络中通过传输一个一个的比特流来实现的。到这里,就有思路了,利用JAVA的IO流对请求进行解析,然后响应,返回结果。这里需要注意的是,http请求报文不同项之间,要用\\r\\n进行分割,然后对得到的IO流进行解析。

大致做法就是利用SoecketServer对端口进行监听,得到Socket对象,然后拿到输入流,解析报文,响应请求,然后再拿到Socket对象的输出流返回响应报文。

以下为代码:

package com.chenx.simple.listener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleListener {
	public final static int port = 8888;//端口
	/**
	 * 监听开始方法
	 */
	public void start() {
		try {
			ServerSocket ss = new ServerSocket(port);//建立服务监听
			Socket aSocket = ss.accept();//开始监听端口
			System.out.println("the remote address is : "+ aSocket.getRemoteSocketAddress());//打印发出请求的端口
			DataOutputStream dos = new DataOutputStream(aSocket.getOutputStream());//得到请求的输出流
			/* 以下代码向输出流中写响应内容 */
			dos.writeBytes("HTTP/1.1 200 OK \r\n");
			dos.writeBytes("Server: Microsoft-IIS/4.0\r\n");
			dos.writeBytes("Date: Mon, 5 Jan 2004 13:13:33 GMT\r\n");
			dos.writeBytes("Content-Type: text/html\r\n");
			dos.writeBytes("Last-Modified: Mon, 5 Jan 2004 13:13:12 GMT\r\n");
			dos.writeBytes("Content-Length: 109\r\n");
			dos.writeBytes("\r\n");
			dos.writeBytes("<HTML>\r\n");
			dos.writeBytes("<HEAD>\r\n");
			dos.writeBytes("<title>HTTP Response Example</title>\r\n");
			dos.writeBytes("</HEAD>\r\n");
			dos.writeBytes("<BODY>\r\n");
			dos.writeBytes("Welcome to SimpleCat\r\n");
			dos.writeBytes("</BODY>\r\n");
			dos.writeBytes("</HTML>");
			dos.writeBytes("\r\n");
			/* 响应结束 */
			dos.close();//关闭输出流
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		SimpleListener sl = new SimpleListener();
		sl.start();
	}

}
Java 环境下, Socket 编程主要是指基于 TCP/IP 协议(HTTP协议是TCP/IP协议中的一员)的网络编程但是Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。我们可以把socket看做是TCP/IP协议的实现类,这里便体现了面向对象语言的优势,不需要关心底层的具体实现,只需要使用底层提供的接口。

另外,对tomcat的另外一种定义是web容器,不仅可以实现响应请求,还实现了JSP标准,支持servlet(类似的还有jetty)。所以学习tomcat,了解jsp与servlet才是学习tomcat的精髓。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值