1.问题描述
今天学习spring mvc时用到了一个jersey库,使用该库可以直接把文件上传到tomcat服务器。而在tomcat服务器端不需要写任何响应代码,只需要服务器处于运行状态,文件就可以上传到服务器中。jersey库是怎么做到的呢?猜测它是通过http协议的put请求将文件上传上去的。为了验证这个想法,我使用tcp协议模拟http协议看能不能将文件上传到tomcat服务器中。
2.环境搭建
2.1服务器端环境搭建
用j2ee版本的eclipse新建一个java web项目ssmImage19,在WebRoot文件夹下新建一个upload文件夹用于存放上传的文件,该文件夹不能为空,不然部署到服务器中之后,空文件有可能会被删除。新建一个tomcat服务器imgServer,并将项目ssmImage19部署到该tomcat服务器中,将Servers项目中imgServer-config目录下的web.xml(注意不是web项目中WebRoot/WEB-INF目录下的web.xml)中的readonly参数设置为false,允许向服务器写数据,否则上传文件时服务器会返回403错误代码。将imgServer的http协议端口改为8002,用默认的8080端口也可以,客户端代码需要与服务端端口保持一致即可。这里,我的tomcat服务器端口是8002,因此客户端也是连接的8002端口。最后,运行服务器imgServer。