對這個“中文參數(shù)”編碼即可。
對于get請求
如果你的請求是get,參數(shù)有中文的,比如 ?name=張上,按照如下處理
前端使用 encodeURIComponent(encodeURIComponent(url)),對url進行二次編碼。
后端:拿到參數(shù)值,使用URLDecoder.decode(s, "UTF-8")解碼一下。這樣方式確實可行的,答主在實際項目總使用過。
舉個例子吧:
前端:
<script type="text/javascript">
var url = "/xxx/param/test";
var name = "張上";
name = encodeURIComponent(name);
name = encodeURIComponent(name);//二次編碼
alert(name);
url = url + "?name="+name;
window.location.href = url;
</script>
后端:
@Controller
@RequestMapping(value="/param")
public class ParamController extends BaseController<ParamEntity> {
/**
* @throws UnsupportedEncodingException
*
*/
@RequestMapping(value="/test",method=RequestMethod.GET)
public String test(@RequestParam("name") String name) throws UnsupportedEncodingException{
name = URLDecoder.decode(name, "UTF-8");//實測,可以正確的得到中文。
System.out.println(name);
return "index";
}
}
注意:get請求有中文參數(shù),可以指定容器使用何種編碼規(guī)則來解碼提交的參數(shù)(有人回答使用這種方式,即修改tomcat 配置文件中的Connector中的URIEncoding參數(shù)),但是這種做法不建議使用,推薦使用二次編碼吧。
為什么需要二次編碼?可以看如下博文:
eURIComponent編碼2次
給上傳圖片添加fileName。
git remote add github git@github.com/youname/youprojectname.git
git remote add coding git@coding.net/youname/youprojectname.git
git push github master
git push coding master
通常用origin作為遠程倉庫的名字,它只是個名字而已,你可以換成你喜歡的名字。例如我這里換成了github和coding
檢查控制器的注解是否是@Controller@RestController不會返回視圖,只會返回數(shù)據(jù)
將@RestController換成@Controller
不是無法啟動,而是運行完正常退出了,new 出來的Thread 要調(diào)用join方法阻塞主線程,要不主線程(main 方法)執(zhí)行完就退出了,等等剛才圖沒刷出來
看了一下,原因有兩點:
O(8^(N*N)),也就是說,8*8的棋盤復(fù)雜度為O(8^64),這是一個天文數(shù)字舉個例子,即使是100 * 100的棋盤,如果恰好每一步都選擇的是正確的跳法,那么也只需要10000步即可算出答案(假設(shè)答案是存在的)。但假如運氣不好,前面的選擇都錯了,導致程序需要不斷重試,那么即使是5*5的棋盤,也需要大約8^25步才能找到答案!
而窮舉法并不會去判斷并選擇最有可能的跳法去嘗試,它只是無腦地按照順序一次次嘗試,所以找到答案所消耗的時間完全是憑運氣。當N=5、6、7的時候運氣較好,而N=8的時候運氣卻比較差。
原理部分就分析到這里,下面來談?wù)剝?yōu)化。
雖然窮舉法解出N=8比較困難,但是并不是說你的程序沒有問題。我發(fā)現(xiàn)了幾點問題可以改進dfs方法(可以從5、6、7的計算時間看出改進效果,但N=8的時候仍然無能為力)
// dr和dc放到方法外面定義,這樣每次遞歸的時候不用單獨創(chuàng)建一遍數(shù)組
final int[] dr = {2, 2, -2, -2, 1, 1, -1, -1};
final int[] dc = {1, -1, 1, -1, 2, -2, 2, -2};
// 修改dfs方法的參數(shù),增加count和total,目的是消除check方法。
// count表示當前進行到第幾步了,total是總步數(shù),如果count=total,就表示棋盤已經(jīng)遍歷完了
private boolean dfs(int[][] board, int sr, int sc, List<String> res, int count, int total) {
if (/*check(board)*/count == total) {
for (int i = 0; i < board.length; i++) {
res.add(Arrays.toString(board[i]));
}
return true;
}
for (int i = 0; i < 8; i++) {
// 去掉棋盤的copy,只使用原棋盤數(shù)組即可
// int[][] newBoard = deepthCopy(board);
int cr = sr + dr[i];
int cc = sc + dc[i];
if (cr >= 0 && cr < board.length && cc >= 0 && cc < board.length && board[cr][cc] == 0) {
// newBoard[cr][cc] = newBoard[sr][sc] + 1;
// 每次遞歸前給下一步要嘗試的格子賦值,但如果沒找到答案,再把那個格子清空。這樣就可以實現(xiàn)無需借助棋盤拷貝也可以完成遞歸
board[cr][cc] = count + 1;
if (dfs(board, cr, cc, res, count + 1, total)) {
return true;
} else {
board[cr][cc] = 0;
}
}
}
return false;
}
調(diào)用的時候改為:
dfs(board, sr, sc, res, 1, N * N);頁面上傳了三個String,控制層直接用List<String>接收,這樣收據(jù)類型對不上,肯定不能接收到。
建議: 前端頁面直接把三個圖片地址拼接成一個字符串,逗號隔開,控制層直接用一個String接收,然后在Java中轉(zhuǎn)換成List
text居中就直接text-align: center就行了啊。
feign 調(diào)用 zuul
這里的代碼的邏輯是將4個字節(jié)的int型按字節(jié)分別取出,并不是什么清零操作
https://www.cnblogs.com/yingp...
這個有個JAVA代碼,你可以參考下。我一開始是用C寫的,感覺太麻煩了,JAVA不太會,但是看懂了一點,希望可以幫到你
1、所有函數(shù)都是Function的實例(不考慮箭頭函數(shù)),所以所有函數(shù)的[[prototype]]原型都指向Function.prototype。
2、每一個prototype對象都有1個constructor屬性指向構(gòu)造它的函數(shù)。
3、函數(shù)實例本身并沒有constructor屬性,便沿著原型鏈去尋找,直到發(fā)現(xiàn)Function.prototype內(nèi)有constructor屬性。
4、根據(jù)2,F(xiàn)unction.prototype.constructor指向Function。
5、可能奇怪的點在于Function本身也是Function的實例,F(xiàn)unction的[[prototype]]原型指向Function.prototype,設(shè)計者可能是為了保持函數(shù)特性一致而設(shè)計的,畢竟凡事必得有始有終嘛(跑。
沒有人能回答嗎??
這不是iphoneX獨有的問題,我之前碰到過,彈層顯示的同時,把body的定位置為fixed,給個寬度就好了
$('body').css({'position': 'fixed', 'width': '100%'});
彈層關(guān)閉的時候要重置回來
$('body').css({'position': 'relative'});你在chrome瀏覽器上打開F12看一下圖片圖顯示情況,再做進一步判斷
修改日志的級別為 info
This class is thread-safe: multiple threads can share a single Timer object without the need for external synchronization.
比較推薦重新請求,對于vue的話。就算你重新請求后渲染組件之后也對用戶體驗沒有太大影響,但是你插入的數(shù)據(jù)不見得就會操作成功,如果response error的話,那豈不是還要在當前頁面把新加的數(shù)據(jù)刪掉。
原因是post中不能設(shè)置header,使用multipartfile的時候,已經(jīng)默認進行了使用
看不出來什么問題啊,加點日志,看一下是不是哪個方法沒跑完。
之前通過redis處理map的更新時,高并發(fā)會有鎖住的情況。后續(xù)把map中更新頻繁的值取出來直接放redis就好了。
不一定要netty來背鍋
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。