初学者:服务端收到请求并且响应成功后页面还是无法正常显示的问题

public void run() {
    try {
        //1 解析请求
        //实例化HttpRequest,使用它来保存客户端发送过来的请求内容
        HttpRequest request =new HttpRequest(socket);
        HttpResponse response=new HttpResponse(socket);
        //2 处理请求
        //通过request获取用户浏览器地址栏中的抽象路径
        String path=request.getUri();
        System.out.println("抽象路径:"+path);
        //测试将webapps/myweb/index.html页面回复给客户端
        File enity=new File("./webapps"+path);
        if(enity.exists()&&enity.isFile()){
            response.setEnity(enity);
            String fileName=enity.getName();
            String ext=fileName.substring(fileName.lastIndexOf(".")+1);
            response.putHeader("Content-Type",HttpContext.getMimeType(ext.toLowerCase()));
            response.putHeader("Content-Length",fileName.length()+"");
            System.out.println("资源已找到");
        }else{
            System.out.println("资源不存在!");
            enity=new File("./webapps/root/404.html");
            response.setEnity(enity);
            response.setStatusCode("404");
            response.setStatusReason("NotFound");
            response.putHeader("Content-Type","text/html");
            response.putHeader("Content-Length",enity.length()+"");
        }
        //3 响应客户端
        response.flush();
        System.out.println("读取完毕");
    } finally {
        try {
            if(socket!=null){
                socket.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

该代码中第18行代码,响应头Content-Length错误,长度不够导致页面无法显示,如下图所示:
因Content-Length设置小于实际文件长度,文件数据被截断只响应了<!DOCTYPE

在这里插入图片描述

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值