8.1 சர்வ்லெட் சிறுகுறிப்புகளுக்கான அறிமுகம்
பதிப்பு 7 இல் தொடங்கி, டாம்கேட் சர்வ்லெட் ஏபிஐ 3.0 வெப் சர்வ்லெட் விவரக்குறிப்பை ஆதரிக்கத் தொடங்கியது . குறிப்பாக, அதில் ஒரு தொகுப்பு தோன்றியது javax.servlet.annotation
. இது பல்வேறு வகையான சிறுகுறிப்புகளைக் கொண்டுள்ளது, அவை ஒரு சர்வ்லெட் வகுப்பை சிறுகுறிப்பு செய்ய பயன்படுத்தப்படலாம். நீங்கள் சிறுகுறிப்பைப் பயன்படுத்தினால், வரிசைப்படுத்தல் விளக்கி (web.xml) தேவையில்லை.
மிகவும் பயனுள்ள சிறுகுறிப்புகளின் பட்டியல்:
சிறுகுறிப்பு | விளக்கம் | |
---|---|---|
1 | @WebServlet |
ஒரு சேவையகத்தை அறிவிக்கிறது |
2 | @WebInitParam |
துவக்க அளவுருவைக் குறிப்பிடுகிறது |
3 | @WebFilter |
இணைய வடிகட்டியை அறிவிக்கிறது |
4 | @WebListener |
இணைய உரிமதாரர் அறிவிக்கிறார் |
5 | @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!");
}
}
ஒரு servlet ஐ அறிவிக்கவும், URL க்கு வரும் அனைத்து கோரிக்கைகளையும் வழங்க வரைபடத்தை உருவாக்கவும் ஒரு சிறுகுறிப்பு போதுமானது /api/*
.
8.2 சர்வ்லெட் மேப்பிங்கை அமைத்தல்
சிறுகுறிப்பில் @WebServlet
பல அளவுருக்கள் உள்ளன, அவை விவரிக்கும் சர்வ்லெட்டின் மிகவும் நெகிழ்வான உள்ளமைவை அனுமதிக்கின்றன. முக்கியவற்றைப் பார்ப்போம்:
பண்பு | விளக்கம் | |
---|---|---|
1 | name |
சர்வ்லெட்டின் தனித்துவமான பெயர் (web.xml இல் உள்ளது போல) |
2 | displayName |
மனிதனால் படிக்கக்கூடிய சர்வ்லெட் பெயர் |
3 | description |
சர்வ்லெட் விளக்கம் |
4 | value |
மேப்பிங்கிற்கான url ஐ அமைக்கிறது |
5 | urlPatterns |
வரைபடத்திற்கான urlகளின் பட்டியலைக் குறிப்பிடுகிறது (மதிப்புக்குப் பதிலாகப் பயன்படுத்தப்படுகிறது) |
6 | initParams |
servlet இன் தொடக்க அளவுருக்களை அமைக்க உங்களை அனுமதிக்கிறது |
7 | asyncSupported |
சர்வ்லெட் ஒத்திசைவற்ற முறையில் இயங்க முடியும் என்பதைக் குறிப்பிடுகிறது (HTTP/2) |
8 | loadOnStartup |
சர்வ்லெட் தொடக்க முன்னுரிமையைக் கட்டுப்படுத்த வரிசை எண் |
9 | smallIcon |
சிறிய சர்வ்லெட் ஐகானை அமைக்கிறது |
10 | largeIcon |
பெரிய சர்வ்லெட் ஐகானை அமைக்கிறது |
இங்கே பல சுவாரஸ்யமான புள்ளிகள் உள்ளன.
முதலில், value
அவை urlPatterns
ஒன்றுக்கொன்று மாற்றக்கூடிய பண்புக்கூறுகள் என்பதைக் கவனியுங்கள். சர்வ்லெட் வரைபடமாக்க வேண்டிய URLகளின் பட்டியலைக் குறிப்பிட அவை இரண்டும் உங்களை அனுமதிக்கின்றன.
asyncSupported
இரண்டாவதாக, HTTP/2 நெறிமுறையில் ஒத்திசைவற்ற கோரிக்கைகளை சர்வ்லெட் சரியாக செயல்படுத்துமா என்பதை அளவுரு குறிப்பிடுகிறது.
மூன்றாவது முக்கியமான பண்புக்கூறு initParams
, இது ServletContext இல் வைக்கப்படும் அளவுருக்களின் பட்டியலை அமைக்க உங்களை அனுமதிக்கிறது.
உதாரணமாக:
@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
:
பண்பு | விளக்கம் | |
---|---|---|
1 | filterName |
தனிப்பட்ட பெயரை வடிகட்டவும் (web.xml இல் உள்ளது போல) |
2 | displayName |
மனிதனால் படிக்கக்கூடிய வடிகட்டி பெயர் |
3 | description |
வடிகட்டி விளக்கம் |
4 | value / urlPatterns |
வரைபடத்திற்கான urlகளின் பட்டியலை அமைக்கிறது |
5 | dispatcherTypes |
DispatcherTypes பட்டியலைக் குறிப்பிடுகிறது |
6 | servletNames |
விண்ணப்பிக்க வேண்டிய சர்வ்லெட்டுகளின் பட்டியலைக் குறிப்பிடுகிறது |
7 | initParams |
வடிகட்டியின் தொடக்க அளவுருக்களை அமைக்க உங்களை அனுமதிக்கிறது |
8 | asyncSupported |
வடிப்பான் ஒத்திசைவின்றி இயங்க முடியும் என்பதைக் குறிப்பிடுகிறது (HTTP/2) |
9 | 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