适合初中级Java程序员修炼手册从0搭建整个Web项目(一)( 三 )

<>();resMap.put("method",req.method().name());resMap.put("uri",uri);String msg = "小六六提醒你你请求uri为:" + uri+"";// 创建http响应DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,HttpResponseStatus.OK,Unpooled.copiedBuffer(msg, CharsetUtil.UTF_8));//设置头信息response.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/html; charset=UTF-8");//把消息输出到浏览器ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {cause.printStackTrace();ctx.close();}}复制代码ApplicationServer 测试类package com.xiaoliuliu.six.finger.web.demo.server;import com.xiaoliuliu.six.finger.web.server.HttpServer;/** * @author 小六六 * @version 1.0 * @date 2020/10/13 14:26 *这个类 用于 搭建Netty web服务器的测试类 , 只适用于搭建教程的第一篇文章 */public class ApplicationServer {public static void main(String[] args) throws Exception {HttpServer server = new HttpServer(8081);// 8081为启动端口server.start();}}复制代码测试结果在浏览器上输入
http://localhost:8081/xiaoliuliu
我们看看输出
适合初中级Java程序员修炼手册从0搭建整个Web项目(一)文章插图
然后我们来看看控制台
适合初中级Java程序员修炼手册从0搭建整个Web项目(一)文章插图
发现多了一次请求 , 这个是什么原因呢?
这是因为HttpRequestDecoder把请求拆分成HttpRequest和HttpContent两部分,
所以我们要过滤哪个/favicon.ico的请求 , 所以改改代码
if("/favicon.ico".equals(uri)) {System.out.println("请求了 favicon.ico, 不做响应");return;}复制代码结尾好了 , 今天我们用几十行代码实现了一个简单的Http服务器 , 很多的细节我们一一讲解 , 但是我的注释基本上都写了 , 如果你有看不懂的地方 , 欢迎你来找我 , 我有空会给大家解答的 , 然后下一章就是我们要写的SpringMVC相关的代码了 。
【适合初中级Java程序员修炼手册从0搭建整个Web项目(一)】作者:六脉神剑链接:来源:掘金著作权归作者所有 。 商业转载请联系作者获得授权 , 非商业转载请注明出处 。


推荐阅读