2013-01-12 15 views
16
public class HelloWorld extends HttpServlet{ 
     public void doGet(HttpServletRequest request, 
     HttpServletResponse response) 
     throws ServletException,IOException{ 
     **response.setContentType("text/html");** 
     PrintWriter pw = response.getWriter(); 
     pw.println("<html>"); 
     pw.println("<head><title>Hello World</title></title>"); 
     pw.println("<body>"); 
     pw.println("<h1>Hello World</h1>"); 
     pw.println("</body></html>"); 
     } 
    } 
+3

के रूप में सेट करना होगा, यह मूल रूप से क्लाइंट (वेबब्रोसर) को बताता है कि यह किस प्रकार का सामग्री है ताकि यह जान सके कि इसके साथ क्या किया जाए। नोट किया जाना चाहिए कि अब तक दिखाया गया कोड खराब अभ्यास माना जाता है। एचटीएमएल कोड जेएसपी फाइल में है। यह भी देखें http://stackoverflow.com/tags/servlets/info – BalusC

उत्तर

14

सामग्री प्रकारों को HTTP प्रतिक्रियाओं में शामिल किया गया है, क्योंकि सामग्री में मूल्यों के बाइट अनुक्रम के लिए बाइट को और अधिक में व्याख्या किया जा सकता है, तो "response.setContentType (" text/html ")" का उपयोग क्या है। एक तरफ से। (*)

याद रखें कि http केवल HTML (जेएस, सीएसएस और छवियां स्पष्ट उदाहरण हैं) से अधिक परिवहन कर सकती हैं, और कुछ मामलों में, रिसीवर को यह नहीं पता होगा कि यह किस प्रकार की ऑब्जेक्ट प्राप्त करने जा रहा है।


(*) यहां स्पष्ट एक एक्सएचटीएमएल है - जो एक्सएमएल है। यदि इसे application/xml की सामग्री प्रकार के साथ परोसा जाता है, तो रिसीवर को एक्सएमएल के रूप में समझने के लिए चाहिए। यदि इसे application/xhtml+xml के रूप में कार्य किया गया है, तो इसे एक्सएचटीएमएल के रूप में माना जाना चाहिए।

+2

मैं सभी सामग्री प्रकारों की एक सूची कहां प्राप्त कर पाऊंगा? उदाहरण के लिए, अगर मैं एक बूलियन वापस करना चाहता था, तो क्या मुझे इसे JSON ऑब्जेक्ट के रूप में सेट करना होगा और फिर तदनुसार इसे परिवर्तित करना होगा (यानी जीएसओएन का उपयोग करना)? – tccpg288

+0

@ tccpg288 यहां: https://www.iana.org/assignments/media-types/media-types.xhtml और संबंधित प्रश्न: https://stackoverflow.com/questions/23714383/what-are-all-the- संभव-मूल्य-के लिए-http-content-type-header – ylka

1

यह MIME प्रकार में से एक है, इस मामले में आप MIMEtext/html पर प्रतिक्रिया देते हैं इसका मतलब है कि यह HTML प्रकार प्रदर्शित करता है। यह ब्राउज़र के लिए एक जानकारी है। अन्य प्रकार आप एक्सेल प्रदर्शित करने के लिए सेट कर सकते हैं ज़िप आदि अधिक जानकारी के लिए MIME Type देख रहे हैं,

5

इसका मतलब यह आप ग्राहक के लिए भेजना चाहते हैं प्रतिक्रिया किस प्रकार, कुछ सामग्री प्रकार की तरह:

res.setContentType("image/gif"); 
res.setContentType("application/pdf"); 
res.setContentType("application/zip"); 
2
response.setContenType("text/html"); 

ऊपर दिए गए कोड को प्रतिक्रिया के प्रारूप के बारे में ब्राउज़र को सूचित करने के लिए "HTTP प्रतिक्रिया" में शामिल किया जाएगा, ताकि ब्राउज़र इसकी व्याख्या कर सके।

10

JavaEE डॉक्स ServletResponse#setContentType

  • से सेट प्रतिक्रिया की सामग्री प्रकार ग्राहक के लिए भेजा जा रहा है, अगर प्रतिक्रिया अभी तक प्रतिबद्ध नहीं किया गया है।

  • दिया सामग्री प्रकार एक वर्ण एन्कोडिंग विनिर्देश, उदाहरण के लिए,

response.setContentType("text/html;charset=UTF-8");

  • प्रतिक्रिया के वर्ण एन्कोडिंग केवल दिए गए सामग्री प्रकार से सेट किया गया है शामिल हो सकते हैं अगर getWriter से पहले इस विधि को बुलाया जाता है।

  • इस विधि को सामग्री प्रकार और वर्ण एन्कोडिंग बदलने के लिए बार-बार कहा जा सकता है।

  • प्रतिक्रिया के बाद बुलाए जाने पर इस विधि का कोई प्रभाव नहीं पड़ता है। यह प्रतिक्रिया के चरित्र एन्कोडिंग को सेट नहीं करता है अगर इसे getWriter के बाद बुलाया गया है या प्रतिक्रिया के बाद कहा गया है।

  • कंटेनर को सामग्री प्रकार और क्लाइंट एन्कोडिंग को क्लाइंट को सर्वलेट प्रतिक्रिया के लेखक के लिए उपयोग किया जाना चाहिए यदि प्रोटोकॉल ऐसा करने का तरीका प्रदान करता है। HTTP के मामले में, सामग्री-प्रकार शीर्षलेख का उपयोग किया जाता है।

+0

डिफ़ॉल्ट सामग्री पर कोई विचार टाइप और वर्ण एन्कोडिंग अगर कोई स्पष्ट रूप से निर्दिष्ट नहीं है? – Bateman

1

आप ब्राउज़र क्या तुम वापस भेज रहे हैं बताने के लिए इतना है कि ब्राउज़र वीडियो फ़ाइल खेलने के लिए अगर इसकी एक पीडीएफ है कि प्राप्त की जा रही एक व्यूअर के शुरू करने या एक वीडियो खिलाड़ी की शुरूआत की तरह उचित कार्रवाई कर राशि , एचटीएमएल को प्रस्तुत करना यदि सामग्री प्रकार सरल HTML प्रतिक्रिया है, तो डाउनलोड की गई फ़ाइल के रूप में प्रतिक्रिया के बाइट्स को सहेजें,

कुछ सामान्य एमआईएम प्रकार टेक्स्ट/एचटीएमएल, एप्लिकेशन/पीडीएफ, वीडियो/क्विकटाइम, एप्लिकेशन/जावा हैं , छवि/जेपीईजी, आवेदन/जार आदि

आपके मामले में जब से आप HTML आर भेज रहे हैं क्लाइंट को esponse आपको सामग्री प्रकार को टेक्स्ट/एचटीएमएल

+0

ओपी को यह बताने के अलावा कि उन्हें क्या करना है, आपको वास्तव में यह समझाना चाहिए कि यह कैसे करना है (आमतौर पर, इसका मतलब कोड के साथ है।) इसके अलावा, इस पोस्ट में पहले से ही पांच उत्तर हैं, जिनमें से एक स्वीकार किया गया है, और चार साल से है पहले। इस प्रकार, मैं अनुशंसा करता हूं कि आप नए प्रश्नों का उत्तर देने का प्रयास करें। – ostrichofevil

संबंधित मुद्दे