జావా సర్వర్ పేజీలు

వికీపీడియా నుండి
ఇక్కడికి గెంతు: మార్గసూచీ, వెతుకు

జావా సర్వర్ పేజెస్ (JSP ) అనేది జావా వెబ్ అప్లికేషన్ కంటేనర్ (సర్వర్)కు పంపిన ఒక వెబ్ క్లైంట్ అభ్యర్ధనకు సమాధానంగా, HTML, XML లతో డైనమిక్ గా తయారైన వెబ్ పేజీలు, లేదా వేరే విధమైన డాక్యుమెంట్లను (దస్తావేజు) తయారు చేయటానికి సాఫ్ట్ వేర్ రూపకర్త లను అనుమతించే ఒక సర్వర్ సైడ్ జావా సాంకేతికత. నిర్మాణపరంగా, JSP జావా సర్వ్లెట్ల యొక్క అధిక-స్థాయి సంగ్రహణంగా వీక్షించబడుతుంది. JSP పేజీలు సర్వర్లో లోడ్ అయి J2EE వెబ్ అప్లికేషనుగా పిలవబడే ఒక క్రమమైన ప్రత్యేకంగా ఇన్స్టాల్ చేసిన జావా సర్వర్ పాకెట్ నుండి పనిచేస్తాయి, ఈ అప్లికేషను తరచుగా ఒక .war లేదా .ear ఫైళ్ల కట్టగా కట్టగట్టబడతాయి.

ఈ సాంకేతికత జావా కోడ్ మరియు ముందే-నిర్వచించిన ప్రత్యేక చర్యలను స్టాటిక్ (స్థిర)పేజ్ విషయంలో చేర్చబడే టట్లు మరియు ప్రతి పేజ్ అభ్యర్ధన నడుస్తున్న సమయంలో సర్వర్ పైన కంపైల్ అయ్యేటట్లు అనుమతిస్తుంది. జావా సర్వర్ (J2EE స్పెసిఫికేషన్) మరియు పేజ్ స్క్రిప్ట్ లు రెండూ, జతచేయబడిన విస్తరించబడిన కస్టమైజ్ద్ ప్రోగ్రామింగ్ తో పాటుగా లేదా ఏదో ఒకటి విర్ట్యువల్ మెషిన్ (VM) గా పిలవబడే ముందుగానే-ఇన్స్టాల్ చేసిన ఒక ప్రత్యేక బేస్ ప్రోగ్రాం ద్వారా పనిచేయబడతాయి (లోడ్ అవబోయే ప్రోగ్రాంల వినియోగం యొక్క రన్ టైం (పనిసమయం)సందర్భం లో) అతిధేయ ఆపరేటింగ్ సిస్టంతో మిళితం అయ్యే ఈ రకమైన విర్ట్యువల్ మెషిన్ జావా విర్ట్యువల్ మెషిన్ (JVM).

