protected Locale getLocale(HttpServletRequest request) { String locid = request.getParameter(P_LOCALE_ID); if (locid == null || locid.length() == 0) { return request.getLocale(); } StringTokenizer tokenizer = new StringTokenizer(locid, "_-"); String language = String.valueOf(tokenizer.nextToken()).toLowerCase(); String country = tokenizer.hasMoreTokens() ? tokenizer.nextToken() : null; if (country != null) { return new Locale(language, country.toUpperCase()); } return new Locale(language); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ResourceBundle rb = ResourceBundle.getBundle("LocalStrings", request.getLocale()); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); String title = rb.getString("helloworld.title"); out.println("<title>" + title + "</title>"); out.println("</head>"); out.println("<body bgcolor=\"white\">"); // note that all links are created to be relative. this // ensures that we can move the web application that this // servlet belongs to to a different place in the url // tree and not have any harmful side effects. // XXX // making these absolute till we work out the // addition of a PathInfo issue out.println("<a href=\"../helloworld.html\">"); out.println( "<img src=\"../images/code.gif\" height=24 " + "width=24 align=right border=0 alt=\"view code\"></a>"); out.println("<a href=\"../index.html\">"); out.println( "<img src=\"../images/return.gif\" height=24 " + "width=24 align=right border=0 alt=\"return\"></a>"); out.println("<h1>" + title + "</h1>"); out.println("</body>"); out.println("</html>"); }
public Locale getLocale() { return request.getLocale(); }
/** * Get Query By Form results throught response output stream. * * @param queryspec Name of XML file containing the Query Specification * @param columnlist List of comma separated column names to retrieve * @param where SQL WHERE clause to apply * @param order by SQL ORDER BY clause to apply * @param showas Output format. One of { "CSV" <i>(comma separated)</i>, "TSV" <i>(tabbed * separated)</i>, "XLS" <i>(Excel)</i> } * @throws IOException * @throws FileNotFoundException * @throws ServletException */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, FileNotFoundException, ServletException { Class oDriver; Connection oConn = null; ServletOutputStream oOut = response.getOutputStream(); QueryByForm oQBF; String sQuerySpec; String sColumnList; String sWhere; String sOrderBy; String sShowAs; String sStorage; if (DebugFile.trace) { DebugFile.writeln("Begin HttpQueryServlet.doGet(...)"); DebugFile.incIdent(); } sStorage = Environment.getProfileVar("hipergate", "storage"); if (DebugFile.trace) DebugFile.writeln("storage=" + sStorage); try { oDriver = Class.forName(jdbcDriverClassName); } catch (ClassNotFoundException ignore) { oDriver = null; if (DebugFile.trace) DebugFile.writeln("Class.forName(" + jdbcDriverClassName + ") : " + ignore.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Database driver not found"); } if (null == oDriver) return; try { sQuerySpec = request.getParameter("queryspec"); sColumnList = request.getParameter("columnlist"); if (null == sColumnList) sColumnList = "*"; sWhere = request.getParameter("where"); if (null == sWhere) sWhere = "1=1"; sOrderBy = request.getParameter("orderby"); if (null == sOrderBy) sOrderBy = ""; sShowAs = request.getParameter("showas"); if (null == sShowAs) sShowAs = "CSV"; if (DebugFile.trace) DebugFile.writeln("queryspec=" + sQuerySpec != null ? sQuerySpec : "null"); if (DebugFile.trace) DebugFile.writeln("where=" + sWhere); if (DebugFile.trace) DebugFile.writeln("orderby=" + sOrderBy); if (hasSqlSignature(sColumnList)) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid Column List Syntax"); return; } oQBF = new QueryByForm("file://" + sStorage + "/qbf/" + sQuerySpec + ".xml"); if (DebugFile.trace) DebugFile.writeln("DriverManager.getConnection(" + jdbcURL + ",...)"); oConn = DriverManager.getConnection(jdbcURL, dbUserName, dbUserPassword); // Send some basic http headers to support binary d/l. if (sShowAs.equalsIgnoreCase("XLS")) { response.setContentType("application/x-msexcel"); response.setHeader( "Content-Disposition", "inline; filename=\"" + oQBF.getTitle(request.getLocale().getLanguage()) + " 1.csv\""); } else if (sShowAs.equalsIgnoreCase("CSV")) { response.setContentType("text/plain"); response.setHeader( "Content-Disposition", "attachment; filename=\"" + oQBF.getTitle(request.getLocale().getLanguage()) + " 1.csv\""); } else if (sShowAs.equalsIgnoreCase("TSV")) { response.setContentType("text/tab-separated-values"); response.setHeader( "Content-Disposition", "attachment; filename=\"" + oQBF.getTitle(request.getLocale().getLanguage()) + " 1.tsv\""); } else { response.setContentType("text/plain"); response.setHeader( "Content-Disposition", "inline; filename=\"" + oQBF.getTitle(request.getLocale().getLanguage()) + " 1.txt\""); } if (0 == sOrderBy.length()) oQBF.queryToStream( oConn, sColumnList, oQBF.getBaseFilter(request) + " " + sWhere, oOut, sShowAs); else oQBF.queryToStream( oConn, sColumnList, oQBF.getBaseFilter(request) + " " + sWhere + " ORDER BY " + sOrderBy, oOut, sShowAs); oConn.close(); oConn = null; oOut.flush(); } catch (SQLException e) { if (DebugFile.trace) DebugFile.writeln("SQLException " + e.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (ClassNotFoundException e) { if (DebugFile.trace) DebugFile.writeln("ClassNotFoundException " + e.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (IllegalAccessException e) { if (DebugFile.trace) DebugFile.writeln("IllegalAccessException " + e.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (Exception e) { if (DebugFile.trace) DebugFile.writeln("Exception " + e.getMessage()); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } finally { try { if (null != oConn) if (!oConn.isClosed()) oConn.close(); } catch (SQLException e) { if (DebugFile.trace) DebugFile.writeln("SQLException " + e.getMessage()); } } if (DebugFile.trace) { DebugFile.decIdent(); DebugFile.writeln("End HttpQueryServlet.doGet()"); } } // doGet()