前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 技术篇 - 启动web服务接收浏览器请求并响应实例演示,解决socket响应浏览器显示中文乱码问题,web服务response响应设置浏览器显示字体方法

Java 技术篇 - 启动web服务接收浏览器请求并响应实例演示,解决socket响应浏览器显示中文乱码问题,web服务response响应设置浏览器显示字体方法

作者头像
小蓝枣
发布2021-12-01 13:54:34
8140
发布2021-12-01 13:54:34
举报
文章被收录于专栏:CSDN博客专家-小蓝枣的博客

先看下效果图: 我通过 127.0.0.1:10010 访问我启用服务的效果图。

在这里插入图片描述
在这里插入图片描述

后台接收到的前台请求如下:

GET / HTTP/1.1 Host: 127.0.0.1:10010 Connection: keep-alive sec-ch-ua: " Not;A Brand";v=“99”, “Google Chrome”;v=“91”, “Chromium”;v=“91” sec-ch-ua-mobile: ?0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9 Sec-Fetch-Site: none Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9

下面是源码: 其中响应主体的 <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> 可以解决中文内容下的乱码问题。 <style>body{font-family:\"黑体\"}</style> 可以设置文本的字体样式。

代码语言:javascript
复制
package com.test.test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketTest {
    public static void main(String[] args) throws IOException {
        /*
         作用:接收浏览器的请求并响应
         作者:小蓝枣
        */

        // 创建服务,端口设置为10010
        ServerSocket server = new ServerSocket(10010);

        while(true) {

            // 阻塞式连接,当接收请求前保持阻塞
            Socket socket_client = server.accept();

            // 获取输入流
            InputStream in_put = socket_client.getInputStream();

            // 创建一个缓冲数组
            byte data[] = new byte[4096];

            // 将数据读取到缓冲数组中,会返回数据的长度
            in_put.read(data);

            // 制作响应报文
            StringBuffer response = new StringBuffer();

            // 打印请求的数据
            String date_request = new String(data);
            System.out.println(date_request);

            // 响应头部
            String response_head = "HTTP/1.1 200 OK\r\n" +
                    "Content-type:text/html\r\n\r\n";

            // 响应主体
            String response_body = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">" +  // 解决乱码问题
                    "<style>body{font-family:\"黑体\"}</style>" +
                    "欢迎来到小蓝枣的博客<br>" +
                    "Welcome to xiaolanzao's blog!";

            response.append(response_head + response_body);

            // 获取输出流
            OutputStream out_put = socket_client.getOutputStream();

            // 将响应数据传给输出流
            out_put.write(response.toString().getBytes());

            // 关闭创建的对象
            out_put.close();
            in_put.close();
            socket_client.close();
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档