你可以了解一下,niginx,用代理來使得端口一致
在中間網(wǎng)站我請(qǐng)求兩次,第一次通過 GET 方式請(qǐng)求這個(gè)表單頁面從而獲取 token,第二次帶上這個(gè) token 發(fā)起 POST 請(qǐng)求,這樣不就成功偽裝了嗎?我這個(gè)想法應(yīng)該有問題,但好像又可以,錯(cuò)在哪?
中間網(wǎng)站是什么?
如果是指中間人攻擊,那么,你應(yīng)該關(guān)注的是 HTTPS。CSRF 不處理中間人攻擊。
如果是指第三方網(wǎng)站,那么,除非你的網(wǎng)站通過 Access-Control-Allow-Origin 頭允許,否則第三方網(wǎng)站無法讀取請(qǐng)求返回的內(nèi)容(跟其它一些跨域請(qǐng)求的處理一樣,能請(qǐng)求,但是未經(jīng)允許不得訪問),也就拿不到 token。
PS: 這么基礎(chǔ)的問題,那么多回答,竟然只有一個(gè)稍微靠譜點(diǎn)的…………
首先,高流量場景下,不會(huì)有這種 30 分鐘的東西。
其次,這類 30 分鐘的東西,如果未完成,在設(shè)計(jì)上是會(huì)重跑的。
最好使用相互兼容的版本號(hào)
先使用wx.scanCode獲取掃描數(shù)據(jù),再使用wx.request發(fā)送給后端。
SpringMVC:
Spring Web MVC is the original web framework built on the Servlet API and included in the Spring Framework from the very beginning. The formal name "Spring Web MVC" comes from the name of its source module spring-webmvc but it is more commonly known as "Spring MVC".
Spring boot:
Spring Boot makes it easy to create stand-alone, production-grade Spring-based Applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
從簡介我們看出兩者定位其實(shí)不同,SpringMVC是MVC框架,Spring Boot是為了讓你快速開發(fā)基于Spring 應(yīng)用.Spring Boot 通過stater的方式簡化整個(gè)Spring生態(tài)配置, 比如你題中提到的SpringMVC, 對(duì)應(yīng)的starter就是spring-boot-starter-web, 從開發(fā)體驗(yàn)上來說就是你提到的,沒有很多xml配置,并內(nèi)置了tomcat.
開發(fā)時(shí)啟動(dòng)慢,原因很多
1.你電腦里面啟動(dòng)的其他軟件占用資源了。比如你打開了很多網(wǎng)頁,打開了音樂播放器,打開了mysql服務(wù)等等,系統(tǒng)資源是一定的,你多他就少。
2.ide每次需要預(yù)編譯,檢查你的項(xiàng)目有沒有編譯錯(cuò)誤,這個(gè)一般會(huì)耗費(fèi)一點(diǎn)時(shí)間。如果你的ide還裝了其他插件,插件也會(huì)進(jìn)行檢查,會(huì)耗費(fèi)一定的時(shí)間。
3.之前啟動(dòng)的歷史,由于你stop服務(wù)不當(dāng),導(dǎo)致java進(jìn)程駐留在系統(tǒng),同時(shí)多個(gè)java進(jìn)程在系統(tǒng)中會(huì)導(dǎo)致啟動(dòng)失敗或者啟動(dòng)非常之慢
是第二次請(qǐng)求接口使返回的數(shù)據(jù)亂碼嗎?
還是查詢r(jià)edis中的值時(shí)亂碼。
我也在springboot的一個(gè)小項(xiàng)目中測試了一下,不過功能正常。
jpa:
show-sql: true
jackson:
default-property-inclusion: non_null
redis:
host: 192.168.1.111
port: 6379
對(duì)于使用StringRedisTemplate去存儲(chǔ)token的AOP是正常的沒我并沒有配置什么,而是直接使用springboot的集成,
import org.springframework.data.redis.core.StringRedisTemplate;
然后我再一個(gè)請(qǐng)求商品的list時(shí)加了@Cacheable進(jìn)行商品信息的緩存。
@GetMapping("/list")
@Cacheable(cacheNames = "product",key = "1")
// @Cacheable(cacheNames = "product", key = "#sellerId", condition = "#sellerId.length() > 3", unless = "#result.getCode() != 0")
public ResultVO list(){
...
...
...
return ResultVOUtil.success(productVOList);
}
再頁面與postman都是正常的顯示數(shù)據(jù),且控制臺(tái)也跑出了sql(我這里執(zhí)行兩個(gè)sql操作)
當(dāng)我再次刷新時(shí),sql并沒有執(zhí)行,而是去請(qǐng)求redis。
我去查看了redis,也正常存儲(chǔ)進(jìn)去了
你能具體說下你的bug問題還有復(fù)現(xiàn)下它的發(fā)生環(huán)境嗎?
1,先測試純字符串寫入會(huì)不會(huì)成功
2.循環(huán)中字符串拼接,循環(huán)外寫入 dom 中
打開圖中的選項(xiàng)
這樣靜態(tài)資源也返回index頁面了吧,應(yīng)該需要判斷是靜態(tài)資源就不返回index才行。
收到RST的socket,第一次觸發(fā)可讀,read返回-1并設(shè)置errno,不close得話,繼續(xù)觸發(fā)可讀,再read便會(huì)返回0。
try {
int userId = 1;
User user = userMapper.findById(userId);
} catch (Exception e) {
if (e instanceof NetException) {
// TODO: handle exception
logger.info("xxxxxxxxxxxxxxxxxxxxxxx");
System.out.println(e.getStackTrace());
logger.info("xxxxxxxxxxxxxxxxxxxxxxx");
} else {
// TODO: handle exception
logger.info("xxxxxxxxxxxxxxxxxxxxxxx");
System.out.println(e.getStackTrace());
logger.info("xxxxxxxxxxxxxxxxxxxxxxx");
}
}
僅供參考。
<link rel="stylesheet" type="text/css" media="all"
href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
**在你頁面頭部加上這個(gè),立馬解決,官方文檔說這是他的運(yùn)行組件,必備得
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#using-thtext-and-externalizing-text問題找到了, 不是FileWriter的問題, 是生成文件并進(jìn)行下載時(shí)
InputStream is = new FileInputStream(file);
OutputStream os = response.getOutputStream();
byte[] b = new byte[2048];
while ((is.read(b)) != -1) {
os.write(b);
}
有bug
const http = require('http');
var querystring = require('querystring');
const postData = JSON.stringify(
{
"body":
{
"content":"拜訪",
"visitor_name":"李四",
"visitor_company_name":"",
"check_in_plcae":"南京",
"visitor_type":"02",
"host":"01",
"visitor_num":"11",
"photo":""
}
}
);
console.log(postData);
const options = {
hostname: '',
port: 8089,
path: '',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(postData)
}
};
const req = http.request(options, (res) => {
console.log(`狀態(tài)碼: ${res.statusCode}`);
console.log(`響應(yīng)頭: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`響應(yīng)主體: ${chunk}`);
});
res.on('end', () => {
console.log('響應(yīng)中已無數(shù)據(jù)。');
});
});
req.on('error', (e) => {
console.error(`請(qǐng)求遇到問題: ${e.message}`);
});
// 寫入數(shù)據(jù)到請(qǐng)求主體
req.write(postData);
req.end();
最后我通過這種方式發(fā)送了過去
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/api/video/**").addResourceLocations("file:///home/xxx/桌面/");
}
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。