ప్రాథమికంగా ఆ పీజీ HTML కానీ లేదా XML మార్కప్ గా కానీ ఉన్నప్పటికీ, JSP సింటాక్స్ (వాక్య నిర్మాణము) ముఖ్యంగా రెండు రూపాలలో ఉంటుంది, స్క్రిప్ట్ లెట్ మరియు మార్కప్ . మార్కప్ తో కూడిన స్క్రిప్ట్ లెట్ ట్యాగ్ఇంగ్ (స్క్రిప్ట్లెట్ ఎలిమెంట్స్ గా పిలవబడే) (డీలిమిటెడ్) కోడ్ యొక్క బ్లాక్స్ సమర్ధవంతమైన మార్కప్ కావు మరియు జావా సర్వర్ కు సంబంధించిన ఏ API (ఉదాహరణకు స్వయంగా సర్వర్లను నడిపే బైనరీలు లేదా దత్తాంశనిధి అనుసంధానాల API లేదా జావా మెయిల్ API) ని కానీ లేదా ఆ పేజ్ యొక్క JSP ఫైల్ మరియు ఫైల్ విస్తరణ లలో సరియిన డిక్లెరేషన్ (ప్రవచనము)లు ఉపయోగించబడినట్లయితే, మరింత ప్రత్యేకమైన JSP API లాంగ్వేజ్ కోడ్ ని కానీ, ఒక HTML లేదా XML పేజిలో పెట్టటానికి అనుమతిస్తుంది. స్క్రిప్ట్ లెట్ బ్లాక్స్ ఆ బ్లాక్ లోనే పూర్తి అవాల్సిన అవసరంలేదు, ఒక స్టేట్మెంట్ (ప్రవచనం) అవసరమయినప్పుడు కేవలం ఆ బ్లాక్ యొక్క ఆఖరి వరుస మాత్రం పద నిర్మాణం ప్రకారం సరిగా పూర్తి అవుతూ ఉంటుంది, అది ఒక తర్వాతి బ్లాక్ లో పూర్తి అవవచ్చు. చీలికలైన ఇన్లైన్ కోడింగ్ విభాగాల ఈ వ్యవస్థను స్టెప్ ఓవర్ స్క్రిప్టింగ్ అంటారు ఎందుకనగా దాని పైన అడుగు పెట్టటం ద్వారా స్టాటిక్ మార్కప్ చుట్టూ ఇది చుట్టుకోగలదు. అది నడుస్తున్న సమయంలో (క్లైంట్ అభ్యర్ధన (రిక్వెస్ట్) సమయంలో) ఆ కోడ్ కంపైల్ అయి పరిశీలించబడుతుంది, కానీ ఆ ఫైల్ యొక్క కోడ్ లో మార్పు వచ్చినప్పుడు మాత్రమే సాధారణంగా ఆ కోడ్ కంపైల్ అవుతుంది. JSP సింటాక్స్, JSP యాక్షన్స్ (చర్యలు)గా పిలవబడే, అదనపు XML-వంటి ట్యాగ్ లను జతచేస్తుంది, ఇవి అంతర్గతంగా ఉన్న క్రియాశీలతను ఆమంత్రిస్తాయి. దానికి తోడు, ఈ సాంకేతికత స్టాండర్డ్ HTML లేదా XML ట్యాగ్ లకు విస్తరణలుగా పనిచేసే JSP ట్యాగ్ లైబ్రరీల తయారీకి అనుమతిస్తుంది. JVM తో పనిచేసే ట్యాగ్ లైబ్రరీలు వెబ్ సర్వర్ సామర్ధ్యాల విస్తరణకు ఒక ప్లాట్ఫారం స్వతంత్ర విధానాన్ని అందిస్తాయి. అన్ని వ్యాపారసంస్తలు తయారుచేసే జావా సర్వర్ లు J2EE స్పెసిఫికేషన్ కు సరిపడేవి కావని గమనించాలి.

చరిత్ర[మార్చు]

ASP మరియు PHP లకు జావా యొక్క సమాధానంగా JSP 1.0 స్పెసిఫికేషన్ 1999 లో విడుదలయింది.[1] సర్వ్లెట్లు మరియు JSP లు రెండూ సన్ మైక్రోసిస్టమ్స్ వద్ద రూపొందించబడ్డాయి. JSP స్పెసిఫికేషన్ వర్షన్ 1.2 తో మొదలుకొని, జావాసర్వర్ పేజెస్ జావా కమ్యూనిటి ప్రాసెస్లో రూపొందించబడ్డాయి. JSR 53, JSP 1.2 మరియు సర్వ్లెట్ 2.3 స్పేసిఫికేషన్స్ రెండింటినీ నిర్వచిస్తుంది మరియు JSR 152, JSP 2.0 స్పెసిఫికేషన్ ను నిర్వచిస్తుంది. మే 2006 నాటికి JSP 2.1 స్పెసిఫికేషన్ జావా EE 5 యొక్క భాగంగా JSR 245 క్రింద విడుదలయింది.

ఉదాహరణ[మార్చు]

JSP లు JSP కంపైలర్ (తర్జుమాకి వాడే క్రమణిక) ద్వారా సర్వ్లెట్స్ లోకి కంపైల్ అవుతాయి. ఆ కంపైలర్ ఆ తర్వాత జావా కంపైలర్ ద్వారా కంపైల్ (తర్జుమా) అవబడే ఒక సర్వ్లెట్ ను జావా కోడ్ లో ఉత్పత్తి చేస్తుంది, లేదా సర్వ్లెట్ ను బైట్ కోడ్కు కంపైల్ చేయవచ్చు, ఈ బైట్ కోడ్ నేరుగా ఎగ్జిక్యూట్ చేయగలిగేది. JSP లు, మార్పులు తిరిగి లోడ్ అవటానికి పట్టే సమయాన్ని తగ్గిస్తూ, చాల వేగంగా అనువదించబడగలవు.

