import java.io.PrintWriter; import java.io.IOException; import javax.servlet.http.*; abstract class ISort { abstract public void sort( int[] array ); public static ISort makeSorter() { return new SortServer(); } } class SortServer extends ISort { public void sort( int[] array ) { for (int g = array.length/2; g > 0; g /= 2) for (int i = g; i < array.length; i++) for (int j = i-g; j >= 0; j -= g) if (array[j] > array[j+g]) { int temp = array[j]; array[j] = array[j+g]; array[j+g] = temp; } } } class SortBean { private int[] array; private ISort sorter = ISort.makeSorter(); private java.util.Random rn = new java.util.Random(); public void setArray( String dummyArgument ) { array = new int[ rn.nextInt(10) + 5 ]; for (int i=0; i < array.length; i++) array[i] = rn.nextInt(20) + 1; } public String getArray() { StringBuffer sb = new StringBuffer(); for (int i=0; i < array.length; i++) sb.append( array[i] + " " ); return sb.toString(); } public int getLength() { return array.length; } public void sort() { sorter.sort( array ); } } public class ServletSort extends HttpServlet { private SortBean beanObjName = new SortBean(); public void init() throws javax.servlet.ServletException { super.init(); } public void doPost( HttpServletRequest req, HttpServletResponse resp ) throws javax.servlet.ServletException, IOException { PrintWriter pw = resp.getWriter(); beanObjName.setArray( "" ); pw.println( "Sort Servlet
" );
    pw.print( "Unsorted array of " + beanObjName.getLength() + " numbers - " );
    pw.println( beanObjName.getArray() );

    beanObjName.sort();

    pw.print( "Sorted array of " + beanObjName.getLength() + " numbers --- " );
    pw.println( beanObjName.getArray() );
    pw.println( "
" ); } public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws javax.servlet.ServletException, IOException { doPost( req, resp ); } }