Jakarta Server Pages
જકાર્તા સર્વર પૃષ્ઠો (જે. એસ. પી.; અગાઉ જાવાસર્વર પૃષ્ઠો) એ એવી તકનીકોનો સંગ્રહ છે જે સોફ્ટવેર વિકાસકર્તાઓને એચ. ટી. એમ. એલ., એક્સ. એમ. એલ., એસ. ઓ. એ. પી. અથવા અન્ય દસ્તાવેજ પ્રકારોના આધારે ગતિશીલ રીતે જનરેટ કરેલા વેબ પૃષ્ઠો બનાવવામાં મદદ કરે છે. સન માઇક્રોસિસ્ટમ્સ દ્વારા 1999માં રજૂ કરાયેલ, જે. એસ. પી. એ પી. એચ. પી. અને એ. એસ. પી. જેવું જ છે, પરંતુ તે જાવા પ્રોગ્રામિંગ ભાષાનો ઉપયોગ કરે છે. જકાર્તા સર્વર પૃષ્ઠોને જમાવવા અને ચલાવવા માટે, અપાચે ટોમકેટ અથવા જેટ્ટી જેવા સર્વલેટ કન્ટેનર સાથે સુસંગત વેબ સર્વર જરૂરી છે. આર્કિટેક્ચરલ રીતે, જે. એસ. પી. ને જાવા સર્વલેટ્સના ઉચ્ચ-સ્તરના અમૂર્ત તરીકે જોવામાં આવી શકે છે. જે. એસ. પી. ને રનટાઇમ પર સર્વલેટમાં અનુવાદિત કરવામાં આવે છે, તેથી જે. એસ. પી. એ સર્વલેટ છે; દરેક જે. એસ. પી. સર્વલેટને કેશ કરવામાં આવે છે અને જ્યાં સુધી મૂળ જે. એસ. પી. માં ફેરફાર ન થાય ત્યાં સુધી તેનો ફરીથી ઉપયોગ કરવામાં આવે છે. જકાર્તા સર્વર પૃષ્ઠોનો ઉપયોગ સ્વતંત્ર રીતે અથવા સર્વર-સાઇડ મોડેલ-વ્યૂ-કંટ્રોલર ડિઝાઇનના દૃશ્ય ઘટક તરીકે થઈ શકે છે, સામાન્ય રીતે મોડેલ તરીકે જાવાબીન્સ અને નિયંત્રક તરીકે જાવા સર્વલેટ્સ (અથવા અપાચે સ્ટ્રટ્સ જેવા માળખા) સાથે. આ મોડલ 2 આર્કિટેક્ચરનો એક પ્રકાર છે. જે. એસ. પી. જાવા કોડ અને અમુક પૂર્વવ્યાખ્યાયિત ક્રિયાઓને એચ. ટી. એમ. એલ. જેવી સ્થિર વેબ માર્કઅપ સામગ્રી સાથે જોડવાની મંજૂરી આપે છે. પરિણામી પૃષ્ઠ દસ્તાવેજને પહોંચાડવા માટે સર્વર પર સંકલિત અને ચલાવવામાં આવે છે. સંકલિત પૃષ્ઠો, તેમજ કોઈપણ આશ્રિત જાવા લાઈબ્રેરીઓમાં મશીન કોડને બદલે જાવા બાઈટકોડ હોય છે. અન્ય કોઈપણ. જાર અથવા જાવા પ્રોગ્રામની જેમ, કોડને જાવા વર્ચ્યુઅલ મશીન (જેવીએમ) ની અંદર અમલમાં મૂકવો આવશ્યક છે જે અમૂર્ત, પ્લેટફોર્મ-તટસ્થ વાતાવરણ પ્રદાન કરવા માટે સર્વરની યજમાન ઓપરેટિંગ સિસ્ટમ સાથે ક્રિયાપ્રતિક્રિયા કરે છે. જે. એસ. પી. નો ઉપયોગ સામાન્ય રીતે એચ. ટી. એમ. એલ. અને એક્સ. એમ. એલ. દસ્તાવેજો પહોંચાડવા માટે થાય છે, પરંતુ આઉટપુટસ્ટ્રીમના ઉપયોગ દ્વારા તેઓ અન્ય પ્રકારના ડેટા પણ પહોંચાડી શકે છે. વેબ કન્ટેનર વિનંતી, પ્રતિસાદ, સત્ર, એપ્લિકેશન, રૂપરેખાંકન, પૃષ્ઠ, પૃષ્ઠકન્ટેક્સ્ટ, આઉટ અને અપવાદ જેવા JSP ગર્ભિત પદાર્થો બનાવે છે. જે. એસ. પી. એન્જિન અનુવાદ તબક્કા દરમિયાન આ પદાર્થો બનાવે છે. વાક્યરચના નિર્દેશો, સ્ક્રિપ્ટલેટ અને અભિવ્યક્તિઓ, ઘોષણા જે. એસ. પી. સ્ક્રિપ્ટિંગ કાર્યો માટે કેટલાક સીમાંકનો ઉપયોગ કરે છે. સૌથી મૂળભૂત <%.%> છે, જે JSP સ્ક્રિપ્ટલેટને જોડે છે. સ્ક્રિપ્ટલેટ એ જાવા કોડનો એક ટુકડો છે જે વપરાશકર્તા પૃષ્ઠની વિનંતી કરે ત્યારે ચાલે છે. અન્ય સામાન્ય સીમાંકનોમાં અભિવ્યક્તિઓ માટે <% =.%> નો સમાવેશ થાય છે, જ્યાં સ્ક્રિપ્ટલેટ અને સીમાંકનોને અભિવ્યક્તિના મૂલ્યાંકનના પરિણામ સાથે બદલવામાં આવે છે, અને નિર્દેશો, જે <% @.%> સાથે સૂચવવામાં આવે છે. જાવા કોડ એક જ સ્ક્રિપ્ટલેટ બ્લોકમાં સંપૂર્ણ અથવા સ્વ-સમાવિષ્ટ હોવો જરૂરી નથી. તે માર્કઅપ સામગ્રીને ફેલાવી શકે છે, જો કે સંપૂર્ણ પૃષ્ઠ વાક્યરચનાત્મક રીતે સાચું હોય. ઉદાહરણ તરીકે, કોઈપણ જાવા જો/માટે/જ્યારે એક સ્ક્રિપ્ટલેટમાં ખોલવામાં આવેલા બ્લોક્સ પૃષ્ઠને સફળતાપૂર્વક સંકલન કરવા માટે પછીની સ્ક્રિપ્ટલેટમાં યોગ્ય રીતે બંધ હોવા જોઈએ. આ કોડને એકબીજા સાથે જોડવાની મંજૂરી આપે છે અને નબળી પ્રોગ્રામિંગ પ્રથાઓમાં પરિણમી શકે છે. જે સામગ્રી જાવા કોડના વિભાજીત બ્લોક (બહુવિધ સ્ક્રિપ્ટલેટમાં ફેલાયેલી) ની અંદર આવે છે તે તે કોડને આધિન છે. આઇએફ બ્લોકની અંદરની સામગ્રી આઉટપુટમાં ત્યારે જ દેખાશે જ્યારે આઇએફ શરત સાચું હોવાનું મૂલ્યાંકન કરે. તેવી જ રીતે, લૂપ માળખાની અંદરની સામગ્રી આઉટપુટમાં ઘણી વખત દેખાઈ શકે છે, જે લૂપ બોડી કેટલી વાર ચાલે છે તેના આધારે હોય છે. ઉદાહરણ JSP પૃષ્ઠમાં લૂપ માટે નીચે મુજબ માન્ય રહેશેઃ <p> ત્રણની ગણતરીઃ </p> <% માટે (પૂર્ણાંક i = 1; i <4; i + +) {%> <p> આ સંખ્યા <% = i%> છે. </p> <%}%> <p> બરાબર. </p> વપરાશકર્તાના વેબ બ્રાઉઝરમાં પ્રદર્શિત આઉટપુટ હશેઃ ત્રણની ગણતરીઃ આ સંખ્યા 1 છે. આ સંખ્યા 2 છે. આ સંખ્યા 3 છે. ઠીક છે. પ્રમાણભૂત JSP ટૅગ્સ ઉપયોગબીયન ટૅગ JSP ઉપયોગબીયન ટૅગ વિકાસકર્તાને જાવાબીનને ઍક્સેસ કરવા અને બનાવવા માટે સક્ષમ કરે છે. યુઝબીન ટેગનો ઉપયોગ એચ. ટી. એમ. એલ. ટેગ જેવો જ હોવા છતાં, જાવાબીન્સ માટેના તમામ જે. એસ. પી. ટેગ એક્સ. એમ. એલ. વાક્યરચનાનો ઉપયોગ કરે છે. તેથી યુઝબીન ટેગ ધરાવતો કોડ કેસ-સેન્સિટિવ છે. યુઝબીન ટેગમાં અનેક વિશેષતાઓ છે. આઈ. ડી. લક્ષણ એ નામ જાહેર કરે છે જેનો ઉપયોગ કઠોળ મેળવવા માટે થાય છે. વર્ગ લક્ષણ બીન માટે પેકેજ અને વર્ગ જાહેર કરે છે. આ અવકાશ બીન સંગ્રહિત કરવા માટે જવાબદાર પદાર્થને જાહેર કરે છે. અવકાશ માટેનું મૂલ્ય એ સમયગાળાને વ્યાખ્યાયિત કરે છે કે જેના માટે બાકીની જાવા એપ્લિકેશનનો ઉપયોગ કરવા માટે બીન ઉપલબ્ધ છે. અવકાશ નીચેના ચાર મૂલ્યોમાંથી એક હોઈ શકે છેઃ અવકાશ સૂચવે છે કે કઠોળ સ્પષ્ટ રીતે વ્યાખ્યાયિત પદાર્થમાં સ્થિત છે, અને તે ફક્ત વર્તમાન પૃષ્ઠ માટે જ ઉપલબ્ધ છે. મૂળભૂત રીતે, બધા કઠોળનો અવકાશ હોય છે. અવકાશ સૂચવે છે કે બીન પદાર્થમાં મળી શકે છે. આ બીન અન્ય તમામ જે. એસ. પી. અને સર્વલેટ દ્વારા એક્સેસ કરી શકાય છે જે વર્તમાન વિનંતી ઑબ્જેક્ટની ઍક્સેસ ધરાવે છે. અવકાશ સૂચવે છે કે બીન પદાર્થમાં મળી શકે છે. આ કઠોળ અન્ય તમામ જે. એસ. પી. અને સર્વલેટ દ્વારા મેળવી શકાય છે જે ચોક્કસ પદાર્થની ઍક્સેસ ધરાવે છે. અવકાશ સૂચવે છે કે બીન પદાર્થમાં મળી શકે છે. આ કઠોળ અન્ય તમામ જે. એસ. પી. અને સર્વલેટ દ્વારા મેળવી શકાય છે જે ચોક્કસ પદાર્થની ઍક્સેસ ધરાવે છે. ગેટપ્રોપર્ટી અને સેટપ્રોપર્ટી ટેગ્સ બીન ટેગનો ઉપયોગ કરીને બીન બનાવ્યા પછી, ગેટપ્રોપર્ટી અને સેટપ્રોપર્ટી ટેગનો ઉપયોગ બીનનાં ગુણધર્મો મેળવવા અને સેટ કરવા માટે કરી શકાય છે. જે. એસ. પી. ગેટપ્રોપર્ટીનો ઉપયોગ બનાવેલા કઠોળની મિલકત મેળવવા માટે થાય છે. જે. એસ. પી. સેટ પ્રોપર્ટી ટેગનો ઉપયોગ બીન માટે ગુણધર્મો સેટ કરવા માટે થાય છે. ગેટપ્રોપર્ટી અને સેટપ્રોપર્ટી ટેગ માટે, બીનનું નામ સ્પષ્ટ કરવા માટે નામ લક્ષણનો ઉપયોગ થાય છે. તેથી નામ એટ્રિબ્યુટ યુઝબીન ટેગ દ્વારા પૂરા પાડવામાં આવેલ આઇ. ડી. એટ્રિબ્યુટ સાથે મેળ ખાતું હોવું જોઈએ. JSP સ્પષ્ટીકરણના એક્સપ્રેશન લેંગ્વેજ વર્ઝન 2એ એક્સપ્રેશન લેંગ્વેજ (EL) માટે સપોર્ટ ઉમેર્યો, જેનો ઉપયોગ જાવા ઓબ્જેક્ટ્સમાં ડેટા અને કાર્યોને ઍક્સેસ કરવા માટે થાય છે. JSP 2.1 માં, તેને યુનિફાઇડ એક્સપ્રેશન લેંગ્વેજમાં ફોલ્ડ કરવામાં આવ્યું હતું, જેનો ઉપયોગ જાવાસર્વર ફેસમાં પણ થાય છે. જેએસપી એક્સપ્રેશન લેંગ્વેજ કોમ્પેક્ટ વાક્યરચનાનો ઉપયોગ કરે છે જે વિકાસકર્તાને આપેલ વિનંતી ઑબ્જેક્ટમાંથી વિશેષતાઓ અને જાવા બીન ગુણધર્મો મેળવવા માટે સક્ષમ બનાવે છે. EL નો ઉપયોગ કરતી વખતે, કોડની શરૂઆતમાં ડોલરનું ચિહ્ન ("$") ઉમેરવું આવશ્યક છે. ડોલર પ્રતીક પછી ઓપનિંગ બ્રેસ ("{"), તેમજ ક્લોઝિંગ બ્રેસ ("}") આવે છે. કોડ પછી ઓપનિંગ અને ક્લોઝિંગ કૌંસ વચ્ચે લખવામાં આવે છે. ઉદાહરણ નીચે EL વાક્યરચનાનું એક ઉદાહરણ છેઃ ઓબ્જેક્ટ જાવાબીયનમાં ચલનું મૂલ્ય ${javabean.variable} છે. વધારાના ટૅગ્સ જે. એસ. પી. વાક્યરચના બિલ્ટ-ઇન કાર્યક્ષમતાને લાગુ કરવા માટે વધારાના ટૅગ્સ ઉમેરે છે, જેને જે. એસ. પી. ક્રિયાઓ કહેવાય છે. વધુમાં, આ ટેકનોલોજી કસ્ટમ જે. એસ. પી. ટેગ લાઈબ્રેરીઓ બનાવવાની મંજૂરી આપે છે જે પ્રમાણભૂત જે. એસ. પી. વાક્યરચનાના વિસ્તરણ તરીકે કામ કરે છે. આવી જ એક લાઇબ્રેરી જેએસટીએલ છે. જકાર્તા સ્ટાન્ડર્ડ ટેગ લાઇબ્રેરી (જેએસટીએલ) સામાન્ય કાર્યોને ટેકો આપે છે જે જેએસપીમાં કરવા આવશ્યક છે. ઉદાહરણોમાં પુનરાવર્તન અને શરતો (જાવામાં "માટે" અને "જો" નિવેદનોની સમકક્ષ) નો સમાવેશ થાય છે. જેએસટીએલની તમામ લાઈબ્રેરીઓમાંથી, જેએસટીએલ કોર લાઈબ્રેરીનો સૌથી વધુ ઉપયોગ થાય છે. ઉપસર્ગનો ઉપયોગ કરીને જે. એસ. ટી. એલ. કોર લાઇબ્રેરીના યુ. આર. આઈ. ને સ્પષ્ટ કરવા માટે ટેગલિબ નિર્દેશનો ઉપયોગ કરવો આવશ્યક છે. ઉપસર્ગ માટે ઘણી જુદી જુદી પસંદગીઓ હોવા છતાં, આ પુસ્તકાલય માટે સામાન્ય રીતે "સી" ઉપસર્ગનો ઉપયોગ થાય છે. XML-સુસંગત JSP JSP પૃષ્ઠો સંપૂર્ણપણે માન્ય XML વાક્યરચનામાં પણ લખી શકાય છે. આવી જે. એસ. પી. ફાઇલો સામાન્ય રીતે વૈકલ્પિક. જે. એસ. પી. એક્સ. ફાઇલ એક્સ્ટેંશનનો ઉપયોગ કરે છે, જે સામાન્ય રીતે એપ્લિકેશન સર્વરને એક્સ. એમ. એલ. વાક્યરચનાને માન્ય કરવાનું કારણ બને છે. સામાન્ય JSP વાક્યરચના <%.%> XMLમાં માન્ય ન હોવાથી, વિકાસકર્તાએ JSP દ્વારા પૂરા પાડવામાં આવેલ વૈકલ્પિક ટૅગ્સનો ઉપયોગ કરવો જ જોઇએ. ઉદાહરણ તરીકે, સામાન્ય <% @પાનું.%> નિર્દેશને તેના બદલે <jsp: directive.page./> ટેગ તરીકે લખી શકાય છે, અને ટેગ લાઈબ્રેરીઓ સામાન્ય <% @ટેગલિબ.%> ટેગને બદલે XML નેમસ્પેસનો ઉપયોગ કરીને આયાત કરવામાં આવે છે. કમ્પાઇલર એ જાવા સર્વર પેજ કમ્પાઇલર એ એક પ્રોગ્રામ છે જે જે. એસ. પી. નું વિશ્લેષણ કરે છે અને તેમને એક્ઝેક્યુટેબલ જાવા સર્વલેટ્સમાં રૂપાંતરિત કરે છે. આ પ્રકારનો પ્રોગ્રામ સામાન્ય રીતે એપ્લિકેશન સર્વરમાં એમ્બેડ કરવામાં આવે છે અને પ્રથમ વખત જે. એસ. પી. ને એક્સેસ કરવામાં આવે ત્યારે આપમેળે ચાલે છે, પરંતુ વધુ સારા પ્રદર્શન માટે પૃષ્ઠો પણ પૂર્વ સંકલિત થઈ શકે છે, અથવા ભૂલો ચકાસવા માટે બિલ્ડ પ્રક્રિયાના ભાગ રૂપે સંકલિત થઈ શકે છે. કેટલાક જે. એસ. પી. કન્ટેનર પૃષ્ઠ બદલાયું છે કે કેમ તે જોવા માટે કન્ટેનર કેટલી વાર જે. એસ. પી. ફાઇલ ટાઇમસ્ટેમ્પ્સ તપાસે છે તે રૂપરેખાંકિત કરવાનું સમર્થન કરે છે. સામાન્ય રીતે, આ ટાઇમસ્ટેમ્પ સોફ્ટવેર વિકાસ દરમિયાન ટૂંકા અંતરાલ (કદાચ સેકન્ડ) પર સેટ કરવામાં આવે છે, અને તૈનાત વેબ એપ્લિકેશન માટે લાંબા અંતરાલ (કદાચ મિનિટો, અથવા તો ક્યારેય નહીં) પર સેટ કરવામાં આવે છે. "મુરાચના જાવા સર્વલેટ્સ અને જે. એસ. પી". પુસ્તકના લેખકો જોએલ મુરાચ અને માઈકલ અર્બનના જણાવ્યા અનુસાર, જે. એસ. પી. માં જાવા કોડને એમ્બેડ કરવો એ સામાન્ય રીતે ખરાબ પ્રથા છે. વધુ સારો અભિગમ એ હશે કે જે. એસ. પી. માં જડિત બેક-એન્ડ લોજિકને જાવા કોડમાં સ્થાનાંતરિત કરવું. આ દૃશ્યમાં, તે પ્રક્રિયા માટે જવાબદાર છે, અને જે. એસ. પી. એચ. ટી. એમ. એલ. પ્રદર્શિત કરવા માટે જવાબદાર છે, અને ચિંતાઓને સ્પષ્ટ રીતે અલગ રાખે છે. 2000 માં, "જાવા સર્વલેટ પ્રોગ્રામિંગ" ના લેખક જેસન હન્ટરએ જાવાસર્વર પૃષ્ઠો સાથે સંખ્યાબંધ "સમસ્યાઓ" વર્ણવી હતી. તેમ છતાં, તેમણે લખ્યું હતું કે જ્યારે જે. એસ. પી. "જાવા પ્લેટફોર્મ માટે શ્રેષ્ઠ ઉકેલ" ન હોઈ શકે, તે "જાવા ઉકેલ જે મોટાભાગે બિન-જાવા ઉકેલ જેવું છે" હતું, જેના દ્વારા તેમનો અર્થ માઇક્રોસોફ્ટના સક્રિય સર્વર પૃષ્ઠો હતો. બાદમાં, તેમણે તેમની સાઇટ પર એક નોંધ ઉમેરતા કહ્યું કે જે. એસ. પી. માં 2000 થી સુધારો થયો છે, પરંતુ તેના સ્પર્ધકો, અપાચે વેલોસિટી અને ટી (નમૂનાની ભાષા) નો પણ ઉલ્લેખ કર્યો હતો. આજે, મોટી વેબ એપ્લિકેશન્સમાં ઘણા વિકલ્પો અને સંખ્યાબંધ જે. એસ. પી.-લક્ષી પૃષ્ઠોને તકનીકી દેવું માનવામાં આવે છે. સર્વલેટ કન્ટેનર અપાચે ટોમકેટ અપાચે ટોમઈ જેટ્ટી (વેબ સર્વર) ગ્લાસફિશ ઓરેકલ આઈપ્લેનેટ વેબ સર્વર વેબસ્ફિયર એપ્લિકેશન સર્વર જાવા-આધારિત નમૂના વિકલ્પો એડોબ કોલ્ડફ્યુઝન લ્યુસી ફ્રીમાર્કર જે. એચ. ટી. એમ. એલ. થાઇમલીફ રેફરન્સ વર્ક્સ ટાંકવામાં આવ્યા વધુ વાંચન બાહ્ય લિંક્સ જે. એસ. પી. v2.0 વાક્યરચના સંદર્ભ જાવાસર્વર પૃષ્ઠો v2.0 વાક્યરચના કાર્ડ (v1.2) જકાર્તા સર્વર પૃષ્ઠો સ્પષ્ટીકરણ, નવીનતમ સત્તાવાર ટ્યુટોરિયલઃ જાવા EE 5 ટ્યુટોરિયલ, પ્રકરણ 5, જાવાસર્વર પૃષ્ઠો ટેકનોલોજી સર્વલેટ હિસ્ટ્રી જાવા એન્ટરપ્રાઇઝ પ્લેટફોર્મ જાવા સ્પષ્ટીકરણ નમૂના એન્જિનની વિનંતી કરે છે