问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用Java开发一个HTTP服务器,能够处理POST,GET,PUT,DELETE请求。

发布网友 发布时间:2022-04-25 20:51

我来回答

2个回答

热心网友 时间:2022-04-12 15:03

使用Java开发一个HTTP服务器,能够处理POST,GET,PUT,DELETE请求。
1. 监听端口可以配置;
2. 可以配置的一个工作目录;
3. GET请求可以获得相对于该工作目录的静态文件的内容,内容格式限定为html,css,js,json,xml,txt,jpg,gif,png,ico;
a) 例如 GET /f/test1.html返回工作目录下f文件夹下test1.html内容;
b) 在GET请求的的应答中尽可能多的在HTTP头中返回些能获得的到的标准的头信息;
4. POST请求可以在工作目录中创建请求路径对应的文件,文件内容为POST请求的内容;
a) 例如 POST /f/test2.html,在工作目录下f文件夹下创建test2.html文件,并将POST内容作为test2.html的内容。
5. PUT请求可以替换对应路径的文件,修改的内容为PUT请求的内容。注意与POST不同。
a) 例如 PUT /f/test2.html,在工作目录下f文件夹替换test2.html文件的内容,并将PUT内容作为test2.html的内容。
6. DELET请求可以删除对应路径的文件。
a) 例如 PUT /f/test2.html,在工作目录下f文件夹删除test2.html文件。
7. POST,PUT,DELETE成功后返回200,出现找不到文件的情况返回404错误,出现读写文件错误返回500错误。
8. 特别的处理~路径下的GET请求,其包含2个参数,一个是类名,一个是方法名,这些方法都是些无参数并且以字符串为返回值的方法,GET请求应返回这些方法的返回值。
a) 例如 GET /~?class=com.test.Test&method=getTIme,则调用com.test.Test类中String getTIme()方法,将返回值作为GET请求的返回;
b) 若找不到类或方法返回404错误;
c) 若出错返回500错误;
9. 特别的处理$路径下的GET请求,能够为浏览器添加cookie,key为sid,值为UUID的随机字符串。
注意:不是在tomcat之类servlet容器上开发,而是要开发个类似servlet容器的东西。

热心网友 时间:2022-04-12 16:21

... 你的需求有点复杂。。
单纯使用servlet是最省事情的。复写doGet(),doPost(),doDelete(),doHead()等方法,在方法里实现你的业务逻辑就可以了
或者strues2或者spring,加配置 method={“get”,"post","delete".....};里面实现业务,一个道理追问我也知道啊,领导让写,不知道写这玩意干嘛,用socket 搞一下午了。。。。

追答socket就比较麻烦了,我不晓得你的客户端是怎么调用的。如果是浏览器的话 那么你的html在form中需要配置方法,但按你的说法,应该不是浏览器调用的,不然不至于使用socket。也就是说,在客户端调用时,需要一个约定,告诉服务端客户端调用使用的方法,类似于这样new StringBuilder().append("GET /HttpStream/gb2312.jsp HTTP/1.1\r\n");单个人感觉如果你使用socket没有必要再做成http的,消耗太大,直接udp就可以玩了,保证数据有效性用tlv+md5也能玩,效率也比较高
按你的需求,大致的思路是这个样纸:
1、写一个父类,监听端口,得到inputStream,解析inputStream,得到request的method,加主方法的返回。
2、然后子类继承,工厂,选择相应业务处理类,
3、然后就没意思了,纯业务代码垒就是了,注意一个事情,就是每种请求的区别比如del之类的,符合协议规范就ok了。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
君主立宪制有哪些特点 ?君主立宪制的特点是什么君主立宪制国家有几个 谁能帮我下载昵图网的一张图片? 300-600÷5的脱式计算图片? 交过几个男朋友算多?男的进! 25岁交过三个男朋友算多吗?现在都不敢再交男朋友了,好害怕的感觉_百度... 在领结婚证前买的房,房产证是2个人的名字,现在想买第二套房,领了结婚... 笔记本电脑使用中卡住,等恢复后无法连接网络 如何将未分配的200多G合并到C盘?请各位大侠详细指导,感激万分!!! 50G的C盘剩下多少空间的好 java怎么解析http post请求数据 java怎么使用http post调用web api java http post请求Graphql java调http接口 post方式请求 服务器识别全是乱码 服务器识别utf-8的内容 哪位大神知道怎么解决吗? Java http post请求400 java post-JAVA HTTP POST请求Url过长会出现什么问题 求助,Java HttpUrlConnection POST请求 如何使用java模拟post请求 恒生科技指数ETF的投资价值如何? 学而思网校怎么上课 学而思网校的老师只负责课堂内容吗? 学而思网校的上课时间自由吗? 电脑怎么安装网校课堂app 网校上课都是用的什么软件? 网校课堂是什么??? 北京四中网校高清课堂如何收费? 学而思网校的上课感觉如何? 让小孩在学而思网校上课体验如何,靠谱吗? 学而思网校好还是高途课堂好? 新课堂网校超强记忆力课堂怎么样 java在写http的post请求时什么时候需要写请求头 JAVA 怎么实现HTTP的POST方式通讯,以及HTTPS方式传递 己所欲亚麻籽油怎么吃? 怎么查看已登陆的wifi密码 心烦意燥是什么意思 心烦意乱什么意思??? 心烦意燥近义词 心烦意乱 为什么有时候会无缘无故心烦意燥呢?明明刚刚玩的很开心,笑的很开心,但一静下来就会郁闷,会心烦的呢? 有时候会突然心烦意燥是怎么回事 该怎么办 人为什么心烦意燥 最近心烦意燥怎么办? 最近老是觉得心烦意燥的,还会觉得头晕的,怎么办 为什么会整天莫名奇妙的想发火,心烦意燥的。 我干事总是着急忙慌心烦意燥的怎么办? 总是心烦意燥,做什么都提不起兴致!一个人时会恐惧乱想,很多事都感觉是梦一场。这是怎么了?_百度问一问 心烦意燥怎么办? 卤肉的做法及配料有哪些? 卤肉配方中的配料有哪些? 怎样搜索或替换换行符?