7.1 web.xml యొక్క సాధారణ స్కీమా
web.xml ఫైల్ అప్లికేషన్ కాన్ఫిగరేషన్ సమాచారాన్ని నిల్వ చేస్తుంది. ఇది దానిలో తప్పనిసరి భాగం కాదు, కానీ ఇది వెబ్ అప్లికేషన్ను కాన్ఫిగర్ చేయడానికి చాలా విస్తృతంగా ఉపయోగించబడుతుంది.
ఈ ఫైల్ తప్పనిసరిగా WEB-INF ఫోల్డర్లో ఉండాలి . టామ్క్యాట్ ప్రారంభించినప్పుడు, అది దాని కంటెంట్లను చదివి అందులో ఉన్న కాన్ఫిగరేషన్ను ఉపయోగిస్తుంది. ఫైల్ లోపాలను కలిగి ఉంటే, టామ్క్యాట్ కూడా లోపాన్ని ప్రదర్శిస్తుంది.
ఉదాహరణ web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
"HelloWorld"
సర్వ్లెట్ పేరు మరియు సర్వ్లెట్ క్లాస్ యొక్క మ్యాపింగ్ ఇక్కడ ఆకుపచ్చ రంగులో వ్రాయబడింది"HelloServlet"
. సర్వ్లెట్ పేరు మరియు URL భాగం యొక్క మ్యాపింగ్ నీలం రంగులో వ్రాయబడింది"HelloWorld"
"http://localhost/welcome"
. అందువల్ల, /స్వాగత మార్గాన్ని యాక్సెస్ చేస్తున్నప్పుడు, మీరు సర్వ్లెట్కు కాల్ చేయాల్సి ఉంటుందని ఇక్కడ చెబుతోంది HelloServlet.class
.
ఎరుపు రంగు అభ్యర్థనపై ఇవ్వాల్సిన ఫైల్ను సూచిస్తుంది http://localhost/
- ఇది స్వాగత పేజీ అని పిలవబడేది . వినియోగదారు బ్రౌజర్లో మా వెబ్ అప్లికేషన్ యొక్క రూట్కు సంబంధించిన పేరును టైప్ చేస్తే, దానిలోని కంటెంట్లు index.html
.
7.2 సర్వ్లెట్, సర్వ్లెట్-మ్యాపింగ్
ఒక సర్వ్లెట్ వివిధ URLలలో అభ్యర్థనలను అందించగలదు, కాబట్టి వెబ్-xmlలో, సర్వ్లెట్ మరియు URLలకు దాని మ్యాపింగ్ విడిగా వ్రాయబడతాయి. మొదట, మేము సర్వ్లెట్లను వివరిస్తాము, ప్రతిదానికి ప్రత్యేకమైన స్ట్రింగ్ పేరును ఇస్తాము, ఆపై ప్రతి సర్వ్లెట్ ఏ urlకి ఎలా మ్యాప్ చేయాలో నిర్దేశిస్తాము.
ఉదాహరణ web.xml:
<web-app>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>com.codegym.RemotingServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>restapi</servlet-name>
<servlet-class>com.codegym.RestApiServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restapi</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
ఈ ఉదాహరణలో, రెండు సర్వ్లెట్లు ప్రకటించబడ్డాయి మరియు ప్రతి ఒక్కటి వేరే url టెంప్లేట్కు మ్యాప్ చేయబడతాయి. కు వెళ్ళే అన్ని అభ్యర్థనలను సర్వ్లెట్RemotingServlet
/remoting/*
అందిస్తుంది . కు వెళ్ళే అన్ని అభ్యర్థనలను సర్వ్లెట్RestApiServlet
/api/*
అందిస్తుంది . సర్వ్లెట్లు లోడ్ నుండి ఆర్డర్ను కూడా కలిగి ఉంటాయి - లోడ్-ఆన్-స్టార్టప్ పరామితి.
7.3 సర్వ్లెట్ ఎంపికలు
web.xml సహాయంతో, పారామీటర్లను సర్వ్లెట్ ప్రారంభించే సమయంలో పంపవచ్చు, అవి ఇంటర్ఫేస్ ద్వారా అందుబాటులో ఉంటాయి ServletConfig
. మీరు మొత్తం వెబ్ అప్లికేషన్ కోసం పారామితులను కూడా సెట్ చేయవచ్చు, అవి ద్వారా అందుబాటులో ఉంటాయి ServletContext
.
ఉదాహరణ web.xml:
<web-app>
<context-param>
<description>Server production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>appPropertiesConfig</param-name>
<param-value>
classpath:local-app.properties
classpath:web-app.properties
</param-value>
</context-param>
<servlet>
<servlet-name>mainservlet</servlet-name>
<servlet-class>com.codegym.ApplicationServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>com.codegym.App</param-value>
</init-param>
<init-param>
<param-name>widgetset</param-name>
<param-value>com.codegym.WidgetSet</param-value>
</init-param>
<init-param>
<param-name>ui</param-name>
<param-value>com.codegym.AppUI</param-value>
</init-param>
</servlet>
</web-app>
ఆకుపచ్చ రంగులో హైలైట్ చేయబడిన కోడ్లో మేము పారామితులను సెట్ చేస్తాముServletContext
. వాటిలో రెండు ఉన్నాయి:
productionMode
తప్పుడు విలువతోappPropertiesConfig
రెండు తీగల శ్రేణితో:classpath:local-app.properties
classpath:web-app.properties
సర్వ్లెట్ కోసం పారామితులు నీలం రంగులో సూచించబడ్డాయిApplicationServlet
, అవి దీని ద్వారా అందుబాటులో ఉంటాయి ServletConfig
:
application
com.codegym.App విలువతోwidgetset
com.codegym.WidgetSet విలువతోui
com.codegym.AppUI విలువతో
7.4 ఫిల్టర్, ఫిల్టర్-మ్యాపింగ్
వెబ్ అప్లికేషన్ ప్రత్యేకతను కూడా కలిగి ఉండవచ్చు utility servlets - filters
. వారు వివిధ సేవా పనులను నిర్వహిస్తారు: కాల్లను దారి మళ్లించడం, అధికారాన్ని తనిఖీ చేయడం మొదలైనవి.
ఉదాహరణ web.xml:
<web-app>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>RemotingServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting </servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>total_filter</filter-name>
<filter-class>com.javrush.TotalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>total_filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
అభ్యర్థన సర్వ్లెట్కు చేరే ముందు RemotingServlet
, అది ఫిల్టర్ ద్వారా ప్రాసెస్ చేయబడుతుంది TotalFiler
. ఈ ఫిల్టర్ మా వెబ్ అప్లికేషన్కు వెళ్లే అన్ని అభ్యర్థనలను అడ్డగించేలా కాన్ఫిగర్ చేయబడింది . ఇది మ్యాప్ చేయబడిన url టెంప్లేట్ ద్వారా ఇది స్పష్టంగా సూచించబడింది: /*
.
మీరు క్రింది ఉపన్యాసాలలో సర్వ్లెట్లు మరియు ఫిల్టర్ల గురించి మరింత చదువుతారు.
GO TO FULL VERSION