降魔篇之springmvc專案開發
先說下專案裡面的過濾類
HiddenHttpMethodFilter
因為預設的tomcat不支援delete,put 等
所以需要在請求的方法包裝下支援下這些方法。
package com.oasystem.filter;
import java.io.IOException;
import java.util.Locale;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.HiddenHttpMethodFilter;
public class MyHiddenHttpMethodFilter extends HiddenHttpMethodFilter{
private String methodParam = DEFAULT_METHOD_PARAM;
public void setMethodParam(String methodParam){
Assert.hasText(methodParam, "'methodParam' must not be empty");
this.methodParam = methodParam;
}
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String paramValue = request.getParameter(methodParam);
if (StringUtils.hasLength(paramValue)) {
String method = paramValue.toUpperCase(Locale.ENGLISH);
HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, method);
filterChain.doFilter(wrapper, response);
} else {
filterChain.doFilter(request, response);
}
}
private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper {
private final String method;
public HttpMethodRequestWrapper(HttpServletRequest request, String method) {
super(request);
this.method = method;
}
@Override
public String getMethod() {
return this.method;
}
}
}
Assert
編寫程式碼時,我們總是會做出一些假設,斷言就是用於在程式碼中捕捉這些假設,可以將斷言看作是異常處理的一種高階形式。
相關文章
- 降魔篇之springmvc許可權控制SpringMVC
- RPA專案之開發規則篇
- SpringBoot專案開發(一):開篇Spring Boot
- android開源專案【專案篇】Android
- springmvc小專案SpringMVC
- 完全使用 Docker 開發 PHP 專案 (二): 配置篇DockerPHP
- python3 專案開發-中級篇Python
- 基於 abp vNext 和 .NET Core 開發部落格專案 - 終結篇之釋出專案
- Android開源專案第四篇:開發及測試工具篇Android
- 完全使用 Docker 開發 PHP 專案 (一): 安裝篇DockerPHP
- 直播類 APP 專案開發實戰(原理篇)APP
- typescript + react 專案開發體驗之typescriptTypeScriptReact
- typescript + react 專案開發體驗之 reactTypeScriptReact
- 敏捷開發與jira之專案現狀敏捷
- Android開發之專案經驗分享Android
- java-使用 freemarker 替換 jstl EL 開發 springmvc web專案JavaJSSpringMVCWeb
- 測試開發專題-開篇
- K專案的一些心得之專案管理篇專案管理
- 微信小程式開發—專案實戰之計算器開發微信小程式
- SpringMVC專案模組淺析SpringMVC
- typescript + react 專案開發體驗之起手式TypeScriptReact
- 專案管理之我見:程式開發步驟專案管理
- android開源專案【developer篇】AndroidDeveloper
- 專案開發程式
- 專案開發文件
- 開源專案之kisso
- 開源專案之憾
- SpringMVC之檔案上傳SpringMVC
- 開發效率提升之工具篇
- iOS開發之網路篇iOS
- SpringMvc Jpa mysql開發專案,事務失效,現象:Controller增加和修SpringMVCMySqlController
- 小程式雲開發之新聞類專案分析
- SpringMVC的專案架構思想SpringMVC架構
- SAP專案總結之Global Template展示篇
- ERP專案實施之啟動篇
- python專案開發Python
- 電商專案app開發APP
- vue專案開發-3Vue