记录工作中的一点小坑20170913

4月份开始996加班直到8月中旬结束,然后就是忙碌的辞职、开始找工作,现在终于算是进入一种理性的状态了。记录一下工作中的一点坑。

初来公司,需要写一个自己部门的查询,然后就开始筹备,所有东西都是从0开始搭建,还好第一步只实现能展现即可。果断选择了spring boot。  因为之前公司也有类似的需求,是一个架构搭建了一套,我才第一次认识到了spring boot。然后自己私下学了简单应用,后来忙于工作和看书,这块就扔掉了。现在算是一个全新的机会学习吧。

第一个问题:用httpClient请求远程数据接口遇到登录问题,第一次用httpClient,这下直接蒙圈了,这怎么解决?之前开发的远程数据请求都是无权限验证,然后就开始百度,大概了解了机制后,开始解决这个问题。

第一步:去到登录页,拿到登录请求的链接的参数,这一步具体怎么操作,稍微说一下,用chrom浏览器(就是为了页面请求查看和调试方便)的调试台,然后查看了请求链接,和请求参数.

第二步:根据请求信息自己构造了PostMethod方法请求,这样就实现了远程登录。然后我们内部的系统是这样的,登录会携带一个returnUrl在成功后直接重定向到该请求,我的所有数据都是在这个请求里,然后再在同一个httpClient对象实例下去直接请求数据源,这样就拿到了数据。

这里只是在请求数据源前多了一步登录操作。问题还是非常容易解决。

其实这里还有个问题,因为我的请求是并发的,创建多个线程去请求数据,这样就造成了每一次查询都要并发的登录N次,这样的程序设计出来,呵呵!那怎么解决呢?

如果对session和cookie原理理解的同学很容易就会想到,我们可以把第一个请求的数据请求返回的结果中拿到这些值,然后保存起来,之后的每次创建httpClient对象就直接去容器中拿到这些信息携带过去就实现了,这里还有个问题是,我们的session机制的问题,服务端会设置一定时间过期,那么过期后怎么办呢,这里呢我想了几种解决方案。

方案1:请求进来先去判断容器里有没有,没有的话,去请求登录并返回结果中拿到的值去放到容器中,然后再进行数据请求,拿到的结果进行验证,如果返回登录页,则清空容器再进行登录操作保存最新值。

方案2:单独起一个线程去执行登录操作,并定时的拿这个值去验证是否过期,请求线程只负责拿值去请求即可。

方案3:借用生产者消费者的模型,如果请求数据发现请求过期、阻塞,唤醒一个永久存活的线程去执行登录操作,写到容器中,然后执行唤醒操作,自己请求返回正常则再次阻塞。

从复杂度来讲,每个请求都去执行登录操作是最简单的实现方式,其他几种

第二个坑是springboot的静态资源引用问题。

默认情况下html是在templates下,js,img等是在static下。在页面引入的时候写直接路径即可。

我以为是我配置哪里有问题了,搞到最后才明白,页面引入资源的时候,写的路径一定是从static下一层开始的,千万别带static。 这个问题搞了我2小时,还是今天早上我百度时候看了另外一个路径,然后自己尝试了下发现能找到,请求时候没写static,然后切换回原来的路径下发现也OK了。


对于js


引入的例子

这里的..  代表着  请求路径前缀,比如  http://localhost:8080/

如果这里配置了server.context-path=项目名    则..代表着http://localhost:8080/项目名

如果不加..  则 直接在填写的js路径前加上http://localhost:8080/

比如你引入路径为 src="/a/b/c",  则发现请求路径是http://localhost:8080/a/b/c

问题3:通常jsp页面我们一般用request对象获取项目的path,这样通过path+相对请求就可以构建完整的请求,但是html没有request对象,需要写相对或者绝对路径。在windows下昨晚用

http://127.0.0.1:8080/请求路径    ajax调用   不管怎么调试  都是进入了error。百度了半天也没有人说啥问题,今天早上又折腾了4小时就在最后快要绝望的时候,看到有个帖子说可能是跨域问题,于是我改了localhost  发现  请求就正常了。又做了其他测试,发现和上面的类似。

如果配置为url:'http://127.0.0.1:8090/项目自定义名称/请求路径',则ajax会因为跨域进入error

如果配置为url:'http://localhost:8090/项目自定义名称/请求路径',则ajax请求正常

如果配置为:url:'/请求路径',且未配置server.content-path,请求正常

如果配置为:url:'/请求路径',且配置server.content-path,请求报错

如果配置为:url:'../请求路径',且配置server.content-path,请求正常

这里留有疑问,关于linux和windows下对127.0.0.1的ajax的识别问题。抽时间一定要搞清楚ajax请求判断是否跨域这个问题是否与操作系统有关

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,494评论 18 139
  • 最近一段时间,一直在努力寻找有效的阅读方法,以期建立一套自己的阅读模式,更大的野心是重塑自己的生活方式。所以,从《...
    边缘生存阅读 279评论 0 0
  • 大一的时候我开了个淘宝网店,开了大概半年,就没开了。然后我关闭了店铺半年之后,我才反应过来,当时我进入的那个行业竟...
    我是刘良阅读 250评论 0 0
  • 暴风雨如期而至,夜今日也提前遛了出来,没有星星的夜空,剩下的唯有一片漆黑。这风给这初秋带来了清凉,却没有给予我们纵...
    小陈里的风景与故事阅读 178评论 0 1
  • 一、多人相册 私密群相册这个需求,在移动互联网早期就有很多产品试图解决这个问题。交互逻辑一般是用户建立一个共享相册...
    周揚颿_Leeves阅读 329评论 0 0