Java tutorial
/* * ==================================================================== * Copyright (c) 2005-2012 sventon project. All rights reserved. * * This software is licensed as described in the file LICENSE, which * you should have received as part of this distribution. The terms * are also available at http://www.sventon.org. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.sventon.util; import org.apache.commons.lang.StringUtils; import javax.servlet.http.HttpServletRequest; import java.util.regex.Pattern; /** * Web related utility methods. * * @author jesper@sventon.org */ public final class WebUtils { public static final String APPLICATION_OCTET_STREAM = "application/octet-stream"; public static final String CONTENT_TYPE_TEXT_PLAIN = "text/plain; charset=\"UTF-8\""; /** * Content disposition Response header. */ public static final String CONTENT_DISPOSITION_HEADER = "Content-disposition"; public static final String NL = System.getProperty("line.separator"); public static final String NBSP = " "; public static final Pattern NL_REGEXP = Pattern.compile("(\r\n|\r|\n|\n\r)"); /** * Private constructor to prevent instantiation. */ private WebUtils() { } /** * Replaces any new line characters with a HTML BR. * * @param string String to replace * @return Result, or <tt>null</tt> if given input was <tt>null</tt>. */ public static String nl2br(final String string) { if (StringUtils.isEmpty(string)) { return string; } return NL_REGEXP.matcher(string).replaceAll("<br>"); } /** * Replaces leading spaces with the HTML entity <code> </code>. * * @param string Input string. Can be one or more lines. * @return Replaced output string. */ public static String replaceLeadingSpaces(final String string) { if (StringUtils.isEmpty(string)) { return string; } final StringBuilder sb = new StringBuilder(); final String[] lines = NL_REGEXP.split(string); for (final String line : lines) { if (!StringUtils.isWhitespace(line)) { String result = org.springframework.util.StringUtils.trimLeadingWhitespace(line); int removedSpacesCount = line.length() - result.length(); for (int i = 0; i < removedSpacesCount; i++) { result = NBSP + result; } sb.append(result); } else { sb.append(line); } // Make sure to only append NEWLINE when multiple lines. if (lines.length > 1) { sb.append(NL); } } return sb.toString(); } /** * Extracts the full request URL, including scheme, server name, * server port (if not 80) and context path. * * @param request The request. * @return The full URL, ending with a forward slash (/). */ public static String extractBaseURLFromRequest(final HttpServletRequest request) { final StringBuilder sb = new StringBuilder(); sb.append(request.getScheme()); sb.append("://"); sb.append(request.getServerName()); if (request.getServerPort() != 80) { sb.append(":"); sb.append(request.getServerPort()); } sb.append(request.getContextPath()); sb.append("/"); return sb.toString(); } }