// 2011-07-31 johnpfeiffer client side and server side validation
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class JavascriptTextboxServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
String selfURL = request.getContextPath() + request.getServletPath();
String userinput = request.getParameter( "userinput" );
response.setContentType( "text/html" ); // MIME type
PrintWriter responseout = response.getWriter();
outputXHTMLHeader( "Servlet with Javascipt" , responseout );
responseout.println( "<body>" );
outputJavascriptFunctions( responseout );
displaySubmitForm( selfURL , responseout );
outputJavascript( responseout );
if( userinput != null && !userinput.isEmpty() ) // needs code injection protection
{
responseout.println( selfURL + " received input " + userinput + "<br />");
}
responseout.println( "</body>" );
responseout.println( "</html>" );
} //end doGet
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet( request, response);
}
private static void outputJavascriptFunctions( PrintWriter responseout )
{
responseout.println( "<script type=\"text/javascript\"> " );
responseout.println( "<!--" );
responseout.println( "function focusTextbox()" );
responseout.println( "{" );
responseout.println( " var temp = document.getElementById( 'userinput' );" );
responseout.println( " temp.focus(); " );
responseout.println( "}" );
responseout.println( "function checkTextbox()" );
responseout.println( "{" );
responseout.println( " var tempvalue = document.getElementById( 'userinput' ).value;" );
responseout.println( " var stringlength = tempvalue.length;" );
responseout.println( " for( i=0 ; i < stringlength ; i++ )" );
responseout.println( " {" );
responseout.println( " alert( tempvalue.charCodeAt( i ) );" );
responseout.println( " }" );
responseout.println( " alert( \"cleartext: \" + tempvalue + \" \" + stringlength );" );
responseout.println( "}" );
responseout.println( "//-->" );
responseout.println( "</script>" );
} //end outputJavascript
private static void outputJavascript( PrintWriter responseout )
{
responseout.println( "<script type=\"text/javascript\"> " );
responseout.println( "<!--" );
responseout.println( "focusTextbox();" );
responseout.println( "//-->" );
responseout.println( "</script>" );
} //end outputJavascript
private static void displaySubmitForm( String selfURL , PrintWriter responseout )
{
responseout.println( "<form name =\"submitbutton\" id=\"submitbutton\" action=\"" + selfURL + "\" method=\"post\" onsubmit=\"return checkTextbox()\" >" );
responseout.println( "<div><input type=\"text\" name=\"userinput\" id=\"userinput\"/></div>" );
responseout.println( "<div><input type=\"submit\"/></div>" );
responseout.println( "</form>" );
} // end displaySubmitForm
private static void outputXHTMLHeader( String title , PrintWriter responseout )
{
responseout.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
responseout.println( "<html xmlns=\"http://www.w3.org/1999/xhtml\">" );
responseout.println( "<head><title>" + title + "</title>" );
responseout.println( "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />" );
responseout.println( "</head>" );
} //end outputXHTMLHeader
}//end class