"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में बिना निर्भरता वाला एक वेब सर्वर बनाना

जावा में बिना निर्भरता वाला एक वेब सर्वर बनाना

2024-11-08 को प्रकाशित
ब्राउज़ करें:468

Building a web server with no dependencies in Java

मैं कुछ महीनों से एक हॉबी प्रोजेक्ट पर काम कर रहा हूं, एक एमआईटी लाइसेंस प्राप्त एपीआई गेटवे जिसे किसी विशेष विक्रेता से स्वतंत्र होने के लिए डिज़ाइन किया गया है। ईमानदारी से कहूं तो मुझे लगता है कि यह काफी अच्छा चल रहा है। जैसे-जैसे मेरा कोड आधार बड़ा हुआ है, मुझे मुख्य भाग, यानी HTTP सर्वर, में सुधार के अवसर दिखे हैं। कोर HTTP सर्वर को अपने स्वयं के माइक्रो-फ्रेमवर्क में स्पिन करना एक तार्किक समाधान (और एक महान सीखने का अभ्यास!) की तरह लग रहा था।

किंडलिंग का परिचय, वह ईंधन जो आपके एप्लिकेशन को प्रज्वलित करेगा। किंडलिंग मानक जावा 21 लाइब्रेरी पर आधारित है, जिसमें कोई निर्भरता नहीं है। इसे किसी जादू का उपयोग किए बिना, प्रोग्राम करने योग्य बनाने के लिए डिज़ाइन किया गया है।

यहाँ किंडलिंग के साथ एक सरल हैलो वर्ल्ड है:

package io.kerosenelabs.kindling;

import java.nio.file.Path;
import java.util.HashMap;

import io.kerosenelabs.kindling.constant.HttpMethod;
import io.kerosenelabs.kindling.constant.HttpStatus;
import io.kerosenelabs.kindling.exception.KindlingException;
import io.kerosenelabs.kindling.handler.RequestHandler;

public class Main {
    public static void main(String[] args) throws KindlingException {

        KindlingServer server = KindlingServer.getInstance();

        // test request handler
        server.installRequestHandler(new RequestHandler() {
            /**
             * Tell the server what type of request this handler can work with
             */
            @Override
            public boolean accepts(HttpMethod httpMethod, String resource) throws KindlingException {
                return httpMethod.equals(HttpMethod.GET) && resource.equals("/");
            }

            /**
             * Do your business logic here
             */
            @Override
            public HttpResponse handle(HttpRequest httpRequest) throws KindlingException {
                return new HttpResponse.Builder()
                        .status(HttpStatus.OK)
                        .headers(new HashMap() {
                            {
                                put("Content-Type", "text/html");
                            }
                        })
                        .content("

Hello from Kindling!

") .build(); } }); // serve our server server.serve(8443, Path.of("mykeystore.p12"), "password"); } }

सर्वर पर CURL अनुरोध भेजने से यह प्रतिक्रिया मिलती है:

> GET / HTTP/1.1
> Host: localhost:8443
> User-Agent: curl/7.88.1
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
Hello from Kindling!

...बहुत बढ़िया, है ना?

कुछ बग हैं, जैसे प्रतिक्रिया में सामग्री-लंबाई गायब है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/lahfaille/building-a-web-server-with-no-dependency-in-java-2okh?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3