<%@ page import="uk.org.mafoo.wordsearch.*" %> <%@ page import="java.util.*" %> <%@ page import="org.apache.commons.lang.StringUtils" %> <%@ page import="org.apache.commons.lang.StringEscapeUtils" %> <%@ page import="java.sql.*" %> <%@ page import="org.sqlite.*" %> <%@ page errorPage="error.jsp" %> <% int height = Integer.parseInt(request.getParameter("height")); int width = Integer.parseInt(request.getParameter("width")); boolean simple = request.getParameter("simple") != null; String name = StringEscapeUtils.escapeHtml(request.getParameter("name")); if (request.getParameter("words").length() > 2048) { throw new Exception("Input too large"); } if (height > 100 || width > 100) { throw new Exception("Dimensions too large"); } List words = new ArrayList(); for ( String line : request.getParameter("words").split("\r\n")) { words.add(line.trim().toLowerCase()); } Collections.sort(words); Connection conn = DriverManager.getConnection( "jdbc:sqlite:" + getServletContext().getRealPath("/WEB-INF/files/database.sqlite")); PreparedStatement stmt = conn.prepareStatement( "INSERT INTO grids (remotehost, input, size_x, size_y, simple) VALUES (?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS); // PreparedStatement getlastid = conn.prepareStatement("select last_insert_rowid();"); PreparedStatement stmt2 = conn.prepareStatement("UPDATE grids SET result=? WHERE id=?"); stmt.setString(1, request.getRemoteHost()); stmt.setString(2, words.toString()); stmt.setInt(3, height); stmt.setInt(4, width); stmt.setBoolean(5, simple); stmt.executeUpdate(); ResultSet record_id_rs = stmt.getGeneratedKeys(); int record_id = -1; if(record_id_rs.next()){ record_id = record_id_rs.getInt(1); } // Actually generate the grid char[][] grid = GridFactory.makeGrid(words, height, width, simple); StringBuilder _csv = new StringBuilder(); for (char[] cs : grid) { for(char c : cs) { _csv.append(c); _csv.append(","); } _csv.append("\r\n"); } String csv = _csv.toString(); stmt2.setString(1, csv); stmt2.setInt(2, record_id); stmt2.executeUpdate(); conn.close(); %>

<%= name %>

Grid

<% for(char[] row : grid) { %> <% for(char c : row) { csv += "" + c + ','; %> <% } %> <% csv += "\\n"; } %>
<%= c %>

Words

    <% for (String word : words) { %>
  • <%= word.trim() %>
  • <% } %>


<%@include file="/WEB-INF/jspf/footer.jspf" %>