jersey
जर्सी एमवीसी समर्थन
खोज…
परिचय
स्प्रिंग एमवीसी जैसे एमवीसी फ्रेमवर्क वेब एप्लिकेशन बनाने के लिए उपयोग कर रहे हैं जो गतिशील वेब पेजों की सेवा देते हैं। जर्सी, हालांकि एक REST फ्रेमवर्क के रूप में जाना जाता है, इसके MVC मॉड्यूल का उपयोग करके गतिशील वेब पेज बनाने के लिए भी समर्थन है।
जर्सी एमवीसी हैलो वर्ल्ड
आरंभ करने के लिए, एक नया मावेन वेबैप बनाएं (यह कैसे करें इस उदाहरण के दायरे से बाहर है)। अपने pom.xml में, निम्नलिखित दो निर्भरताएँ जोड़ें
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.25.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-mvc-jsp</artifactId>
<version>2.25.1</version>
</dependency>
पोम में, jetty-maven-plugin
जो हम विकास के दौरान रन एप्लिकेशन का उपयोग करेंगे
<build>
<finalName>jersey-mvc-hello-world</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.8.v20160314</version>
</plugin>
</plugins>
</build>
अब हम अपने नियंत्रक बना सकते हैं। किसी भी एमवीसी ढांचे में, अवधारणाएं आमतौर पर समान होती हैं। आपके पास एक टेम्पलेट है, और आप एक नियंत्रक का उपयोग करके एक मॉडल को पॉप्युलेट करते हैं जिसका उपयोग टेम्पलेट को प्रस्तुत करने के लिए किया जाएगा। यहाँ "रेंडर" शब्द का उपयोग टेम्पलेट और मॉडल को मिलाकर अंतिम HTML पेज बनाने के लिए किया जाता है। उदाहरण के लिए इस टेम्पलेट को लें
src / मुख्य / webapp / वेब-INF / jsp / index.jsp
<html>
<head>
<title>JSP Page</title>
</head>
<body>
<h1>${it.hello} ${it.world}</h1>
</body>
</html>
यह एक JSP फाइल है। JSP जर्सी द्वारा समर्थित टेम्पलेट इंजनों में से एक है। यहां हम दो मॉडल वेरिएबल, hello
और world
का उपयोग कर रहे हैं। यह उम्मीद है कि ये दो चर उस मॉडल में होंगे जो इस टेम्पलेट को प्रस्तुत करने के लिए उपयोग किया जाता है। तो चलिए नियंत्रक जोड़ते हैं
package com.example.controller;
import org.glassfish.jersey.server.mvc.Viewable;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Map;
@Path("/")
public class HomeController {
@GET
@Produces(MediaType.TEXT_HTML)
public Viewable index() {
Map<String, String> model = new HashMap<>();
model.put("hello", "Hello");
model.put("world", "World");
return new Viewable("/index", model);
}
}
आप यहाँ देख सकते हैं हम गुणों के साथ मॉडल को आबाद करने कर रहे हैं hello
और world
। साथ ही कंट्रोलर मेथड का उपयोग किए जाने वाले व्यू टेम्प्लेट का नाम इस केस index
। इसके साथ फ्रेमवर्क "इंडेक्स" टेम्पलेट को पकड़ना जानता है, और इसे रेंडर करने के लिए प्रदान किए गए मॉडल का उपयोग करता है।
अब हमें इसे कॉन्फ़िगर करने की आवश्यकता है। निम्नलिखित के साथ एक ResourceConfig
उपवर्ग जोड़ें
package com.example;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.mvc.jsp.JspMvcFeature;
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("com.example.controller");
property(JspMvcFeature.TEMPLATE_BASE_PATH, "/WEB-INF/jsp");
register(JspMvcFeature.class);
}
}
यहां तीन चीजें चल रही हैं:
हम
@Path
साथ एनोटेट की गई कक्षाओं के लिएcom.example.controller
पैकेज को स्कैन करने के लिए जर्सी को बताने के लिएpackages
का उपयोग करतेpackages
ताकि वह इसे पंजीकृत कर सके। इस मामले में, यह हमारेHomeController
पंजीकृत करता है।हम टेम्प्लेट को हल करने के लिए आधार पथ निर्धारित कर रहे हैं। इस मामले में हम जर्सी को टेम्पलेट्स के लिए
WEB-INF/jsp
में देखने के लिए कह रहे हैं। आप इस निर्देशक में ऊपरindex.jsp
उदाहरण देख सकते हैं। इसके अलावा नियंत्रक में हम सिर्फ टेम्पलेट नामindex
लौटाते हैं। इसका उपयोग टेम्पलेट को खोजने के लिए किया जाएगा, कॉन्फ़िगर बेस पथ को प्रीफ़िक्स करके, और अंतर्निहित.jsp
प्रत्यय.jsp
हमें उस सुविधा को पंजीकृत करना होगा जो JSP रेंडरिंग को हैंडल करती है। जैसा कि पहले उल्लेख किया गया है, JSP जर्सी द्वारा समर्थित एकमात्र रेंडरिंग इंजन नहीं है। बॉक्स से बाहर कुछ और समर्थित हैं।
आखिरी चीज जो हमें करने की ज़रूरत है वह है जर्सी को web.xml में कॉन्फ़िगर करना
<filter>
<filter-name>Jersey</filter-name>
<filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.AppConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<url-pattern>/*</url-pattern>
<filter-name>Jersey</filter-name>
</filter-mapping>
यहाँ हम सिर्फ अपने AppConfig
वर्ग का उपयोग करने के लिए जर्सी को कॉन्फ़िगर कर रहे हैं। यहाँ इंगित करने के लिए एक बहुत ही महत्वपूर्ण बात, यह है कि आप आमतौर पर एक <servlet>
क्या देखेंगे, इसके बजाय <filter>
उपयोग होता है। टेम्पलेट इंजन के रूप में JSP का उपयोग करते समय यह आवश्यक है।
अब हम इसे चला सकते हैं। कमांड लाइन रन mvn jetty:run
। यह मावेन जेट्टी प्लगइन चलाएगा जिसे हमने पहले कॉन्फ़िगर किया था। जब आप "स्टार्टेड जेट्टी सर्वर" देखते हैं, तो सर्वर तैयार हो जाता है। ब्राउजर यूआरएल http://localhost:8080/
। वोइला, "हैलो वर्ल्ड"। का आनंद लें।
अधिक जानकारी के लिए, MVC टेम्प्लेट के लिए जर्सी प्रलेखन देखें