కోడ్‌జిమ్/జావా కోర్సు/మాడ్యూల్ 3/ఉల్లేఖనాలతో వెబ్ అప్లికేషన్‌లను అనుకూలీకరించడం

ఉల్లేఖనాలతో వెబ్ అప్లికేషన్‌లను అనుకూలీకరించడం

అందుబాటులో ఉంది

8.1 సర్వ్లెట్ ఉల్లేఖనాలకు పరిచయం

వెర్షన్ 7తో ప్రారంభించి, టామ్‌క్యాట్ సర్వ్లెట్ API 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!");
    }
}

సర్వ్‌లెట్‌ని డిక్లేర్ చేయడానికి మరియు ద్వారా అందించబడిన URLకి వచ్చే అన్ని అభ్యర్థనలను అందించడానికి దాన్ని మ్యాప్ చేయడానికి ఒక ఉల్లేఖన సరిపోతుంది /api/*.

8.2 సర్వ్‌లెట్ మ్యాపింగ్‌ని సెటప్ చేస్తోంది

ఉల్లేఖన @WebServletఅనేక పారామితులను కలిగి ఉంది, అది వివరించే సర్వ్‌లెట్ యొక్క చాలా సౌకర్యవంతమైన కాన్ఫిగరేషన్‌ను అనుమతిస్తుంది. ప్రధానమైన వాటిని పరిశీలిద్దాం:

గుణం వివరణ
1 name సర్వ్లెట్ ప్రత్యేక పేరు (web.xmlలో వలె)
2 displayName హ్యూమన్ రీడబుల్ సర్వ్లెట్ పేరు
3 description సర్వ్లెట్ వివరణ
4 value మ్యాపింగ్ కోసం urlని సెట్ చేస్తుంది
5 urlPatterns మ్యాప్ చేయడానికి urlల జాబితాను పేర్కొంటుంది (విలువకు బదులుగా ఉపయోగించబడుతుంది)
6 initParams సర్వ్లెట్ యొక్క ప్రారంభ పారామితులను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది
7 asyncSupported సర్వ్లెట్ అసమకాలికంగా అమలు చేయగలదని పేర్కొంటుంది (HTTP/2)
8 loadOnStartup సర్వ్లెట్ ప్రారంభ ప్రాధాన్యతను నియంత్రించడానికి సీక్వెన్స్ నంబర్
9 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:

గుణం వివరణ
1 filterName ప్రత్యేక పేరును ఫిల్టర్ చేయండి (web.xmlలో వలె)
2 displayName మనుషులు చదవగలిగే ఫిల్టర్ పేరు
3 description ఫిల్టర్ వివరణ
4 value / urlPatterns మ్యాప్ చేయడానికి urlల జాబితాను సెట్ చేస్తుంది
5 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...
}

మీరు క్రింది ఉపన్యాసాలలో ఫిల్టర్‌లు మరియు సర్వ్‌లెట్‌ల ప్రయోజనం గురించి మరింత తెలుసుకుంటారు.

వ్యాఖ్యలు
  • జనాదరణ పొందినది
  • కొత్తది
  • పాతది
వ్యాఖ్యానించడానికి మీరు తప్పనిసరిగా సైన్ ఇన్ చేసి ఉండాలి
ఈ పేజీకి ఇంకా ఎలాంటి వ్యాఖ్యలు లేవు