怎樣在filter中獲取ajax提交的資料
當使用Jquery的ajax提交資料時,後臺filter需要攔截其中的引數做處理,但是,使用request.getParameterMap()或request.getQueryString()是獲取不到引數的,測試了一下,只有使用form表單提交的引數才能用這兩種方式獲取到值。
那麼,當使用jquery的ajax提交資料時,要想在filter中獲取到引數,需要從request的原生流中獲取,程式碼如下:
public void getVal(){
String requestType =(String)request.getHeader("X-Requested-With" );
String queryUrl = "";
Map<String,String[]> params = new HashMap<String, String[]>();
Map<String,String[]> params = new HashMap<String, String[]>();
/**判斷是否是ajax提交方式*/
if (requestType != null && requestType.equals("XMLHttpRequest" )) {
//獲取request中的原生流
queryUrl = getRequestPayload(request);
}else{
queryUrl = request.getQueryString();
params = request.getParameterMap();
}
}
//獲取request原生流方法
private String getRequestPayload(HttpServletRequest req) {
StringBuilder sb = new StringBuilder();
try{
BufferedReader reader = req.getReader();
String line;
while((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
}catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
在這裡需要注意的一點是,可能每次請求會涉及到多次讀取request流,但是流是不可以重複讀取的,所以,實現這個功能之前,我們需要封裝一下request,將它變成可以供多次讀取的值,詳見:http://blog.csdn.net/hui_blank/article/details/52870133
相關推薦
怎樣在filter中獲取ajax提交的資料
當使用Jquery的ajax提交資料時,後臺filter需要攔截其中的引數做處理,但是,使用request.getParameterMap()或request.getQueryString()是獲取不到引數的,測試了一下,只有使用form表單提交的引數才能用這兩
Django中button的處理 & ajax提交資料時不走Form元件驗證
button分類: type=’submit’ 預設型別,會預設提交表單~ type=’button’ type=’reset’ 專案中出現的問題: ajax提交資料時不走Form元件驗
WebAPI的AuthorizeAttribute擴充套件類中獲取POST提交的資料
在WEBAPI中,AuthorizeAttribute類重寫時,如何獲取post資料是個難題,網上找資料也不好使,只能自己研究,通過研究發現,WEBAPI給了我們獲取POST資料的可能,下面介紹一下: //將POST資料以字串的形式讀取,例如post的j
WebAPI的AuthorizeAttribute擴展類中獲取POST提交的數據
內容 等待 allow class 通過 newton inpu input count 在WEBAPI中,AuthorizeAttribute類重寫時,如何獲取post數據是個難題,網上找資料也不好使,只能自己研究,通過研究發現,WEBAPI給了我們獲取POST數據的可能
Oracle中獲取Date型別資料,沒有時分秒
oralce資料庫中,獲取Date型別資料,發現數據的格式為:“yyyy-mm-dd”,而不是“yyyy-mm-dd hh24:mi:ss” 1,使用JDBC從oracle資料庫中取Date型別資料,當使用getDate(“欄位名”)方法取值時,只能獲取到日期,而無法獲
laravel Ajax 提交資料 需要驗證csrf 新增一下程式碼
1 .在頁面頭部加上csrf-token: <meta name="csrf-token" content="{{ csrf_token() }}"> 2 . 提交headers中增加 X-CSRF-TOKEN: $.ajaxSetup({ headers: { 'X-CSRF-T
ajax提交資料到後臺php接收(實現方法)
在網上看了很久,發現數據的利用ajax提交資料到後臺其實很簡單,但是很多講解的並不清楚,對於初學者來說,很多真的是看著有點糊塗,拿來直接用,又想去了解怎麼回事,其實利用ajax提交資料到後臺是非常的簡單的。 1 2 3 4 5 6 7 8 $.ajax({
基於ajax提交資料
昨日回顧: 1 inclusion_tag -幹什麼用的?生成html的片段(動態,傳引數,傳資料) -app下新建一個模組,templatetags -建立一個py檔案(mytag.py) -from django.template import Library -register=Libr
如何在ServletResponse,HTTPServletResponse或者Filter中獲取HTTP的內容
由於HTTPServletResponse只提供了getWriter和getOutputStream方法,並未提供獲取報文體的方法。如果在開發時遇到相應需求,可以使用HTTPServletResponseWrapper重新構造response。具體方法如下所示,例
mapper.xml檔案中獲取最新插入資料的主鍵
在開發過程中,我們常常用到在插入資料時,需要得到剛插入的資料的主鍵,MySQL中有以下做法: 1、推薦使用 <insert id="addVehicleParam" parameterType="com.corp.dto.VehicleParamAddDt
vue webpack中使用ajax傳輸資料給後臺
在使用資料傳輸中,大多數採用的都是ajax技術,那麼在vue中怎樣使用ajax技術呢?本篇將帶你入門vue axios中ajax技術。1、基本配置 (1)首先在你的vue專案下配置對應的檔案axios 下載axios元件,最終放置在node_modules\axio
laraval中使用post提交資料中報token的問題
在我們使用laravel框架做專案時,經常會使用post方法提交資料,例如檔案上傳,表單提交,或者處理一些大資料。 我相信大家對於用post提交表單資料時的token處理都懂,就是傳一個隱藏域 <input type="hidden" name="_token" va
如何避免ajax提交資料出現中文亂碼
當我們使用Eclipse做WEB專案的時候,通過Eclipse啟動Web專案需要有對應的伺服器,比如tomcat。 如果使用的不是Eclipse自帶的tomcat,那麼對於tomcat字符集的設定是這個位置的server.xml中,以下以需要 UTF-8字符集為例: 在po
在過濾器filter中獲取spring管理bean的物件例項
有時我們需要在過濾器中獲取自動注入的物件的例項,如果在filter中也通過自動注入的方式往往得到的結果是null,如果通過new一個物件的話,有時可能是我們想要的結果,有時我們只是想獲取spring上下文中唯一的一個例項,spring預設是單例項模式,這樣的話通過自動注入和n
ajax提交資料到後臺php接收
在網上看了很久,發現數據的利用ajax提交資料到後臺其實很簡單,但是很多講解的並不清楚,對於初學者來說,很多真的是看著有點糊塗,拿來直接用,又想去了解怎麼回事,其實利用ajax提交資料到後臺是非常的簡單的。 $.ajax({ type: "POST", url:
框架類---spring---Filter中獲取Spring容器中的bean物件
@Override public void init(FilterConfig filterConfig) throws ServletException { //獲取w
ASP.NET MVC下通過JQuery$.ajax提交資料,控制器接收資料
今天在實現一個小功能時,這個是一個彈出的模態框,然後點選儲存的時候,通過Ajax將文字框中的內容傳到後臺控制器,控制器執行相應的操作,在將內容儲存到資料庫。然後問題就出在用Ajax傳到控制器的時候,控制器接收不到引數。因為寫MVC也比較少,這方面不是很會,所以還是記錄一下。一
ajax提交資料(修改、新增)到資料庫並重新整理資料
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/WEB-INF/pages/commons
在filter中獲取spring容器中的bean物件
在工作中的專案需要,要在filter中使用服務介面,但是採用傳統的new 和注入方式都是空指標異常,最後的解決方式是 @Override public void init(FilterConfig config) throws ServletExce
關於form表單中使用ajax提交表單,ajax無法success的問題
問題背景:我的畢業設計是重構自己以前寫過的一個小網站,之前寫的時候沒有用任何框架,前後臺互動資料靠el表示式、form表單。在完成畢業設計時使用SpringMVC+Spring+MyBatis+JQuery,統一使用ajax來互動資料。 問題再現: html關鍵程式碼<