Formservlet
Packageservlet;Importjava.io.IOException;Importjavax.servlet.ServletException;ImportJavax.servlet.annotation.WebServlet;ImportJavax.servlet.http.HttpServlet;Importjavax.servlet.http.HttpServletRequest;ImportJavax.servlet.http.HttpServletResponse;Importutil. Tokenprocessor;/*** Servlet Implementation class Formservlet*/ Public classFormservletextendsHttpServlet {Private Static Final LongSerialversionuid = 1L; protected voidDoget (HttpServletRequest request, httpservletresponse response)throwsservletexception, IOException {doPost (request, response); } protected voidDoPost (HttpServletRequest request, httpservletresponse response)throwsservletexception, IOException {String token=tokenprocessor.getinstance (). Maketoken (); Request.getsession (). SetAttribute ("Token", token); Request.getrequestdispatcher ("/form.jsp"). Forward (request, response); } }
form.jsp
Import= "java.util.*" pageencoding= "UTF-8"%><! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" > method= "POST" > <input type= "hidden" name= "token" value= "${token}"/> User name:<input Type= "text" name= "username" ><input type= "Submit" value= "commit" > </form></body></ Html>
Submit Doformservlet
Packageservlet;Importjava.io.IOException;Importjavax.servlet.ServletException;ImportJavax.servlet.annotation.WebServlet;ImportJavax.servlet.http.HttpServlet;Importjavax.servlet.http.HttpServletRequest;ImportJavax.servlet.http.HttpServletResponse; Public classDoformservletextendsHttpServlet {Private Static Final LongSerialversionuid = 1L; PublicDoformservlet () {Super(); } protected voidDoget (HttpServletRequest request, httpservletresponse response)throwsservletexception, IOException { This. Doget (request, response); } protected voidDoPost (HttpServletRequest request, httpservletresponse response)throwsservletexception, IOException {Booleanb =Isrepeatsubmit (Request); if(b) {System.out.println ("Please do not repeat the submission"); return; } request.getsession (). RemoveAttribute ("token");//removing tokens from the sessionSYSTEM.OUT.PRINTLN ("Process user submit Request!! "); } Private BooleanIsrepeatsubmit (HttpServletRequest request) {String Client_token= Request.getparameter ("token"); if(Client_token = =NULL){ return true; } String Server_token= (String) request.getsession (). getattribute ("token"); if(Server_token = =NULL){ return true; } if(!client_token.equals (Server_token)) { return true; } return false; }}
JAVA Repeating commit