B nocnennre ronnn n pesynrar na ypnoro pasnnrne na HHTEPHET n WEB-rexnonornnre renepnpanero na nnamnunn WEB-crpannnn crana nensexna uacr or nsrpaxanero na ncxxa WEB- opnenrnpana nn]opmannonna cncrema. Ha-neue nyxara or opaorxara n nsnnnuanero na nn]opmannx or xopnoparnnnn asn annn npes WEB onee o cepnosno pasnnrne na WEB- nporpamnpanero xaro nxno. B nacroxmara crarnx me pasrneame cncem naxparxo ocnonnnre naunnn sa ocranxa na nnamnuna nn]opmannx n WEB, xaro ce cnpem no-nopono na ena cpannnrenno nona rexnonornx JAVA cpnnernre. Ena or npnnre rexnnxn nsnonsnann n HHTEPHET sa renepnpane na crpannnn c nnamnuno cpxanne e ocra nsnecrnnxr Common Gateway InterIace (CGI). upes CGI web-cpnpr noana saxnxa na nnmna nporpama, xoxro ce nsnnnxna na cpnpa. Hsxor or rasn nporpama ce nsnpama npn xnnenra xaro crarnuen oxymenr nnn uacr or oxymenr. Honsara or CGI e nsmoxnocrra sa nrpaxane na ncnuxn nnone ]ynxnnonannocr nn nnamnuno renepnpann web-crpannnn xaro rona ocrana cxpnro or xnnenrcxnx paysp. Hopan ronemnre cn nsmoxnocrn n necnora sa nsnonsnane CGI pso ce npenpma n cranapr sa noneuero web-cpnpn, xaro ce yrnpxana xaro cranapren mexannsm sa xomynnxannx mexy cpnpa n nnmnn cpnpcxn npnnoxennx (server-side applications). Koraro xnnenrcxnxr paysp nsnparn saxnxa sa ocrn o CGI-nporpama, web- cpnpr csana non nponec sa a x nsnnnn n noana napamerpnre upes npomennnnn or cpeara nnn cranaprnnx nxo. Hporpamara nsnnnxna saxnxara n npma pesynrarr na cranaprnnx nsxo. Homoro na rasn momna rexnonornx e ue csananero na non nponec e anna onepannx n ornema snaunrennn pecypcn cpnpcxn pecypcn. Karo cnecrnne cpnpr crana anen n poxr xnnenrn, xonro morar a ar ocnyxenn n eno n cmo npeme namanxna. Bnpexn rona CGI-nporpamnre morar a ce nannmar na nourn ncnuxn esnnn sa nporpamnpane n cxpnnrone, xonro ce nopxar or cpnpa n onepannonnara cncrema. B UNIX-cpen na-uecro ce nsnonsnar Perl-cxpnnrone, SHELL- cxpnnrone n nporpamn na C, oxaro no WINDOWS morar a ce nsnonsnar n nponsnonnn nsnnnnmn nporpamn na C, DELPHI, Basic n r.n. Hsnonsnanero na Perl nosnonxna mexynnar]opmena npenocnmocr na xoa, no nnnoro na nnrerpannx mexy web-cpnpa n cpnpcxara nporpama ne e opo, nonexe re ca orennn nponecn. 3a noopxnane na cxopocrra na CGI-rexnonornxra ce noxnxna nenn ycnpmencrnan moen FastCGI. FastCGI e nourn xaro CGI, no sa pasnnxa ro nero, web-cpnpr ne csana ncexn nr nponec npn saxnxa xm CGI-nporpama, a craprnpa neoxonmara nporpama npn npnara saxnxa, a cne rona x nsnonsna es a csana non nponec. Bnpexn ue rona noopenne na CGI rexnonornxra e crnxa n npannnnara nocoxa, rx ne pemana nxxon or nponemnre. Hpn saxnxa na nxxonxo xnnenra xm ena n cma nporpama enonpemenno ornono ce nanara craprnpane na nxxonxo nponeca, a ocnen rona nnrerpannxra c web-cpnp ornono ne e mnoro opa. Ena opo pemenne na nponemnre e peannsnpano n na-nonynxpnnx n na-nsnonsnannx web-cpnp n cnera Apache (no nocnenn annn c Apache paorxr noneue or 60 or ncnuxn web- cpnpn n cnera). Apache nma nsmoxnocr a nrpan n cee cn nnrepnperaropa na Perl, xaro noopxna cepnosno cxopocrra n nnrerpannxra. Kaxro snaem Perl e mnoro momen cxpnnr-esnx sa csanane na server-side cxpnnrone, xoro e npoexrnpan n paspaoren cnennanno sa rasn nen. Texnonornxra e nsnecrna xaro modperl n nanocnex onna nonynxpnocr. Hanocnex sa manxn n cpenn xnnenrn na-uecro ce nsnonsna cranaprnara xon]nrypannx sa nnrepner cpnp OC: Linux, sa no-cepnosnnre SunOS nnn pyr UNIX, web-cpnp: Apache c modperl nnn PHP, asa or annn: MySQL, PostGre, a sa no-cepnosnnre ORACLE. pyr onnr sa noopxnane na e]exrnnnocrra na CGI/Perl rexnonrnxra e peannsannxra na PerlEx sa WINDOWS NT, xoxro onxxe cmo nnrerpnpa Perl n web-cpnpa. Karo cncem pasnnuen noxo moxe a ce pasrnear cpnpnnre pasmnpennx, xonro ce nopxar or nxxon web-cpnpn. Crana nnpoc sa Netscape NSAPI, MicrosoIt ISAPI n pyrn. Tesn - 2 - rexnonornn nosnonxnar a ce pasmnpn ]ynxnnonannocrra na web-cpnpa upes nrpaxane na nsnnnnm xo n nponeca na camnx cpnp, xoero npn opa peannsannx non o nsxnmunrenno ronxma e]exrnnnocr, no uecro nrn rona e sa cmerxa na naexnocrra. Onxnoneno raxnna nporpamn ce nnmar na C/C n ce sapexar xaro DLL nnnorexn n apecno npocrpancrno na cpnpa. Hponemr e, ue npn xpamnane na eno raxona nrpaeno cpnp-pasmnpenne, nonxxora ce xpamna nnn noxnpna nennxr cpnp n rpxna a ce pecraprnpa. Tona nancrnna rona e mnoro cepnosen nponem. pyra anrepnarnna na CGI e rexnonornxra Active Server Pages (ASP) na MicrosoIt. ASP nosnonxna csanane na nnamnunn web-crpannnn, xaro sa nenra nennxr xo, xoro nopaxa nnamnunoro cpxanne ce nrpaxa n HTML oxymenrnre n ce nsnnnxna na cpnpa npen xnnenrr a nonyun crpannnara, sa xoxro e an saxnxa. Tosn cranapr ce nopxa nourn camo or MicrosoIt Internet InIormation Server (IIS), xoro nma nomara cnana, ue e cnao naexen n necno nponnaem. Bnpexn rona na-nocne nepcnx 5.0 na IIS moxe a ce cmxra neue sa crannna (nce nax www.microsoIt.com paorn c nex). Ena 20 or cpnpnre n HHTEPHET paorxr c IIS. Hoona rexnonornx sa renepnpane na crpannnn c nnamnuno cpxanne e PHP. PHP e xnneprexcron npenponecop, xoro nosnonxna a ce nnmar cxpnnrone n HTML oxymenrnre. To ce nncrannpa xm web-cpnpa n xoraro xnnenrr ae saxnxa sa nxxox crpannna, cpnpr x nsema, samecrna ncnuxn cxpnnrone c pesynrara or nsnnnennero nm n npma renepnpanara no rosn naunn nnamnuna crpannna. Meror ce ornnuana c ronxma psnna, nonexe cxpnnronere ce nnrepnpernpar or npenponecopa na PHP es a ce npann non nponec. Hnrerpannxra cc cpnpa e opa. PHP e npenasnauen na-neue sa cpnpa Apache, xero ce peannsnpa xaro moyn noono na modperl. Cmecrnyna napnanr na PHP sa IIS, no ram e peannsnpan xaro CGI-nporpama n, pasnpa ce, e no-anen. Netscape Enterprise Server nsnonsna server-side JavaScript xaro anrepnarnna na CGI n ASP. Mexannsmr e cmnxr. Hporpamnnx xo ce nrpaxa nanpano n HTML oxymenra n ce nnrepnpernpa or cnppa. pyra noona anrepnarnna e Cold Fusion. upes cocrnenn rarone n HTML oxymenrnre ce nrpaxa nporpamen cxpnnr-xo. oxymenrnre ce nnrepnpernpar or Application-cpnpa na Cold Fusion, xoro ce npenara sa noneuero nonynxpnn web-cpnpn. Texnonornxra npenara nsxnmunrenno necen n npocr ocrn o asn or annn, es a ce nanara mnoro nncane na xo. Cmara nexra sa nrpaxane na xo n HTML oxymenra e peannsnpana n JSP (Java Server Pages), camo ue xor ce nnme na JAVA, xoero ana ronxma rnxanocr na npnnoxennero, sa cmerxa na noneue nncane. Honeue sa JSP uerere n xpax na crarnxra. Hsnonsnanero na JAVA xaro server-side esnx sa nporpamnpane n HHTEPHET sa renepnpane na nnamnunn web-crpannnn n nocnennre ronnn nperpnx ypno pasnnrne n on ronxma nonynxpnocr. Ena or rexnonornnre, xonro ce yrnpnxa e nporpamnpanero c JAVA cpnnern. Hpno rpxna a nsxcnnm, ue cpnnernre ne ca annern. Annernre ca nporpamn na JAVA, xonro ce nsnnnxnar na mamnnara na xnnenra or neronnx web-paysp nrpe n camnx HTML oxymenr, xoro ro pasrnexa. 3a pasnnxa or rxx JAVA cpnnernre ca anrepnarnna na CGI, xoxro npenara naunn sa renepnpane na nnamnunn HTML crpannnn upes nporpamn nanncann na JAVA, xonro ce nsnnnxnar na cpnpa. Cpnnerr npecrannxna xomnnnnpan JAVA xnac (nporpama na JAVA), xoro cron n cnennanna npexropnx na cpnpa n ce nsnnxna or xnnenrcxnx paysp upes saxnxa sa nonyuanane na crpannna nnn upes submit-nane na HTML ]opma. Cpnnerr opaorna noaennre my napamerpn n npma xaro pesynrar nnamnuno renepnpan HTML oxymenr. Mexannsmr e nooen na nsnnxnanero na nporpama upes CGI, no sa pasnnxa or nero e no-ps. 3a a nsnonsname cpnnern, nn e neoxonm cpnp, xoro rn nopxa (Java Web Server, Netscape Enterprise Server n p.) nnn rpxna a nncrannpame cnennannn pasmnpennx (plug-ins) xm cpnpa, xoro nsnonsname (raxnna ca ocrnnn sa noneuero nonynxpnn web-cpnpn xaro Apache n IIS). Kaxro esnxr JAVA, raxa n JAVA cpnnernre ca npoexrnpann c nen a nosnonxr npenocnmocr. Te ce nopxar na ncnuxn nnar]opmn, xonro nopxar JAVA. Karo nsoperenne na Java SoItware (nopasenenne na Sun Microsystems) re ca pasmnpenne na nrpaenara nn - 3 - nnpryannnre mamnnn na JAVA cranaprna nnnorexa c xnacone JDK, no ne ca uacr or nex. Fnnnorexara sa nopxxa na cpnnern ce napnua JSDK n e ocrnna sa nsrernxne or http.//fava.sun.com/products/servlet/. Ocnonnnre xauecrna na rexnonornxra ca npenocnmocr, momnocr, nspxnnnocr, naexnocr, pasmnpxemocr, nnrerpannx. 3a ronxma psnna ne moxe a ce ronopn, nonexe esnxr JAVA no npnnnnn ce nnrepnpernpa or npryannara mamnna, a rosn nponec e ocra anen n cpannenne c xomnnnnpana o nsnnnnm xo nporpama. Ocnen rona esnxr JAVA e or no- nncoxo nnno n cpannenne c C n pyrn esnnn sa nporpamnpane, xoero, pasnpa ce, ro npann ocra no-anen or rxx. Hesanncnmo ue camnre cpnnern ca no-annn or xomnnnnpan nsnnnnm xo, nonexe ca nporpamn na JAVA, craprnpanero na cpnner e psa onepannx, samoro cpnnernre ce sapexar n namerra na cpnpa xaro oexr nenx, npn npnoro nm craprnpane n cne rona camo ce nsnnxnar, xoero crana nourn momenranno. Enonpemennoro nsnnnxnane na nxxonxo saxnxn xm enn n cm cpnner ce nsnpmna n orennn thread-one enonpemenno. Cpnnernre ca nannno npenocnmn. Moxere a paspaornare cpnnern nanpnmep no Windows NT c JDeveloper n a rn recrnare c Java Web Server, a nocne a rn npenecere xm xpanoro nm mecronasnauenne, nanpnmep UNIX cncrema c Apache. Hopan momnocrra na esnxa JAVA, moxere a nanpannre ncnuxo, xoero noncxare or na- npocr poxu na nocernrennre o nnamnuno renepnpane na nsrne or reorpa]cxn xaprn nnn anromarnuen mexyesnxon npono na rexcr. B rasn nacoxa JAVA cpnnernre npensxoxar ronxma uacr or ocranannre anrepnarnnn sa web-nporpamnpane xaro Perl, PHP n server-side JavaScript. Ornocno crannnocrra n naexnocrra, moxe a ce xaxe, ue cpnnernre npnrexanar ronxma cnrypnocr n naexnocr, xoero nna or camnx esnx JAVA, xoro npnrexana resn xauecrna. ope nanncan JAVA cpnner ne moxe a e nsnonsnan sa neoropnsnpano nponnxnane n cpnpa, oxaro ronxma uacr or CGI nporpamnre, xonro ca xomnnnnpann o nsnnnnm xo nxa mornn a ce nponxr (nanpnmep upes cranaprnara rexnnxa 'buIIer overIlow) n a ce ocmecrnn neneranno xaxepcxo nponnxnane na mamnnara, nocnenano or xpaxa nnn ynnmoxenne na naxna nn]opmannx (nanpnmep xpenrnn xaprn, ]npmenn oxymenrn, naponn n r.n.). Ornocno nnrerpannxra moxem a xaxem, ue nonexe cpnnernre ce nsnnnxnar nrpemno or cpnpa, cpnpr n cpnnernre morar a cn xomynnxnpar necno, noxene n noneuero cnyuan re ca eno nxno. Texnonornxra e necno pasmnpxema. C nsnonsnanero na nonn onnnnrennn xnacone n upes pasmnpxnane na Servlet API-ro, moxe a ce nocrnrne nopxxara na nonnre rexnonornn n cranaprn, xoro me ce noxnxr n eme. Hexa a nornenem xax nsrnexa enn npocr JAVA cpnner:
public class HelloWorldServlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); ServletOutputStream out = resp.getOutputStream(); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello World Servlet</TITLE></HEAD>"); out.println("<BODY>"); out.println("<H1>Hello, World!</H1>"); out.println("</BODY></HTML>"); } }
Tosn cpnner nacnexna n pasmnpxna cranaprnnx sa JSDK xnac HttpServlet. Bcexn nr, xoraro cpnpr nonyun GET-saxnxa sa ocrn o cpnnera, ro nsnnxna doGet() meroa my, xaro my noana oexrn HttpServletRequest n HttpServletResponse, upes xonro cpnnerr moxe a nsnma napamerpnre na saxnxara n a csana orronopa na cpnpa. Hoxasannx no-rope cpnner nrnopnpa napamerpnre n npma nnamnuno renepnpan HTML oxymenr, xoro nsrnexa no cnennx naunn:
- 4 -
Cnenamnxr cpnner emoncrpnpa necnorara c xoxro ce nonyuanar napamerpnre. To nonyuana xaro nxo nme na uonex n my xasna 'spane. Pasnnxnre or npennx ca mnnnmannn.
public class HelloServlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); ServletOutputStream out = resp.getOutputStream(); String name = req.getParameter("name"); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello Servlet</TITLE></HEAD>"); out.println("<BODY>"); out.println("<H1>Hello, " + name + "</H1>"); out.println("</BODY></HTML>"); } }
Ero n pesynrarr or nsnnnennero my c napamerp 'Svetlin Nakov :
B INTERNET uecro ce cpemar HTML ]opmn, n xonro norpenrenxr nnexa nxxaxna nn]opmannx n x noana na cpnpa. Cpnpr nsnnnxna nxxaxn cxpnnr, nporpama nnn cpnner, xoro opaorna saxnxara n npma nnamnuno renepnpana or nero crpannna na xnnenra. Ero enn npnmep xax nxme mornn a ce nanpannm raxana HTML ]opma:
<FORM METHOD=GET ACTION="/servlets/HelloServlet"> Please enter your name: <INPUT TYPE=TEXT NAME="name"> <INPUT TYPE=SUBMIT VALUE="OK"> </FORM>
</BODY> </HTML>
Ero n pesynrarr, xoro norpenrenxr nnxa:
Hpn narncxane na yrona 'OK ce nsnnxna cpnnerr sa nospan no nme n my ce noana napamerpa 'name, nneen n nonero sa nme. B namnx cnyua narncxanero na rosn yron e exnnnanenrno na noncxnane na apeca http://localhost/servlets/HelloServlet?name=Svetlin+Nakov. Ho nooen naunn, upes xomnnannx or HTML ]opmn, cpnnern n asn or annn, moxe a ce nanpanxr cnoxnn nn]opmannonnn web-asnpann cncremn, xonro ocmecrnxnar nma nanor c norpenrenx. Hxxon ccnpn nopxar cnennanen rar SERVLET~, xaro no rosn naunn nosnonxnar nsnnxnane na cpnner npexrno or HTML crpannna. Tasn rexnonornx onpocrxna n onexorxna cpnnernre, xaro pasenx nnrep]eca or nornxara. Hourn ncnuxo ornacxmo ce o nnrep]eca ce o]opmx or webmaster-a, xoro csana .html ]an c npenapnrenno csaennx manon na HTML oxymenra. Bcnuxo ornacxmo ce o opaorxara na annnre n nsnnnuanero na nnamnunoro cpxanne ce nsnpmna or nporpamncra, xoro nmecro a npma nxn HTML oxymenr, npma camo ena uacr or nero. Hporpamncrr nnme nporpamara, xomnnnnpa x o .class ]an n x sanncna n cornernara npexropnx na cpnpa. Hponemn nma npn recrnanero, nonexe xaxro nsxcnnxme no-rope, cpnnerr ce sapexa camo nenx, a cne rona ce nsnnxna or namerra na cpnpa. B rosn cnyua axo nporpamncrr npomenn cpnnera, cpnpr nxma a ro npouere nanono n npomennre nxma a ce orpasxr. B raxnna cnyuan nporpamncrr rpxna a pecraprnpa nnn nennx cpnp nnn camo uacrra or nero, xoxro nopxa cpnnernre nnn, axo cpnpr nosnonxna, camo nnpocnnx cpnner. Ero n enn npnmep sa nrpaxane na SERVLET~ rar n HTML oxymenr. Hexa namara crpannna ce xasna 'test.shtml. 3aenexere pasmnpennero '.shtml. To nocxasna na cpnpa, ue crpannnara cpxa cpnnern, xonro rpxna a ce nsnnnxr n a ce samecrxr c npnaroro or rxx:
<HTML> <BODY>
This page is visited <SERVLET CODE="CounterServlet"> </SERVLET> times.
</BODY> </HTML>
- 6 - Ero n xoa na CounterServlet nporpamxara, xoxro nsnpmna cncem npocro (n manxo nexauecrneno) npepoxnane na nocernrennre:
public class HelloWorldServlet extends HttpServlet {
static int count = 0;
public void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); ServletOutputStream out = resp.getOutputStream(); out.println(++count); } }
Hxma a pasrnexame no-nopono npaxrnuecxoro nporpamnpanero c JAVA cpnnern, nonexe nenra na nacroxmara crarnx e a sanosne unrarennre c rexnonornxra, xaro nxno n xaxno rx npenara, es a nanxra na erannre. Honeue nn]opmannxra sa nporpamnpanero c JAVA cpnnern moxere a nonyunre xaro nocernre cnennre apecn: www.servlets.com, developer.java.sun.com/developer/onlineTraining/Servlets/Fundamentals/index.html 3a nac nrapnre enn or na-uecrnre nponemn e nopxxara na xnpnnnna. ann oxymenrnre n saxnxnre na xnpnnnna me ce opaornar npannnno sanncn onxxe or cpnpa n onxxe or nporpamncra. Hpenopuna ce nsnonsnane na cpnp, xoro e npnroen sa paora c xnpnnnna, nanpnmep Apache (http://www.apache.org), xoro nma pycxa nepcnx. 3a ocranannre cpnpn, onxnoneno nopxxara na xnpnnnna ce ycranonxna c noxoxmn nacrpoxn. Hponemn c xnpnnnnara nma n npn ocrn o cpnpn sa asn or annn. Hponemr ornono ce pemana c noxoxmn nacrpoxn na cpnpa n panepnre sa ocrn. Bcnuxn nonynxpnn cpnpn sa asn or annn nopxar xnpnnnna. Tpxna a ce orenexn, ue nponemnre c xnpnnnna ne ce ornacxr camo sa JAVA cpnnernre, a cmo n sa ronxma uacr or cpnpnre n rexnonornnre, xonro renepnpar nnamnuen HTML. Baxno e a ce orenexn, ue npn npeanane na napamerpnre xm cpnner, nporpamncrr moxe a nsnonsna cnenara nporpamna xnrpocr, sa a npeoonee nponemnre c xnpnnnna: 1
String name = request.getParameter("name"); try { // Decode the cyrillic parameter value name = java.net.URLDecoder.decode(name); } catch (Exception e) {}
C nsnonsnanero na rosn xo ce nocrnra npannnnoro pasxonpane na napamerpa 'name, xaro ce nsxrnar nponemnre c xnpnnnnara n pyrn nenarnncxn asyxn. B oomenne rpxna a orenexnm xora e noxoxmo a ce nsnonsnar JAVA cpnnern n xora e no-ope a ce nsnonsnar pyrn rexnonornn. Cpnnernre nn ocnrypxnar ronxma momnocr n ]ynxnnonannocr, ronxma cnrypnocr n naexnocr, a cmo n npenocnmocr. Hoxoxmn ca sa ronemn npoexrn, xero rpxna a ce nsnpmna cnoxna opaorxa na annn, sa a ce nonyun neoxonmnx nnamnuen pesynrar, a cmo n xoraro naexnocrra e or cmecrneno snauenne. Tpxna a orenexnm, ue opn sa npocrn nema na JAVA rpxna a ce nsnnme ocra nporpamen xo, sa pasnnxa or nxxon pyrn esnnn sa nporpamnpane, noxoxmn sa web-paspaorxa. Karo oannm, ue JAVA e cna n anen esnx npn rexcroopaorxara, necno ce copasxna, ue sa manxn n npocrn nporpamxn e no-noxoxm Perl nnn PHP. Koraro crana nnpoc sa ocrn o asn or annn, JAVA cpnnernre ce cnpanxr ope, no ornono rona crana noneue rpy n mnoro nncane na nporpamen xo, n cpannenne c npenasnauennre cnennanno sa rona cpnpnn pasmnpennx, xaro nanpnmep ColdFusion n Oracle
1 Anropr naroapn sa npeocranennxr xo n peaxropcxnre saenexxn na nmnrp Hpoanon - 7 - Application Server. Taxa ue sa npocrn nema ne mora ropemo a npenopuam cpnnernara rexnonornx. Hanocnex Sun ce onnrna a nanoxn Java Server Pages (JSP) rexnonornxra n oanxa xm cpnnernara. Kaxro neue orenxsaxme JSP rexnonornxra nosnonxna nrpaxane na JAVA xo npexrno n HTML oxymenrn nocpecrnom cnennannn rarone. Crpannnnre c JSP ce opaornar or cnennanen JSP-engine, xoro rn npounra, npeopasyna rn n JAVA copc xo, xomnnnnpa rn n rn nsnnnxna. Fpsoecrnnero ce nocrnra or rona, ue rosn nponec ce nsnpmna enoxparno npn npnoro sapexane na crpannnara c JSP xo, a cne rona xomnnnnpannxr JAVA xo ce nsnnnxna xaro nopmanen JAVA cpnner. Enn neocrarx na rexnonornxra e ue npn nex HTML rexcrr ce nrpaxa xaro xoncranrn n nporpamnnx xo, a ne e n uncr nn. Tona, nanpnmep n PHP, e npeoonxno upes nsmoxnocrra sa cueranane na uncr HTML recxr n ]parmenrn nporpamen xo n enn n cm ]an.