HttpServletRequest的处理封装(将不断更新)
不多说了,时常工作整理的,直接上代码吧,欢迎大家多提意见。
public class HttpRequestMgrComAction {private HttpServletRequest request = null;private HttpServletResponse response = null;public HttpRequestMgrComAction(HttpServletRequest request,HttpServletResponse response){this.request = request;this.response = response;}/** * 判断参数是否为空 * @param * @return * @throws Exception */public boolean isParamStrValid(String s)throws Exception{boolean result = true;if((s==null)||("null".equalsIgnoreCase(s))||("".equalsIgnoreCase(s))){result = false;}return result;}/** * 当参数为空时给出默认值 * (处理参数时,一种是用默认值,如果传入的参数必填的话,则要在程序中抛出异常,而不是给出默认值。) * @param * @return * @exception * @author liugx */public String setDefaultIfMissing(String s,String replacement) throws Exception{String result = s;try{if(!this.isParamStrValid(result)){result = replacement;}}catch(Exception ex){ex.printStackTrace();}return result;}/** * 对参数进行解码操作 * @param str * @return * @throws Exception * @author liugx */public String decodeUrlParam(String s) throws Exception{String result = s; try{ result = java.net.URLDecoder.decode(result, "UTF-8"); }catch (Exception ex){ System.out.println(ex.getMessage()); ex.printStackTrace(); } return result; } /** * 过虑表单的特殊字符 * @param * @return * @exception * @author liugx */public String filterSpecialChars(String s){if(!hasSpecialChars(s)) return s;StringBuffer sb = new StringBuffer(s.length());char c;for(int i=0;i<s.length();i++){c = s.charAt(i);switch(c){case '<':sb.append("<");break; case '>':sb.append("&qt;");break;case '"':sb.append(""");break;case '&':sb.append("&");break;default:sb.append(c);}}return sb.toString();}/** * 得到压缩输出 * @return * @throws Exception * @author liugx */public PrintWriter getGzipPrintWriter()throws Exception{PrintWriter out;if(isGzipSupoorted()){out = new PrintWriter(new GZIPOutputStream(this.response.getOutputStream()));}else{out = response.getWriter();}return out;}/** * 关闭压缩输出 * @return * @throws Exception * @author liugx */public void closeGzipPrintWriter(PrintWriter out) throws Exception{out.close();}/** * 表单是否含有特殊字符 * @param * @return * @exception * @author liugx */private static boolean hasSpecialChars(String input){boolean flag = false;if((input!=null)&&(input.length()>0)){char c;for(int i=0;i<input.length();i++){c = input.charAt(i);switch(c){case '<':flag = true;break; case '>':flag = true;break; case '"':flag = true;break; case '&':flag = true;break; }}}return flag;}/** * 是否支持压缩格式的传送 * @param * @return * @exception * @author liugx */private boolean isGzipSupoorted(){String encoding = this.request.getHeader("Accept-Encoding");return ((encoding != null)&&(encoding.indexOf("gzip")!=-1));}public HttpServletRequest getRequest() {return request;}public void setRequest(HttpServletRequest request) {this.request = request;}public HttpServletResponse getResponse() {return response;}public void setResponse(HttpServletResponse response) {this.response = response;}}?