servlets - form af data

, du må have mødt mange situationer, hvor du er nødt til at give nogle oplysninger fra din browser til web - server og i sidste ende til din backend program.browseren bruger to metoder til at videregive disse oplysninger til web - server.disse metoder er få metode og efter metode. få metode:, få metode sender kodet information af brugerne, der findes som bilag til den side anmodning.den side og den kodede oplysninger er adskilt af den?rollen som følger:http://www.test.com/hello?key1 = værdi2) & key2 = værdi2, få metode er den defualt metode til at videregive oplysninger fra browser til web - server og fremstiller en lang snor, der forekommer i din browser placering: rubrik.tag aldrig få metode, hvis de har en adgangskode eller andre følsomme oplysninger til adgang til serveren.de få metode er størrelse limtation: kun 1024 tegn kan være en anmodning om en snor.denne information er gået med query_string brevhoved og bliver tilgængelige via query_string miljø variable og servlet behandler denne type anmodninger med, doget() metode. efter metode: et generelt mere pålidelig metode til formidling af informationer til en backend program er post - metode.denne emballage oplysninger på samme måde som få metoder, men i stedet for at sende det som en tekststreng efter en?i url det sender det som en særskilt meddelelse.dette budskab kommer til backend program i form af en standard input, som de kan analysere og brug for din behandling.denne type anmodninger med servlet håndtag, dopost() metode. ved form af data ved hjælp af servlet:, servlets håndtag form af data parsing automatisk ved anvendelse af følgende metoder, afhængigt af situationen:,,,, getparameter():, du kalder anmodning. getparameter() metode til at få værdien af en formular parameter.,,,, getparametervalues():, til denne metode, hvis parameter forekommer mere end én gang og returnerer flere værdier, f.eks. afkrydsningsfelt.,,,, getparameternames(): til denne metode, hvis du vil have en komplet liste over parametre i den aktuelle anmodning.,,, - metode, f.eks. ved hjælp af url: http: //, her er en simpel url, som vil give to værdier helloform program med få metode. http: //localhost: 8080 /helloform?first_name = zara & last_name = ali, nedenfor, er, helloform.java, servlet program til at håndtere input i betragtning af webbrowser.vi skal bruge, getparameter(), metode, som gør det meget let at få adgang til videregav oplysninger: //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http: //udvide *; httpservlet klasse offentlige klasse helloform udvider httpservlet (offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "ved hjælp af få metode at læse i form af data" snor doctype = "<!doctype html public \\"-//w3c//dtd html 4.0 " + "transitional//en\\">\ "; out.println(docType + "<html>\ " + "<head><title>" + title + "</title></head>\ " + "<body bgcolor=\\"#f0f0f0\\">\ " + "<h1 align=\\"center\\">" + title + "</h1>\ " + "<ul>\ " + " <li><b>First Name</b>: " + request.getParameter("first_name") + "\ " + " <li><b>Last Name</b>: " + request.getParameter("last_name") + "\ " + "</ul>\ " + "</body></html>"); } } ,Assuming your environvi er her, udarbejde helloform.java som følger: $javac helloform.java, hvis alt går fint, over udarbejdelse vil medføre, helloform.class, fil.næste gang du ville have til at kopiere denne klasse fil på < hankat anlæg adresseregister > /webapps /root /web-inf /klasser og skabe følgende angivelser, web.xml, fil beliggende på < hankat anlæg adresseregister > /webapps /root /web-inf /, < servlet > < servlet navn > helloform < /servlet navn > < servlet klasse > helloform < /servlet klasse > < /servlet > < servlet kortlægning > < servlet navn > helloform < /servlet navn > < url - > /helloform < /url - > < /servlet kortlægning >, typehttp: //localhost: 8080 /helloform?first_name = zara & last_name = ali, i din browser placering: rubrik og sørge for, at du allerede begyndt hankat server, før du skyder over kommando i browseren.det vil give følgende resultat:, ved hjælp af få metode til at læse form af data, fornavn: zara, sidste navn: ali, få metode eksempel under anvendelse af formular: her er et simpelt eksempel, der passerer to værdier ved hjælp af html form og forelægge knap.vi skal bruge samme servlet helloform til at håndtere dette imput. < html > < krop > < form handlingen = "helloform" metode = "får" > navn: < input type = "tekst" navn = "first_name" > < br /> navn: < input type = "tekst" navn = "last_name" /> < input type = "stille" værdi = "stille" /> < /form > < /organ > < /html > ved html i en fil hello.htm og sætte det på < hankat anlæg adresseregister > /webapps /root fortegnelse.når du har adganghttp: //localhost: 8080 /goddag. htm, her er den faktiske produktion af ovennævnte form., fornavn, efternavn:,, forsøger at komme til fornavn og efternavn og så klik forelægge knap se resultatet af deres lokale maskine, hvor hankat løber.baseret på input, skaber det samme resultat som nævnt i ovenstående eksempel. efter metode, f.eks. ved hjælp af form: lad os gøre en lille ændring i ovennævnte servlet, således at det kan klare at få samt post - metoder.nedenfor er helloform.java, servlet program til at håndtere input i betragtning af webbrowser med få eller efter metoder. //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http: //udvide *; httpservlet klasse offentlige klasse helloform udvider httpservlet (//- metode at håndtere få metode anmodning.offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "ved hjælp af få metode at læse i form af data" snor doctype = "<!doctype html public \\"-//w3c//dtd html 4.0 " + "transitional//en\\">\ "; out.println(docType + "<html>\ " + "<head><title>" + title + "</title></head>\ " + "<body bgcolor=\\"#f0f0f0\\">\ " + "<h1 align=\\"center\\">" + title + "</h1>\ " + "<ul>\ " + " <li><b>First Name</b>: " + request.getParameter("first_name") + "\ " + " <li><b>Last Name</b>: " + request.getParameter("last_name") + "\ " + "</ul>\ " + "</body></html>"); } //Method to handle POst metode anmodning.public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ,Now compile, deploy the above Servlet and test it using Hello.htm with the POST method as follows:, <html> <body> <form action="HelloForm" method="POST"> First Name: <input type="text" name="first_name"> <br /> Last Name: <input type="text" name="last_name" /> <input type="submit" value="Submit" /> </form> </body> </html> ,Here is the actual output of the above form, Try to enter First and Last Name and then click submit button to see the result on your local machine where tomcat is running., First Name: , Last Name: , ,Based on the input provided, it would generate similar result as mentioned in the above examples.,Passing Checkbox Data to Servlet Program,Checkboxes are used when more than one option is required to be selected.,Here is example HTML code, CheckBox.htm, for a form with two checkboxes, <html> <body> <form action="CheckBox" method="POST" target="_blank"> <input type="checkbox" name="maths" checked="checked" /> Maths <input type="checkbox" name="physics" /> Physics <input type="checkbox" name="chemistry" checked="checked" /> Chemistry <input type="submit" value="Select Subject" /> </form> </body> </html> , The resultdenne kode er følgende form, matematik, fysik, kemi, nedenfor, er checkbox.java servlet program til at håndtere input i betragtning af webbrowser for afkrydsningsfelt knap. //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http: //*; udvide httpservlet klasse offentlige klasse afkrydsningsfelt udvider httpservlet (//metode til at håndtere få metode anmodning.offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "læsning afkrydsningsfelt data" snor doctype = "<!doctype html public \\"-//w3c//dtd html 4.0 " + "transitional//en\\">\ "; out.println(docType + "<html>\ " + "<head><title>" + title + "</title></head>\ " + "<body bgcolor=\\"#f0f0f0\\">\ " + "<h1 align=\\"center\\">" + title + "</h1>\ " + "<ul>\ " + " <li><b>Maths Flag : </b>: " + request.getParameter("maths") + "\ " + " <li><b>Physics Flag: </b>: " + request.getParameter("physics") + "\ " + " <li><b>Chemistry Flag: </b>: " + request.getParameter("kemi "+"), n "+" < /ul > \\ n "+" < /organ > < /html > ");} //metode til at håndtere post metode anmodning.offentlige eller dopost (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception {doget (anmodning svar);) i ovenstående eksempel, vil det vise følgende resultat:,, læse afkrydsningsfelt data, matematik flag:,,,, fysik flag:,: null, kemi flag::,, læse alle parametre: efter den generiske eksempel, som anvender, getparameternames(), metode til httpservletrequest at læse alle de tilgængelige form parametre.denne metode returnerer en optælling, der indeholder parameterbetegnelserne i et ikke nærmere angivet for. når vi har en tælling, kan vi sløjfe ned til tælling i standardiseret måde, ved hjælp hasmoreelements(), metode til at bestemme, hvornår man skal stoppe med, nextelement(), en metode til at få hver enkelt parameter navn. //import, der kræves i java biblioteker import java.. io. *; import javax. servlet. *; import javax. servlet. http. *; import java. util. *; //udvide httpservlet klasse offentlige klasse readparams udvider httpservlet (//metode til at håndtere få metode anmodning.offentlige eller doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//sæt svar content type svar. setcontenttype ("tekst /html"); printwriter ud = respons. getwriter(); snor afsnit = "læse alle parametre" snor doctype = "<!doctype html public \\"-//w3c//dtd html 4.0 " + "transitional//en\\">\ "; out.println(docType + "<html>\ " + "<head><title>" + title + "</title></head>\ " + "<body bgcolor=\\"#f0f0f0\\">\ " + "<h1 align=\\"center\\">" + title + "</h1>\ " + "<table width=\\"100%\\" border=\\"1\\" align=\\"center\\">\ " + "<tr bgcolor=\\"#949494\\">\ " + "<th>Param Name</th><th>Param Value(s)</th>\ "+ "</tr>\ "); Enumeration paramNames = request.getParameterNames(); while(paramNames.hasMoreElements()) { String paramName = (String)paramNames.nextElement(); out.print("<tr><td>" + paramName + "</td>\ <td>"); String[] paramValues = request.getParameterValues(paramName); //Read single valued data if (paramValues.length == 1) { String paramValue = paramValues[0]; if (paramValue.length() == 0) out.println("<i>No Value</i>"); else out.println(paramValue); } else { //Read multiple valued data out.println("<ul>"); for(int i=0; i < paramValues.length; i++) { out.println("<li>" + paramValues[i]); } out.println("</ul>"); } } out.println("</tr>\\ n < /tabel > \\ n < /organ > < /html > ");} //metode til at håndtere post metode anmodning.public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ,Now, try above servlet with the following form:, <html> <body> <form action="ReadParams" method="POST" target="_blank"> <input type="checkbox" name="maths" checked="checked" /> Maths <input type="checkbox" name="physics" /> Physics <input type="checkbox" name="chemistry" checked="checked" /> Chem <input type="submit" value="Select Subject" /> </form> </body> </html> ,Now calling servlet using above form would generate following result:, ,Reading All Form Parameters, Param NameParam Value(s) maths onkemi på, kan du prøve over servlet at læse en anden form er data, som er under andre objekter som tekstboks, radio - knappen eller ned boks osv.



Previous:
Next Page: