ServletUtilities.java

2008年4月30日 | 分类: 后端语言 | 标签:

这个ServletUtilies有狠多很好的功能,能够经常用到。

import javax.servlet.*;
import javax.servlet.http.*;
/**
 *
 * @author Edward
 */
public class ServletUtilities {
public static final String DOCTYPE =
    “<!DOCTYPE HTML PUBLIC \”-//W3C//DTD HTML 4.0 ” +
    “Transitional//EN\”>”;

  public static String headWithTitle(String title) {
    return(DOCTYPE + “\n” +
           “<HTML>\n” +
           “<HEAD><TITLE>” + title + “</TITLE></HEAD>\n”);
  }

  /** Read a parameter with the specified name, convert it
   *  to an int, and return it. Return the designated default
   *  value if the parameter doesn’t exist or if it is an
   *  illegal integer format.
  */
 
  public static int getIntParameter(HttpServletRequest request,
                                    String paramName,
                                    int defaultValue) {
    String paramString = request.getParameter(paramName);
    int paramValue;
    try {
      paramValue = Integer.parseInt(paramString);
    } catch(NumberFormatException nfe) { // null or bad format
      paramValue = defaultValue;
    }
    return(paramValue);
  }

  /** Given an array of Cookies, a name, and a default value,
   *  this method tries to find the value of the cookie with
   *  the given name. If there is no cookie matching the name
   *  in the array, then the default value is returned instead.
   */
 
  public static String getCookieValue(Cookie[] cookies,
                                      String cookieName,
                                      String defaultValue) {
    if (cookies != null) {
      for(int i=0; i<cookies.length; i++) {
        Cookie cookie = cookies[i];
        if (cookieName.equals(cookie.getName()))
          return(cookie.getValue());
      }
    }
    return(defaultValue);
  }

  /** Given an array of cookies and a name, this method tries
   *  to find and return the cookie from the array that has
   *  the given name. If there is no cookie matching the name
   *  in the array, null is returned.
   */
 
  public static Cookie getCookie(Cookie[] cookies,
                                 String cookieName) {
    if (cookies != null) {
      for(int i=0; i<cookies.length; i++) {
        Cookie cookie = cookies[i];
        if (cookieName.equals(cookie.getName()))
          return(cookie);
      }
    }
    return(null);
  }

  /** Given a string, this method replaces all occurrences of
   *  ‘<’ with ‘<’, all occurrences of ‘>’ with
   *  ‘>’, and (to handle cases that occur inside attribute
   *  values), all occurrences of double quotes with
   *  ‘”‘ and all occurrences of ‘&’ with ‘&’.
   *  Without such filtering, an arbitrary string
   *  could not safely be inserted in a Web page.
   */

  public static String filter(String input) {
    StringBuffer filtered = new StringBuffer(input.length());
    char c;
    for(int i=0; i<input.length(); i++) {
      c = input.charAt(i);
      if (c == ‘<’) {
        filtered.append(”<”);
      } else if (c == ‘>’) {
        filtered.append(”>”);
      } else if (c == ‘”‘) {
        filtered.append(”"”);
      } else if (c == ‘&’) {
        filtered.append(”&”);
      } else {
        filtered.append(c);
      }
    }
    return(filtered.toString());
  }
}

目前还没有任何评论.
注意: 评论者允许使用'@user:'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC:'(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。