Servlet forwarding technology is used to collect statistics on user input in HTML webpages, count the number of occurrences of each letter, and ignore case sensitivity. The statistics function is in one Servlet and the forwarding function is in another servlet.
1. Create a dynamic web project named countercharacter.
2. Create a New index.html file in the webcontentdirectory and set the form.
<! Doctype HTML>
3. create a new package in the javaresource/src directory named servletdemo. Create a servlet in the package named lettercountservlet, which is mainly responsible for counting the number of times each letter appears in the user input content.
Package servletdemo; import Java. io. ioexception; import javax. servlet. requestdispatcher; import javax. servlet. servletcontext; import javax. servlet. servletexception; import javax. servlet. annotation. webservlet; import javax. servlet. HTTP. httpservlet; import javax. servlet. HTTP. httpservletrequest; import javax. servlet. HTTP. httpservletresponse;/*** Servlet implementation class lettercountservlet * count the number of occurrences of each letter in the user input content */@ webservlet (asyncsupported = true, urlpatterns = {"/lettercountservlet "}) public class lettercountservlet extends httpservlet {Private Static final long serialversionuid = 1l;/*** @ see httpservlet # httpservlet () */Public lettercountservlet () {super (); // todo auto-generated constructor stub}/*** @ see httpservlet # doget (httpservletrequest request, response) */protected void doget (httpservletrequest request, response) throws servletexception, ioexception {// todo auto-generated method stubsystem. out. println ("servlet works"); // obtain the content submitted in form string content = request. getparameter ("content"); // ignore case sensitivity and convert all user input to uppercase and lowercase content = content. touppercase (); int [] times = new int [26]; for (INT I = 0; I <content. length (); I ++) {char c = content. charat (I); // determines whether C is the letter if (character. isletter (c) Times [C-'a'] ++;} // display the result servletcontext context = getservletcontext () to the next servlet; // Add the Count attribute context. setattribute ("count", times); // jump to the next servletrequestdispatcher dispatcher = context. getrequestdispatcher ("/resulstservlet"); dispatcher. forward (request, response);}/*** @ see httpservlet # dopost (httpservletrequest request, response) */protected void dopost (httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {// todo auto-generated method stubdoget (request, response );}}
4. Create a servlet in the servletdemo package named resultservlet, which is mainly responsible for the output of statistical results.
Package servletdemo; import Java. io. ioexception; import Java. io. printwriter; import javax. servlet. servletcontext; import javax. servlet. servletexception; import javax. servlet. annotation. webservlet; import javax. servlet. HTTP. httpservlet; import javax. servlet. HTTP. httpservletrequest; import javax. servlet. HTTP. httpservletresponse;/*** Servlet implementation class resulstservlet * displays statistics */@ webservlet (asyncsup Ported = true, urlpatterns = {"/resulstservlet"}) public class resulstservlet extends httpservlet {Private Static final long serialversionuid = 1l;/*** @ see httpservlet # httpservlet () */Public resulstservlet () {super (); // todo auto-generated constructor stub}/*** @ see httpservlet # doget (httpservletrequest request, httpservletresponse response) */protected void doget (httpservletrequest reques T, httpservletresponse response) throws servletexception, ioexception {// todo auto-generated method stubservletcontext context = getservletcontext (); int [] times = (INT []) context. getattribute ("count"); // output result response. setcontenttype ("text/html; charset = UTF-8"); printwriter out = response. getwriter (); For (INT I = 0; I <times. length; I ++) {char c = (char) ('A' + I); int frequency = Times [I]; out. println ("letter: "+ C +", number of occurrences "+ frequency +! <Br/> ") ;}}/*** @ see httpservlet # dopost (httpservletrequest request, httpservletresponse response) */protected void dopost (httpservletrequest request, response) throws servletexception, ioexception {// todo auto-generated method stubdoget (request, response );}}
5. OK, function implementation
Use servlet forwarding technology to calculate the number of letters in the form