JSP కంపైలర్ ఒక సర్వ్లెట్ కోసం జావా సోర్స్ కోడ్ ను ఉత్పత్తి చేసిందో లేదా నేరుగా బైట్ కోడ్ ను విడుదల చేసిందో అనేదానితో సంబంధంలేకుండా, ఆ JSP కంపైలర్ ఏవిధంగా ఆ పేజ్ ను ఒక జావా సర్వ్లెట్ గా మారుస్తుందో అనేదానిని అర్ధం చేసుకోవటం చాల ఉపయోగం. ఉదాహరణకు, ఈ క్రింది (ప్రావేశిక)ఇన్పుట్ JSP ని మరియు దాని ఫలితంగా ఉత్పత్తి అయిన జావా సర్వ్లెట్ ను గమనించండి.

ఇన్పుట్ (ప్రావేశిక) JSP

 <%@ page errorPage="myerror.jsp" %>
 <%@ page import="com.foo.bar" %>
 
 <html>
 <head>
 <%! int serverInstanceVariable = 1;%>
 
 <% int localStackBasedVariable = 1; %>
 <table><td>
 <tr><td><%= toStringOrBlank( "expanded inline data " + 1 ) %></td></tr><td>

ఫలిత సర్వ్లెట్

 package jsp_servlet;
 import java.util.*;
 import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 import javax.servlet.jsp.*;
 import javax.servlet.jsp.tagext.*;

 import com.foo.bar; // Imported as a result of <%@ page import="com.foo.bar" %>
 import 

 class _myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage {
 // Inserted as a
 // result of <%! int serverInstanceVariable = 1;%>
 int serverInstanceVariable = 1;
 

 public void _jspService( javax.servlet.http.HttpServletRequest request,
 javax.servlet.http.HttpServletResponse response )
 throws javax.servlet.ServletException,
 java.io.IOException
 {
 javax.servlet.ServletConfig config = ; // Get the servlet config
 Object page = this;
 PageContext pageContext = ; // Get the page context for this request
 javax.servlet.jsp.JspWriter out = pageContext.getOut();
 HttpSession session = request.getSession( true );
 try {
 out.print( "<html>\r\n" );
 out.print( "<head>\r\n" );
 
 // From <% int localStackBasedVariable = 1; %>
 int localStackBasedVariable = 1;
 
 out.print( "<table><td>\r\n" );
 out.print( " <tr><td>" );
 // From <%= toStringOrBlank( "expanded inline data " + 1 ) %>
 out.print( toStringOrBlank( "expanded inline data " + 1 ) );
 out.print( " </td></tr><td>\r\n" );
 
 } catch ( Exception _exception ) {
 // Clean up and redirect to error page in <%@ page errorPage="myerror.jsp" %>
 }
 }
 }

JSP 2.0[మార్చు]

JSP స్పెసిఫికేషన్ యొక్క కొత్త వర్షన్లో ప్రోగ్రామర్ సామర్ధ్యాన్ని పెంచటానికి ఉద్దేశించబడిన కొత్త లక్షణాలు ఉన్నాయి. అవి:

  • ఒక ఎక్స్ప్రెషన్ లాంగ్వేజ్ (EL) ఇది డెవలపర్లను వడి-తరహా నమూనాలను (ఇతర విషయాలలో) తయారుచేయటానికి అనుమతిస్తుంది.
  • పారామీటర్ విలువల ప్రదర్శనకు ఒక వేగవంతమైన/సులువైన మార్గం.
  • నెస్టెడ్ బీన్స్ చోదనకు ఒక స్వచ్ఛమైన మార్గము.

J2SE 5.0 ద్వారా ప్రవేశపెట్టబడిన జావా భాష వ్యాఖ్యానములు ఉపయోగించటం ద్వారా డెవలప్మెంట్ ను సులభతరం చేయటంపై జావా EE 5 ప్లాట్ఫారం దృష్టిపెట్టింది. JSP ట్యాగ్ నిర్వాహకులు మరియు దృక్పద శ్రోతలపై పరతంత్రతను చొప్పించటం కొరకు వ్యాఖ్యానాలను నిర్వచించటం ద్వారా JSP 2.1 ఈ లక్ష్యాన్ని సమర్ధిస్తుంది.

