1.1 இடைமுகம் சர்வ்லெட்
இன்று நாம் ஒரு புதிய மற்றும் சுவாரஸ்யமான தலைப்பைத் தொடங்குகிறோம் - servlets . ஜாவாவில் சர்வ்லெட்டுகளைச் சேர்ப்பதே பெரிய சர்வர் பயன்பாடுகளுக்கு ஜாவா உண்மையான தரநிலையாக இருக்க வழிவகுத்தது. உலகில் உள்ள அனைத்து நிறுவன மென்பொருள்களில் 80% ஜாவாவில் எழுதப்பட்டுள்ளது. மற்றும் சீனாவில், எல்லாம் 100%. எனவே servlets என்றால் என்ன?
ஒரு சர்வ்லெட் என்பது ஜாவா நிரலை ஒரு வலை சேவையாக மாற்றுகிறது மற்றும் வாடிக்கையாளர்களிடமிருந்து கோரிக்கைகளை செயல்படுத்த அனுமதிக்கிறது. அது இப்படி இருந்தது...
90 களில், உலகளாவிய வலையின் வருகைக்குப் பிறகு, வலை கிளையண்டுகள் (உலாவிகள்) மற்றும் வலை சேவையகங்கள் தோன்றின. இணைய சேவையகங்கள் பொதுவாக தாங்கள் சேமித்து வைத்திருந்த கோப்பை இணையத்தில் விநியோகிக்கின்றன: html பக்கங்கள், ஸ்கிரிப்டுகள், படங்கள் போன்றவை.
ஒரு கட்டத்தில், இரு தரப்பையும் புத்திசாலித்தனமாக மாற்றுவது அவசியம் என்ற முடிவுக்கு அனைவரும் வந்தனர். ஜாவாஸ்கிரிப்ட் HTML பக்கங்களில் சேர்க்கப்பட்டது, மேலும் சேவையகங்களில் செருகுநிரல்கள் சேர்க்கப்பட்டன - சில கோரிக்கைகளுக்கு பதிலளிக்கும் வகையில் அழைக்கப்படும் சிறப்பு ஸ்கிரிப்டுகள் மற்றும் சேவையகத்தின் நடத்தை மிகவும் நெகிழ்வானதாகவும் சிறந்ததாகவும் மாற்றப்பட்டது.
எனவே சர்வ்லெட் என்பது ஜாவா செருகுநிரலாக உள்ளமைக்கப்பட்டு Java web-server
, சில பக்கங்களுக்கு கோரப்படும் போது ஜாவா குறியீட்டை இயக்க அனுமதித்தது. ஏற்கனவே இந்த ஜாவா குறியீடு, சர்வ்லெட் வகுப்பில் இருந்து பெறப்பட்ட ஒரு வகுப்பால் குறிப்பிடப்படுகிறது, அதன் டெவலப்பர்கள் விரும்பியதைச் செய்தனர்.
உங்களுக்கு ஏற்கனவே தெரியும், மிகவும் பிரபலமான ஜாவா வலை சேவையகம் டாம்கேட் ஆகும் . "டாம் அண்ட் ஜெர்ரி" என்ற கார்ட்டூனில் இருந்து டாம் என்ற பூனையின் நினைவாக பெயரிடப்பட்டது.
டாம்கேட் சர்வ்லெட்டுகளுடன் எவ்வாறு தொடர்பு கொள்கிறது? உண்மையில், இந்த செயல்முறை தரப்படுத்தப்பட்டது மற்றும் சர்வ்லெட் வாழ்க்கை சுழற்சி என்று அழைக்கப்படுகிறது . அதில், ஒரு சர்வ்லெட் என்பது ஏற்றக்கூடிய பொருளாகும், மேலும் ஒரு வலை சேவையகம் ஒரு சர்வ்லெட் கொள்கலன் ஆகும் .
சர்வ்லெட் இன்னும் ஏற்றப்படவில்லை என்றால் , பின்:
- சர்வ்லெட் வகுப்பு கொள்கலன் மூலம் ஏற்றப்படுகிறது.
- கொள்கலன் சர்வ்லெட்டின் வகுப்பின் (பொருளின்) நிகழ்வை உருவாக்குகிறது.
- கொள்கலன்
init()
சர்வ்லெட் பொருளில் ஒரு முறையை அழைக்கிறது. முறை ஒரு முறை மட்டுமே அழைக்கப்படுகிறது.
நிலையான வேலை சுழற்சி - வாடிக்கையாளர் கோரிக்கைக்கு சேவை செய்தல் :
- ஒவ்வொரு கோரிக்கையும் ஒரு தனி நூலில் செயலாக்கப்படும்.
- கொள்கலன்
service()
சர்வ்லெட்டில் ஒரு முறையை அழைக்கிறது மற்றும் சர்வ்லெட் ரிக்வெஸ்ட் மற்றும் சர்வ்லெட் ரெஸ்பான்ஸ் பொருள்களை அங்கு அனுப்புகிறது. - சர்வ்லெட்டை நிறுத்த,
destroy()
சர்வ்லெட் பொருளில் ஒரு முறை அழைக்கப்படுகிறது. இது ஒரு முறை மட்டுமே அழைக்கப்படுகிறது.
ஒரு சர்வ்லெட் நிறுத்தப்படுவதற்கு பல காரணங்கள் இருக்கலாம்:
- புரோகிராமர் வலை சேவையகத்தை மறுதொடக்கம் செய்கிறார், அனைத்து சர்வ்லெட்டுகளையும் அழகாக மூடுவது அவசியம்.
- புரோகிராமர் சர்வ்லெட்டின் புதிய பதிப்பை ஏற்றுகிறார், பழையது சரியாக இறக்கப்பட வேண்டும்.
- மற்றும் பல.
முக்கிய விஷயத்தை நினைவில் கொள்ளுங்கள்: வலை சேவையகம் மற்றும் அதன் சேவையகங்கள் தோல்விகள் இல்லாமல் வேலை செய்ய வேண்டும் மற்றும் பல மாதங்களுக்கு மறுதொடக்கம் செய்ய வேண்டும், நிமிடத்திற்கு ஆயிரக்கணக்கான கோரிக்கைகளை வழங்குகின்றன. எனவே, ஒரு சர்வ்லெட்டை ஏற்றுதல், வேலை செய்தல் மற்றும் இறக்குதல் ஆகிய இரண்டிற்கும் குறியீடு எப்போதும் மிக உயர்ந்த தரத்தில் எழுதப்பட வேண்டும்.
1.2 HttpServlet வகுப்பு
சர்வ்லெட் கிளாஸ் ஒரு சர்வ்லெட் மற்றும் கன்டெய்னர் எப்படி வேலை செய்கிறது என்பதை தரப்படுத்த உள்ளது. புரோகிராமர்கள் இந்த வகுப்பில் நேரடியாக வேலை செய்ய மாட்டார்கள். சரி, அவர்கள் அரிதாகவே வேலை செய்கிறார்கள். பொதுவாகப் பயன்படுத்தப்படும் வகுப்பு HttpServlet
சர்வ்லெட்டிலிருந்து பெறப்பட்டது.
இந்த வகுப்பில் நமக்கு பயனுள்ளதாக இருக்கும் பல முறைகள் உள்ளன. நீங்கள் அடிக்கடி அவற்றைப் பயன்படுத்துவீர்கள்:
முறை | விளக்கம் | |
---|---|---|
1 | init() |
சர்வ்லெட் ஏற்றப்பட்டதும் ஒருமுறை அழைத்தார் |
2 | destroy() |
சர்வ்லெட்டை இறக்கியதும் ஒருமுறை அழைத்தார் |
3 | service(HttpRequest, HttpResponse) |
சர்வ்லெட்டுக்கான ஒவ்வொரு புதிய கோரிக்கைக்கும் அழைக்கப்பட்டது |
4 | doGet(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய GET கோரிக்கைக்கும் அழைக்கப்பட்டது |
5 | doPost(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய POST கோரிக்கைக்கும் அழைக்கப்பட்டது |
6 | doHead(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய HEAD கோரிக்கைக்கும் அழைக்கப்பட்டது |
7 | doDelete(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய DELETE கோரிக்கைக்கும் அழைக்கப்பட்டது |
8 | doPut(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய PUT கோரிக்கைக்கும் அழைக்கப்பட்டது |
init()
மற்றும் முறைகள் destroy()
சர்வ்லெட் வகுப்பில் இருந்து பெறப்பட்டவை. எனவே, அவற்றை உங்கள் சர்வ்லெட்டில் மேலெழுத முடிவு செய்தால், அடிப்படை வகுப்பில் இருந்து அவற்றை செயல்படுத்தவும். இதற்கு கட்டளை பயன்படுத்தப்படுகிறது super.method name()
.
சர்வ்லெட் உதாரணம்:
public class FirstHttpServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Getting the parameter “secret” from request
String secret = request.getParameter("secret");
// Put parameter “secret” into Http-session
HttpSession session = request.getSession(true);
session.setAttribute("secret", secret);
// Print HTML as response for browser
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Header</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet example "+ secret +"</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
}
1.3 சேவை (HttpServletRequest, HttpServletResponse) முறை
ஒரு servlet இன் பார்வையில் இருந்து கிளையன்ட் கோரிக்கையின் செயலாக்கத்தைப் பார்த்தால், விஷயங்கள் இப்படித்தான் இருக்கும்.
ஒவ்வொரு கிளையன்ட் கோரிக்கைக்கும், கொள்கலன் (வலை சேவையகம்) உருவாக்குகிறது HttpServletRequest
மற்றும் பொருள்கள் HttpServletResponse
, பின்னர் service(HttpServletRequest request, HttpServletResponse response)
தொடர்புடைய சர்வ்லெட்டில் ஒரு முறையை அழைக்கிறது. இந்த பொருள்கள் அதற்கு அனுப்பப்படுகின்றன, இதனால் முறை தேவையான தரவை எடுத்து request
வேலையின் முடிவை வைக்க முடியும் response
.
இந்த முறை service()
இயல்புநிலை செயலாக்கத்தைக் கொண்டுள்ளது. மறுவரையறை செய்யாவிட்டால், அது செயல்படுத்தப்படும். அதைத்தான் செய்கிறான்.
இந்த முறை service()
HTTP முறையின் வகையை கோரிக்கையிலிருந்து (GET, POST, ...) தீர்மானிக்கிறது மற்றும் கோரிக்கையுடன் தொடர்புடைய முறையை அழைக்கிறது.
முறை | விளக்கம் | |
---|---|---|
1 | service(HttpRequest, HttpResponse) |
சர்வ்லெட்டுக்கான ஒவ்வொரு புதிய கோரிக்கைக்கும் அழைக்கப்பட்டது |
2 | doGet(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய GET கோரிக்கைக்கும் அழைக்கப்பட்டது |
3 | doPost(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய POST கோரிக்கைக்கும் அழைக்கப்பட்டது |
4 | doHead(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய HEAD கோரிக்கைக்கும் அழைக்கப்பட்டது |
5 | doDelete(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய DELETE கோரிக்கைக்கும் அழைக்கப்பட்டது |
6 | doPut(HttpRequest, HttpResponse) |
servlet க்கு ஒவ்வொரு புதிய PUT கோரிக்கைக்கும் அழைக்கப்பட்டது |
உங்கள் வகுப்பில், நீங்கள் ஒரு முறையை மறுவரையறை செய்யலாம் service()
அல்லது அதை அப்படியே விட்டுவிடலாம், ஆனால் தேவைக்கேற்ப முறைகளை மறுவரையறை செய்யலாம் doGet()
, ...doPost()
GO TO FULL VERSION