我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何实现java服务器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何实现java服务器

这篇文章将为大家详细讲解有关如何实现java服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

 一、HTTP

 http请求

 一般一个http请求包括以下三个部分:

 1 请求方法,如get,post

 2 请求头

 3 实体

 一个http请求的实例如下:

GET /index.jsp HTTP/1.1

Host: localhost:8080

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*public class Request {        //输入流    private InputStream input;    //截取url,如http://localhost:8080/index.html ,截取部分为 /index.html    private String uri;    public Request(InputStream inputStream){        this.input = inputStream;    }        public InputStream getInput() {        return input;    }    public void setInput(InputStream input) {        this.input = input;    }    public String getUri() {        return uri;    }    public void setUri(String uri) {        this.uri = uri;    }        //从套接字中读取字符信息    public void parse(){                    StringBuffer request = new StringBuffer(2048);            int i = 0;            byte[] buffer = new byte[2048];                        try {                i = input.read(buffer);            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();                i = -1;            }            for(int j = 0;j<i;j++){                    request.append((char)(buffer[j]));            }            System.out.println(request.toString());            uri = parseUri(request.toString());            }    //截取请求的url    private String parseUri(String requestString){                int index1 = 0;        int index2 = 0;        index1 = requestString.indexOf(' ');        if(index1!=-1){            index2 = requestString.indexOf(' ',index1+1);            if(index2>index1){                return requestString.substring(index1+1,index2);            }        }        return null;    }      }

下面是封装了响应请求的类response:

package com.lwq;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;public class Response {        private static final int BUFFER_SIZE = 1024;    Request request;    OutputStream output;    public Response(OutputStream output){        this.output = output;    }        public void sendStaticResource() throws IOException{                byte[] bytes = new byte[BUFFER_SIZE];        FileInputStream fis = null;                File file = new File(HttpServer.WEB_ROOT,request.getUri());        if(file.exists()){            try {                fis = new FileInputStream(file);                int ch = fis.read(bytes,0,BUFFER_SIZE);                while(ch != -1){                    output.write(bytes,0,ch);                    ch = fis.read(bytes,0,BUFFER_SIZE);                }                            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }catch(IOException e){                e.printStackTrace();            }finally{                if(fis !=null){                    fis.close();                }            }                    }else{            //找不到文件             String errorMessage = "HTTP/1.1 404 File Not Found\r\n" +     "Content-Type: text/html\r\n" +     "Content-Length: 23\r\n" +     "\r\n" +     "File Not Found";             try {                output.write(errorMessage.getBytes());                output.flush();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    public Request getRequest() {        return request;    }    public void setRequest(Request request) {        this.request = request;    }    public OutputStream getOutput() {        return output;    }    public void setOutput(OutputStream output) {        this.output = output;    }    public static int getBUFFER_SIZE() {        return BUFFER_SIZE;    }}

接下来是主程序,

package com.lwq;import java.io.File;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;public class HttpServer {            //WEB_ROOT是服务器的根目录    public static final String WEB_ROOT = System.getProperty("user.dir")+File.separator+"webroot";        //关闭的命令    private static final String SHUTDOWN_COMMAND= "/SHUTDOWN";        public static void main(String[] args) {        // TODO Auto-generated method stub        HttpServer server = new HttpServer();        server.await();    }    public void await(){        ServerSocket serverSocket = null;        int port = 8080;        try {            serverSocket = new ServerSocket(port,1,InetAddress.getByName("127.0.0.1"));            while(true)            {                try {            Socket socket = null;            InputStream input = null;            OutputStream output = null;            socket = serverSocket.accept();            input = socket.getInputStream();            output = socket.getOutputStream();            //封装request请求            Request request = new Request(input);            request.parse();            //封装response对象            Response response = new Response(output);            response.setRequest(request);            response.sendStaticResource();            socket.close();                } catch (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                    continue;                }                        }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }                            }    }

运行httpServer,在浏览器中打下http://localhost:8080/index.jsp,就能看到服务器响应的结果了。

关于“如何实现java服务器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何实现java服务器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何实现java服务器

这篇文章将为大家详细讲解有关如何实现java服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一、HTTP http请求 一般一个http请求包括以下三个部分: 1 请求方法,如get,post 2
2023-06-21

java WebSocket 服务端如何实现

这篇文章给大家分享的是有关java WebSocket 服务端如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.什么是WebSocket  WebSocket协议是基于TCP的一种新的网络协议。它实现了浏
2023-06-29

如何使用java实现客户端与服务器

小编给大家分享一下如何使用java实现客户端与服务器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java可以用来干什么Java主要应用于:1. web开发;2.
2023-06-14

云服务器如何实现

云服务器是一种虚拟的、基于云计算的服务器,它可以通过互联网连接到用户的本地主机上,提供高速、高可靠性的网络接入服务。在现代云服务器中,服务器通常被部署在公有云平台上,用户可以通过公有云平台访问这些资源,而不必购买自己的服务器或租赁专门的空间。云服务器的实现方式有许多种,其中比较常用的包括以下几种:使用VMware虚拟机软件实现:VMware是一种虚拟化软件,用户在虚拟机上安装VMware后
2023-10-26

服务器如何实现cdn

服务器如何实现CDN,主要有以下几个步骤:1. 选择CDN服务提供商:选择一家可靠的CDN服务提供商。2. 配置CDN加速域名:在CDN服务提供商的控制台中,添加需要加速的域名,并进行域名验证。3. 配置源站服务器:将源站服务器的IP地址或
2023-09-16

使用Java如何实现创建一个thrift服务器

使用Java如何实现创建一个thrift服务器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结
2023-05-31

如何通过Java代码实现Jetty的Http服务器

这篇文章主要讲解了“如何通过Java代码实现Jetty的Http服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过Java代码实现Jetty的Http服务器”吧!Jetty是一个轻
2023-07-02

如何实现VB.NET服务器端

小编给大家分享一下如何实现VB.NET服务器端,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这是用VB.NET实现的一个简单的P2P示例,利用了UDP打洞技术.分
2023-06-17

PHP如何实现HTTP服务器

这篇文章主要介绍“PHP如何实现HTTP服务器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP如何实现HTTP服务器”文章能帮助大家解决问题。PHP并非不能实现HTTP服务,一般来讲,这叫网络编
2023-07-05

Java Red5服务器如何实现流媒体视频播放

这篇文章主要介绍Java Red5服务器如何实现流媒体视频播放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应
2023-06-14

云服务器存储如何实现

云服务器存储是指在云平台上创建、使用和管理数据的方式。以下是一些可能涉及到的常见云存储技术:云硬盘(HDD,也称为磁带库):云硬盘是一种可用来存储数据的设备,可以通过网络在多个设备之间传输数据。它们通常与云存储解决方案一起使用,如Dropbox、SkyDrive等。云文件存储(CFS,也称为网络磁盘):CFS是一种流式文件系统,它使得多个设备之间直接访问文件数据。云镜像(EWS,也称为网
2023-10-26

云服务器是如何实现的

云服务器是一种虚拟化计算技术,它可以将计算资源(如计算机、服务器、存储设备等)按需分配给特定的用户群体。具体而言,云服务器通常通过以下几个步骤实现:客户端请求:客户端向云服务器发出请求,获取云服务器资源。云服务器创建和初始化:将请求发送到云服务器的资源存储中。云服务器会创建一个新的资源池,其中包含计算能力、存储空间和其他必要的资源。资源分配:根据用户的请求分配适当的资源。在资源分配时,
2023-10-26

PHP中如何实现socket服务器

这篇文章主要介绍了PHP中如何实现socket服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP中如何实现socket服务器文章都会有所收获,下面我们一起来看看吧。socket的中文名字叫做套接字,这种
2023-07-05

PHP中如何实现WebSocket服务器

在PHP中实现WebSocket服务器可以使用以下步骤:安装PHP WebSocket库,比如Ratchet:composer require cboden/ratchet创建一个PHP文件,用来作为WebSocket服务器的入口文件,比如
PHP中如何实现WebSocket服务器
2024-04-16

利用Java 如何实现个FTP服务功能

本篇文章给大家分享的是有关利用Java 如何实现个FTP服务功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java 实现FTP服务实例详解1、FTP简介 FT
2023-05-31

Java如何实现家政服务平台系统

这期内容当中小编将会给大家带来有关Java如何实现家政服务平台系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、项目简述功能包括: 家政服务网站系统,用户注册,登录,分为家政人员,普 通用户,以及最高
2023-06-25

Java如何实现定时任务

今天小编给大家分享一下Java如何实现定时任务的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、TimerTimer是JAV
2023-07-02

Java如何实现聊天室服务端功能

这篇文章主要介绍“Java如何实现聊天室服务端功能”,在日常操作中,相信很多人在Java如何实现聊天室服务端功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何实现聊天室服务端功能”的疑惑有所帮助!
2023-07-04

编程热搜

目录