8.1 सर्वलेट भाष्यांचा परिचय
आवृत्ती 7 पासून प्रारंभ करून, टॉमकॅटने सर्व्हलेट API 3.0 वेब सर्व्हलेट तपशीलास समर्थन देण्यास सुरुवात केली . विशेषतः, त्यात एक पॅकेज दिसले ज्याचे नाव आहे javax.servlet.annotation
. यामध्ये विविध प्रकारच्या भाष्यांचा समावेश आहे ज्याचा वापर सर्व्हलेट क्लासवर भाष्य करण्यासाठी केला जाऊ शकतो. तुम्ही भाष्य वापरत असल्यास, उपयोजन वर्णनकर्ता (web.xml) आवश्यक नाही.
सर्वात उपयुक्त भाष्यांची यादी:
भाष्य | वर्णन | |
---|---|---|
१ | @WebServlet |
सर्व्हलेट घोषित करते |
2 | @WebInitParam |
इनिशिएलायझेशन पॅरामीटर निर्दिष्ट करते |
3 | @WebFilter |
वेब फिल्टर घोषित करते |
4 | @WebListener |
वेब लायसेनर घोषित करतो |
५ | @ServletSecurity |
तुम्हाला सुरक्षा सेटिंग्ज कॉन्फिगर करण्याची अनुमती देते |
उदाहरण:
@WebServlet( urlPatterns = {"/api/*"} )
public class Example extends HttpServlet {
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Hello World!");
}
}
सर्व्हलेट घोषित करण्यासाठी आणि द्वारे दिलेल्या URL वर येणार्या सर्व विनंत्या पूर्ण करण्यासाठी ते मॅप करण्यासाठी एक भाष्य पुरेसे आहे /api/*
.
8.2 सर्व्हलेट मॅपिंग सेट करणे
भाष्यामध्ये @WebServlet
अनेक पॅरामीटर्स आहेत जे ते वर्णन केलेल्या सर्व्हलेटच्या अतिशय लवचिक कॉन्फिगरेशनला परवानगी देतात. चला मुख्य गोष्टींवर एक नजर टाकूया:
विशेषता | वर्णन | |
---|---|---|
१ | name |
सर्व्हलेट अद्वितीय नाव (web.xml प्रमाणे) |
2 | displayName |
मानवी वाचनीय सर्वलेट नाव |
3 | description |
सर्वलेट वर्णन |
4 | value |
मॅपिंगसाठी url सेट करते |
५ | urlPatterns |
नकाशावर url ची सूची निर्दिष्ट करते (मूल्याऐवजी वापरली जाते) |
6 | initParams |
तुम्हाला सर्व्हलेटचे स्टार्ट पॅरामीटर्स सेट करण्याची परवानगी देते |
७ | asyncSupported |
सर्व्हलेट असिंक्रोनसपणे चालू शकते हे निर्दिष्ट करते (HTTP/2) |
8 | loadOnStartup |
सर्व्हलेट प्रारंभ प्राधान्य नियंत्रित करण्यासाठी अनुक्रम क्रमांक |
९ | smallIcon |
एक लहान सर्वलेट चिन्ह सेट करते |
10 | largeIcon |
एक मोठे सर्वलेट चिन्ह सेट करते |
येथे अनेक मनोरंजक मुद्दे आहेत.
प्रथम, ते लक्षात घ्या value
आणि ते urlPatterns
अदलाबदल करण्यायोग्य गुणधर्म आहेत. ते दोन्ही तुम्हाला URL ची सूची निर्दिष्ट करण्याची परवानगी देतात ज्यावर सर्व्हलेटने मॅप केले पाहिजे.
asyncSupported
दुसरे म्हणजे, सर्वलेट HTTP/2 प्रोटोकॉलवर असिंक्रोनस विनंत्यांवर योग्यरित्या प्रक्रिया करेल की नाही हे पॅरामीटर सूचित करते.
आणि तिसरा महत्त्वाचा गुणधर्म आहे initParams
, तो तुम्हाला सर्व्हलेट कॉन्टेक्स्टमध्ये ठेवलेल्या पॅरामीटर्सची सूची सेट करण्याची परवानगी देतो.
उदाहरण:
@WebServlet(
urlPatterns = {"/sendFile", "/uploadFile"},
loadOnStartup = 1,
asyncSupported = true,
initParams = {
@WebInitParam(name = "saveDir", value = "c:/uploaded"),
@WebInitParam(name = "allowedTypes", value = "jpg,gif,png")
}
)
public class ImageUploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
String saveDir = getInitParameter("saveDir");
String fileTypes = getInitParameter("allowedTypes");
PrintWriter writer = response.getWriter();
writer.println("saveDir = " + saveDir);
writer.println("fileTypes = " + fileTypes);
}
}
8.3 फिल्टर मॅपिंग सेट करणे
वर नमूद केल्याप्रमाणे, फिल्टर हे सर्व्हलेट्सचे युटिलिटी प्रकार आहेत आणि ते सर्व्हलेट्ससारखे कॉन्फिगर केलेले आहेत. येथे भाष्याचे गुणधर्म आहेत @WebFilter
:
विशेषता | वर्णन | |
---|---|---|
१ | filterName |
अद्वितीय नाव फिल्टर करा (web.xml प्रमाणे) |
2 | displayName |
मानवी वाचनीय फिल्टरचे नाव |
3 | description |
फिल्टर वर्णन |
4 | value / urlPatterns |
नकाशावर url ची सूची सेट करते |
५ | dispatcherTypes |
डिस्पॅचर प्रकारांची सूची निर्दिष्ट करते |
6 | servletNames |
लागू करण्यासाठी सर्वलेटची सूची निर्दिष्ट करते |
७ | initParams |
तुम्हाला फिल्टरचे प्रारंभिक पॅरामीटर्स सेट करण्याची अनुमती देते |
8 | asyncSupported |
फिल्टर असिंक्रोनसपणे चालू शकते हे निर्दिष्ट करते (HTTP/2) |
९ | smallIcon |
एक लहान फिल्टर चिन्ह सेट करते |
10 | largeIcon |
एक मोठा फिल्टर चिन्ह सेट करते |
विशिष्ट सर्व्हलेट्सच्या सर्व विनंत्या रोखणाऱ्या फिल्टरचे उदाहरण :
@WebFilter(servletNames = {"MyOwnServlet", "UploadServlet"})
public class MyFilter implements Filter {
// implements Filter's methods here...
}
अनेक पॅरामीटर्स दिलेल्या फिल्टरचे उदाहरण :
@WebFilter(
urlPatterns = "/uploadFilter",
initParams = @WebInitParam(name = "fileTypes", value = "doc;xls;zip;txt;jpg;png;gif")
)
public class UploadFilter implements Filter {
// implements Filter's methods here...
}
RequestDispatcher साठी दिलेल्या फिल्टरचे उदाहरण :
@WebFilter(
urlPatterns = "/admin",
dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}
)
public class MyFilter implements Filter {
// implements Filter's methods here...
}
फिल्टर्स आणि सर्व्हलेट्सच्या उद्देशाबद्दल तुम्ही पुढील लेक्चर्समध्ये अधिक जाणून घ्याल.
GO TO FULL VERSION