జావా EE 5 స్పెసిఫికేషన్ యొక్క మరియొక కీలక వ్యవహారం దాని వెబ్టియర్ సాంకేతికతలైన, జావాసర్వర్ పేజెస్ (JSP), జావాసర్వర్ ఫేసెస్ (JSF), మరియు జావాసర్వర్ పేజెస్ స్టాండర్డ్ ట్యాగ్ లైబ్రరీ (JSTL)ల యొక్క అమరిక.

యూనిఫైడ్ ఎక్స్ప్రెషన్ లాంగ్వేజ్ (EL) ఈ ప్రయత్నం యొక్క ఫలితం, ఇది JSP 2.0 మరియు JSF 1.1 లచే నిర్వచించబడిన ఎక్స్ప్రెషన్ లాంగ్వేజ్ లను కలుపుతుంది.

అమరిక పని ఫలితంగా యూనిఫైడ్ EL కు జతచేయబడిన కీలక అంశాలు: జావా ఆబ్జెక్ట్ లలో అస్థిర (వేరియబుల్) ఉపప్రమాణాలను పరిష్కరించటానికి మరియు ఈ జావా ఆబ్జెక్ట్ లకు అన్వయించబడిన ధర్మాలను పరిష్కరించటానికి ప్లగ్ చేయగలిగిన ఒక API, ఒక పేజీ ఎగ్జిక్యూట్ అయి ఇవ్వబడిన వెంటనే వెలకట్టబడే, వాటి సాధారణ ఎక్స్ప్రెషన్ ఉల్టాభాగముల వలే కాకుండా, అవసరమయినప్పుడు ఒక ట్యాగ్ హాండ్లర్ (నిర్వాహకి) ద్వారా వెలకట్టబడగలిగిన, నిలచిపోయిన ఎక్స్ప్రెషన్స్ కు ఆసరా, మరియు l-వాల్యూ ఎక్స్ప్రెషన్ కొరకు ఆసరా, అది నిర్దేశించబడిన పని యొక్క ఎడమ చేతి వైపు కనిపిస్తుంది. l-విలువగా ఉపయోగించబడినప్పుడు, ఒక EL ఎక్స్ప్రెషన్ ఒక దత్తాంశ నిర్మాణానికి సంబంధించినదానికి ప్రాతినిధ్యం వహిస్తుంది, ఉదాహరణకు: వాడుకదారు ప్రవేశాంశములో కొంత అప్పచెప్పబడిన, ఒక జావా బీన్స్ ధర్మం. కొత్త యూనిఫైడ్ EL దాని స్వంత స్పెసిఫికేషన్ డాక్యుమెంట్ లో నిర్వచించబడింది, అది JSP 2.1 స్పెసిఫికేషన్ తో పాటు విడుదలైంది.

యూనిఫైడ్ EL, JSTL ఇటెరేషన్ టాగ్స్ వంటి JSTL టాగ్స్ కు కృతజ్ఞతలు, వీటిని ఇప్పుడు JSF అంశాలతో ఒక గ్రాహకమైన విధానంలో ఉపయోగించవచ్చు.

JSP 2.1 దాని వెబ్ అర్ధముల కొరకు సర్వ్లెట్ 2.5 స్పెసిఫికేషన్ ను ప్రభావితం చేస్తుంది.

ఇవి కూడా చూడండి[మార్చు]

మరింత చదవడానికి[మార్చు]

  • Bergsten, Hans (2003). JavaServer Pages (3rd Edition ed.). O'Reilly Media. ISBN 978-0-596-00563-4. 
  • Hanna, Phil. JSP 2.0 - The Complete Reference. McGraw-Hill Osborne Media. ISBN 978-0-072-22437-5. 
  • Lua error in మాడ్యూల్:Citation/CS1 at line 3565: bad argument #1 to 'pairs' (table expected, got nil).

సూచనలు[మార్చు]

  1. JSP 1.0 specification

వెలుపటి వలయము[మార్చు]

మూస:Java (Sun)