servlets - hits i strid

, ramte tæller for en hjemmeside:, mange gange, du ville være interesseret i at vide, at antallet af hits på en særlig side af deres websted.det er meget nemt at tælle disse rammer ved hjælp af en servlet for en virksomheds livscyklus servlet er kontrolleret af den beholder, hvori det løber. efter er de skridt, der skal tages for at gennemføre en enkelt side slog mod, som er baseret på servlet livscyklus:,,, sæt en global variabel i init() metode.,,, øge den globale variabel, hver gang enten doget() eller dopost() metode kaldes.,,, hvis det er påkrævet, kan du bruge en database bord opbevarer værdien af globale variabel i destroy() metode.denne værdi kan læses i init() metode, når servlet vil blive igangsat næste gang.dette skridt er fakultativ.,,, hvis du ønsker at regne kun enestående side hits i en samling, så kan du bruge isnew() metode til at kontrollere, om samme side allerede er blevet ramt i denne samling.dette skridt er fakultativ.,,, du kan vise værdien af den globale imod, viser, at det samlede antal besøgende på din hjemmeside.dette skridt også er valgfri.,,, jeg går ud fra, at nettet beholder vil ikke genoptages.hvis det er genoptaget eller servlet ødelagt, slog mod vil blive nulstillet, f.eks. dette eksempel viser, hvordan til at gennemføre en enkelt side slog mod: import java. io. *; import java.sql.date; import java. util. *; import javax. servlet. *; import javax. servlet. http. *; offentlige klasse pagehitcounter udvider httpservlet (private int hitcount; offentlige tomrum init() (//nulstille ramte tæller.hitcount = 0} offentlige tomrum doget (httpservletrequest anmodning, httpservletresponse respons) kaster servletexception, ioexception (//sæt svar content type svar. setcontenttype ("tekst /html"); //denne metode, når den gennemfører servlet er ramt //forøgelse hitcount hitcount +; printwriter ud = respons. getwriter(); snor titel = "samlede antal hits" 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>\ " + "<h2 align=\\"center\\">" + hitCount + "</h2>\ " + "</body></html>"); } public void destroy() { //This is optional step but if you like you //can write hitCount value in your database. }}, lad os udarbejde over servlet og skabe følgende angivelser i web.xml,..< servlet > < servlet navn > pagehitcounter < /servlet navn > < servlet klasse > pagehitcounter < /servlet klasse > < /servlet > < servlet kortlægning > < servlet navn > pagehitcounter < /servlet navn > < url - > /pagehitcounter < /url - > < /servlet kortlægning >...nu kalder det servlet ved hjælp af url: http: //localhost: 8080 /pagehitcounter.dette ville øge i strid med en, hver gang den side har informeret, og det ville vise følgende resultat:,, antallet af hits, 6, slå mod et websted:, mange gange, du ville være interesseret i at vide, at antallet af hits på hele din hjemmeside.det er også meget enkelt i servlet, og vi kan opnå dette ved hjælp af filtre, der er følgende skridt der skal tages for at gennemføre et enkelt websted slog mod, som er baseret på filter livscyklus:,,, sæt en global variabel i init() metode med et filter,.,,, øge den globale variabel, hver gang dofilter metode kaldes.,,, hvis det er påkrævet, kan du bruge en database bord opbevarer værdien af globale variabel i destroy() metode med filter.denne værdi kan læses i init() metode i forbindelse med filter, vil blive igangsat i næste gang.dette skridt er fakultativ.,,, jeg går ud fra, at nettet beholder vil ikke genoptages.hvis det er genoptaget eller servlet ødelagt, slog mod vil blive nulstillet, f.eks. dette eksempel viser, hvordan til at gennemføre et enkelt websted slog mod: //import, der kræves i java biblioteker import java. io. *; import javax. servlet. *; import javax. servlet. http. *; import java. util. *; offentlige klasse sitehitcounter gennemfører filter (private int hitcount; offentlige tomrum lokalitet (filterconfig ud) kaster servletexception (//nulstille ramte tæller.hitcount = 0} offentlige tomrum dofilter (servletrequest anmodning, servletresponse svar, filterchain kæde) kaster java.io.ioexception, servletexception (//stigning i modstrid med en hitcount +; //print disken.system. println ("anlægsbesøg tæller:" + hitcount); //over anmodning tilbage filter kæde, kæde. dofilter (anmodning svar);} offentlige tomrum destroy() (//det er valgfrit trin, men hvis du kan lide dig //kan skrive hitcount værdi i deres database.}}, lad os udarbejde over servlet og skabe følgende angivelser i web.xml,..< filter > < filter navn > sitehitcounter < /filter navn > < kanalfilterklasse > sitehitcounter < /kanalfilterklasse > < /filter > < filter kortlægning > < filter navn > sitehitcounter < /filter navn > < url - > /* < /url - > < /filter kortlægning >...nu kalder alle url som url: http: //localhost: 8080 /.dette ville øge i modstrid med en, hver gang nogen side bliver et hit, og det ville vise følgende budskab i log:, virksomhedsbesøg tæller: 1 anlægsbesøg tæller: 2 besøg tæller: 3 besøg tæller: 4 anlægsbesøg tæller: 5....................,



Previous:
Next Page: