forked from Myfanqie/Myfanqie.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.json
1357 lines (1357 loc) · 130 KB
/
content.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"meta": {
"title": "薛定谔のdog",
"subtitle": null,
"description": "好少年光芒万丈",
"author": "薛定谔のdog",
"url": ""
},
"pages": [
{
"title": "comment",
"date": "2019-05-20T15:13:48.000Z",
"updated": "2019-06-11T15:04:08.137Z",
"comments": true,
"path": "comment/index.html",
"permalink": "/comment/index.html",
"excerpt": "",
"text": "念两句诗 叙别梦、扬州一觉。 【宋代】吴文英《夜游宫·人去西楼雁杳》",
"keywords": "留言板"
},
{
"title": "tags",
"date": "2018-12-12T14:14:16.000Z",
"updated": "2019-05-19T23:34:01.067Z",
"comments": true,
"path": "tags/index.html",
"permalink": "/tags/index.html",
"excerpt": "",
"text": ""
},
{
"title": "links",
"date": "2018-12-19T15:11:06.000Z",
"updated": "2020-02-12T16:46:10.508Z",
"comments": true,
"path": "links/index.html",
"permalink": "/links/index.html",
"excerpt": "",
"text": "",
"keywords": "友人帐"
}
],
"posts": [
{
"title": "如何驯服小羽羽",
"slug": "如何驯服小羽羽",
"date": "2020年12月3日15:37:06",
"updated": "2020年12月3日15:37:17",
"comments": true,
"path": "2020/11/25/如何驯服小羽羽/",
"link": "",
"permalink": "/2020/11/25/如何驯服小羽羽/",
"excerpt": "",
"text": "驯服不了,透哭她就对了。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "短暂的暑假",
"slug": "短暂的暑假",
"date": "2020-08-08T14:01:50.000Z",
"updated": "2020-08-08T14:04:49.227Z",
"comments": true,
"path": "2020/08/08/短暂的暑假/",
"link": "",
"permalink": "/2020/08/08/短暂的暑假/",
"excerpt": "",
"text": "虽然有疫情,但是学校还是组织了一波返校,目的就是考试,感觉还是蛮水的。然后今天就是放暑假了,刚刚到家。有点累 这次的暑假会短一点点,大概就是8月26号开学。 在这短短的十几天里面,我觉得还是多多少少的学点东西,明天的话,打算是从看书搞起。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "夏日的迷茫",
"slug": "夏日的迷茫",
"date": "2020-06-21T13:45:56.000Z",
"updated": "2020-07-24T02:53:06.713Z",
"comments": true,
"path": "2020/06/21/夏日的迷茫/",
"link": "",
"permalink": "/2020/06/21/夏日的迷茫/",
"excerpt": "",
"text": "天气越来越热了,就是有一种感觉啥都不想干。。。。 学习也不是不想搞,游戏也不是很想玩。。。 不过每过一段时间,又会感觉很愧疚今天又没有学习。。。。 我看看我现在一天天的都在干嘛,主要就是在qq群,聊天水群。然后学习的频率下降了,还有点不知道学啥好(主要是感觉学的东西太多了,",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "旅行者",
"slug": "旅行者",
"date": "2020-06-17T02:21:47.000Z",
"updated": "2020-06-17T02:29:01.675Z",
"comments": true,
"path": "2020/06/17/旅行者/",
"link": "",
"permalink": "/2020/06/17/旅行者/",
"excerpt": "",
"text": "假设,你现在是一名「普通的旅行者」 现在,你来到了一个美丽的森林里,你悠然的走在丛林中,听着脚步踩在落叶上的沙沙声,你一会儿被一朵美丽的花朵吸引,一会儿又在一条清澈的小溪边小歇,时不时的还与一只呆萌的兔子合影… 就在这时,你的手机突然没电了,导航不能用了,身上只剩下个指南针… 而你已经深入森林很久了,已经找不到回去的路.. 你心里开始隐隐有些担心,心里有三个字浮现出来: 「走出去!」 你拿起指南针,开始加快脚步,想尽快走出这片森林… 可就在你刚走了没10分钟,你又被眼前的一条超美丽的林荫小道所吸引,你情不自禁的改变了方向,步幅变得缓慢,听着鸟儿叽叽喳喳的在你头顶上鸣唱,你感觉仿佛走入了一片仙境… 走到了小道中心,你忍不住的在这里驻足停留,享受这一份宁静与美丽… 突然,天空开始飘起小雨,天色也开始变得越来越暗.. 你意识到,夜晚马上就要来了! 你才回过神来,不能再看了,如果到了晚上还没走出去,那么今晚我可能就会死在这里,我死在这里,我的爱人怎么办?我的孩子怎么办?… 你越想越担心,雨也越下越大,你的脚步越来越快… 这时,身边又出现了一朵你没见过的花朵,长得极其艳丽,但是你头也不回,径直赶路! 终于在半晚时分,你离开了森林…",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "Java解析JSON(使用API)",
"slug": "Java解析JSON(使用API)",
"date": "2020-05-05T14:02:22.000Z",
"updated": "2020-05-05T14:57:28.066Z",
"comments": true,
"path": "2020/05/05/Java解析JSON(使用API)/",
"link": "",
"permalink": "/2020/05/05/Java解析JSON(使用API)/",
"excerpt": "",
"text": "起初最近搞那个qq机器人,然后我的大部分功能都是调用API,所以也来 写一下,我是这么用这个的。 一开始,我是用的最原始的方法,这个方法就是java基础里面的IO流和网络一开始写的比这个还要糟糕一些这个就是抽出来的一个工具类,这就传入url,就可以获取一个jsonObject对象。 public JSONObject connectMethod(String url){ String resultStr = ""; BufferedReader in = null; try { URL rea = new URL(url);//封装为URL类 HttpURLConnection connection = (HttpURLConnection) rea.openConnection(); connection.setRequestMethod("GET");//设置请求属性 //设置通用请求方式(模拟window浏览器访问,直接复制,不需要改) connection.setRequestProperty("Charset","UTF-8"); connection.setRequestProperty("accept","*/*"); connection.setRequestProperty("connection","Keep_Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1)"); connection.connect();//建立实际的连接 Map<String, List<String>> map = connection.getHeaderFields(); in = new BufferedReader(new InputStreamReader( connection.getInputStream(),"UTF-8" )); String line; while ((line = in.readLine())!=null){ resultStr += line; } JSONObject parseObject = JSON.parseObject(resultStr); return parseObject; } catch (Exception e) { e.printStackTrace(); } return null; } OKHttp起初,我一直都是用上面那个工具类,不过过了一段,时间,我发现群友使用的不是这种方式,而是另一种更加简单、高效的方法,也就是这个OKHttp。 也就是okhttp,然后我迫不及待的找到官网,(果然很简单)。需要导入相关的依赖 https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.6.0这样也是搞成一个工具类来使用,十分的方便 OkHttpClient client = new OkHttpClient(); public String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); try (Response response = client.newCall(request).execute()) { return response.body().string(); } } FastJSON的使用。但是这个时候的问题就是,如何来使用这些JSON,这里就要使用阿里巴巴的fastJson了,不得不说,阿里巴巴是真的强啊。 对于JSON来说,一共有三个东西, 对象,数组,字符串 public class OkHttpTest { public static void main(String[] args) throws IOException { OkHttpAPI okHttp = new OkHttpAPI(); //上面的工具类 String connection = okHttp.connection("https://s.nmsl8.club/getloveword?type=4"); JSONObject jsonObject = JSONObject.parseObject(connection); //转化成JSON对象。 System.out.println(jsonObject.getString("content")); //根据关键字来拿到值。 } } 一般常用的就是这三个方法。数组 public JSONArray getJSONArray(String key)字符串 public String getString(String key)对象 public JSONObject getJSONObject(String key) 当然还有一个通用的get(),不过要强制类型转换才行 java爬虫(Jsoup)一开始以为是什么很高深莫测的东西,结果一看其实也没有那么难,也许生活也是如此吧。。。 1、首先是导入依赖,maven就可以找到, Jsoup 参数一共有三个,第一个需要抓取的URL,第二个你要选择的元素(使用CSS选择器),第三个你要属性还是文本这里就是一个抓取百度百科的一个实例,一句代码就可以写完, String str = Jsoup.Jsoup.parse(new URL("https://baike.baidu.com/item/" + name),180000).select("meta[name=description]").get(0).attr("content"); 当然分开写,我觉得更好理解一点 URL url = new URL("https://baike.baidu.com/item/" + name); //你要搞的URL Document document = Jsoup.parse(url, 18000); //获取文档对象 Element element = document.select("meta[name=description]").get(0); //具体获取的哪个元素 String str = element.attr("content"); //最终拿到了要的属性",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "如何打造一个萌妹子",
"slug": "如何打造一个萌妹子",
"date": "2020-04-21T05:46:41.000Z",
"updated": "2020-04-21T06:32:21.569Z",
"comments": true,
"path": "2020/04/21/如何打造一个萌妹子/",
"link": "",
"permalink": "/2020/04/21/如何打造一个萌妹子/",
"excerpt": "",
"text": "哪个猛男不想打造成一个萌妹子的形象(狗头众所周知妹子无论在那个群里都是十分受欢迎的,那么要如何才能打造成一个妹子形象呢? 1、头像选择动漫可爱的女生头像最佳!傻雕头像最次 例如: 不推荐头像例如: 2、ID、名称选择可爱的id、昵称最佳,,,祖安id、昵称最次 3、说话的艺术(多使用语气词和颜文字)语气词:了、吗、吧、嗯、哈、啊、唔、嘛、呗、呀、啦颜文字:(´・ω・`) (๑• . •๑) (⌯¤̴̶̷̀ω¤̴̶̷́)✧ ╮( ̄▽ ̄)╭称呼使用: 哥哥、小哥哥颜文字可以在这里看看 https://spacekid.me/kaomoji/ 表情包表情包当然也是可爱的表情包优先了知乎-有哪些可爱的表情包傻雕表情包最次知乎-有哪些傻雕的表情包 不过有一说一,我觉得傻雕表情包还是蛮有意思的。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "小黄鸭调试法",
"slug": "小黄鸭调试法",
"date": "2020-03-31T15:43:33.000Z",
"updated": "2020-03-31T15:52:45.233Z",
"comments": true,
"path": "2020/03/31/小黄鸭调试法/",
"link": "",
"permalink": "/2020/03/31/小黄鸭调试法/",
"excerpt": "",
"text": "小黄鸭调试法故事来自于《程序员修炼之道》传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。 你可能有这种经历,当你有问题想别人请教的时候,你开始向别人阐述你的问题,以及过程。然后还没有等你问完,你自己已经从自己说的这个思路中找到了解决方案。然后就走掉了。 反过来,你的朋友跑来问你一个问题,但是当他自己把问题说完,或者说到一半的时候就想出了答案走了,留下一脸茫然的你。 总的来说,这让你在表达自己的想法的时候重新思考了问题,整理了思路。从而得到了自发的得到了解决方案。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "SpringMVC",
"slug": "SpringMVC",
"date": "2020-03-31T02:28:06.000Z",
"updated": "2020-03-31T15:54:22.413Z",
"comments": true,
"path": "2020/03/31/SpringMVC/",
"link": "",
"permalink": "/2020/03/31/SpringMVC/",
"excerpt": "",
"text": "SpringMVC先回顾一下什么是MVC 1. 什么MVC? MVC是模型(model)、视图(view)、控制器(controller)的简写,是一种软件设计规范, 1、Model(模型)表示应用程序核心(比如数据库记录列表)。2、View(视图)显示数据(数据库记录)。3、Controller(控制器)处理输入(写入数据库记录)。 mvc是将业务逻辑、数据、显示分离的方法来组织代码。 mvc主要的作用是降低了视图与业务逻辑之间的双向耦合。 MVC不是一种设计模式而是一种架构模式。 最典型的例子就是JSP+servlet+javabean 2.SpringMVC简述spring MVC是Spring Framework的一部分,设计用java写的一个轻量级别的Web框架。 SpringMVC的特点: 轻量级,简单易学 高效,基于请求响应的MVC框架 与spring兼容性好,无缝结合 约定大于配置 功能强大: RESTful、数据验证、格式化、本地化、主题 简介灵活。 SpringMVC原理先展示一下我画的图,有点丑 DispatcherServlet表示前端控制器HandleMapping为处理器映射器。HandlerExecution为具体的处理器HandlerAdapter为处理器适配器ViewResolver为视图解析器 用户发出一个请求,假设这个url为http://localhost:8080/hello DispatcherServlet调用HandlerMapping,HandlerMapping根据请求来查找Handler HandlerExecution就是具体的Handler,就是根据url找到控制器,现在找到控制器是hello HandlerExecution将解析后的信息传递给DispatcherServlet. 通过hello就通过HandlerAdapter处理器适配器,按照其规则去执行Handler Handler让具体的Controller来执行,这就就是执行具体的业务啥的, 然后Controller又将具体的执行信息返回给HandlerAdapter,例如ModelAndView HandlerAdapter又将视图逻辑名或者模型传给DispatchServlet。 DispatchServlet这里就调用视图解析器ViewResolver来解析HandlerAdapter传递的逻辑视图名 DispatchServlet根据视图解析器的视图结果,调用具体的视图。 最终视图呈现给用户。 写一个Hello World其实上面啥原理是很难的,看不懂话,就先来看看怎么写一个Hello World吧 工具&环境maven 3.6.1jdk 1.8tomcat 7.0idea 2019.3.1 创建一个maven项目。(不导入任何模板) 添加必要依赖pom.xml <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.2.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.0.RELEASE</version> </dependency> </dependencies> 新建一个子项目,具体就是在当前的的项目上new->Model->maven 子项目添加web模板,如图 编写web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 第一部就是配置前端控制器 DispatcherServlet 这个是SpringMVC的核心--> <servlet> <servlet-name>spirngmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatchServlet还要绑定一个配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <!-- 设置启动级别为1,与服务是一起启动的 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 在Springmvc中 /和/* 是不同的两个 1、/的意思是匹配所有的请求。但是不包括jsp 2、/*的意思是匹配所有的请求,包括jsp。(可能会导致无穷的嵌套) --> <servlet-mapping> <servlet-name>spirngmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> 新建一个springmvc-servlet.xml这个文件放在resource目录下面比较好 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--处理器映射器--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!--处理器适配器--> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!--视图解释器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/jsp/"/> <!--后缀--> <property name="suffix" value=".jsp"/> </bean> <bean id="/hello" class="com.liliya.controller.HelloController"/> </beans> 在主目录下编写HelloController这个类 import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView modelAndView = new ModelAndView("test"); modelAndView.addObject("msg","Hello World!!!"); return modelAndView; } } 最后再编写一个jsp就可以运行了在上面的springmvc-servlet中我们配置了视图解释器的前缀所以这里要这样操作,在WEB-INF文件夹下面新建jsp文件夹新建test.jsp 在body里面写上${msg} 配置tomcat,部署项目。 运行,idea自动打开浏览器,然后在浏览器的后缀加上hello就可以看到效果了 注解上面的例子可以初步的了解springmvc原理,但是实际的用的时候我们并不是这么用的,因为,注解才是springmvc的灵魂、 下面写一些如何使用注解来完成HelloWorld项目 创建maven项目 导入各种依赖 配置web.xml,还是一样的不用改 配置springmvc-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 开启自动包扫描--> <context:component-scan base-package="com.liliya.controller"/> <!-- 过滤静态文件,不让他们通过这个mvc--> <mvc:default-servlet-handler/> <mvc:annotation-driven/> <!--视图解释器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans> 编写测试类 import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/hello") public String hello(Model model){ model.addAttribute("msg","HELLO WORLD"); return "hello"; //被视图解释器处理为/WEB-INF/jsp/hello.jsp } } 部署到tomcat 运行,到浏览器查看渲染效果 可以看到注解是简单了很多的。几乎无需配置。 404排查有时候你可能会发现,没有任何错误,URL没有写错。但是就是报了404 解决方案是在out这个输出文件夹中新建一个文件夹lib,然后把所有的jar包丢进去。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "人类的赞歌就是勇气的赞歌",
"slug": "人类的赞歌就是勇气的赞歌",
"date": "2020-03-03T15:18:51.000Z",
"updated": "2020-03-03T16:26:50.163Z",
"comments": true,
"path": "2020/03/03/人类的赞歌就是勇气的赞歌/",
"link": "",
"permalink": "/2020/03/03/人类的赞歌就是勇气的赞歌/",
"excerpt": "",
"text": "黄金精神 人类的赞歌就是勇气的赞歌 –jojo 有时候我们总是会迷茫,会不知所措。就像因为这次的疫情而宅在家里的人。 未知我也不例外,虽然是疫情来了,不过我在家里还是学了不少的东西的。。。不像往年的假期。。看了两本书,《JavaScript语言精粹》、《图解TCP/IP》然后网课我是看了spring以及java的数据结构。 现在学校开了网课,不知道啥时候会学校。现在还有一个情况就是我姐因为要远程办公,所以暂时要征用我电脑从早上的九点,到晚上的九点。也不算是工作12小时,中间还有吃饭的时间。大概是八九个小时。那么我在这段时间都是怎么过的呢。首先是早上,家里这么舒服当然是睡懒觉啦。中午吃完饭下午就开始上网课了晚上的话,吃完饭,玩会手机,大概就可以摸到电脑了。 这是现在没有电脑的时候。 不过我姐前几天在苹果的官网上买了一个笔记本。MacBook pro预计是在这个月的8号到达,不过我是估计这两天应该是可以到达的。毕竟现在已经要开始发货了。就算是临时的组装,也不可能从海外装好然后送过来,毕竟是定制机, 未知 我们总是在害怕未知的东西,有时候我胡思乱想的时候也是这样的,不知道,我现在走的这条路对不对。。。如果走错了,又会怎么样。。。 我的情况很复杂,我也不想说。。。。有时候真的是现实比小说更加的荒诞。 最后其实就是我们老师鼓励我了,难得的开心。ヾ(゚∀゚ゞ)",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "第三次安装黑苹果失败",
"slug": "第三次安装黑苹果失败",
"date": "2020-02-26T14:23:50.000Z",
"updated": "2020-02-26T15:17:35.231Z",
"comments": true,
"path": "2020/02/26/第三次安装黑苹果失败/",
"link": "",
"permalink": "/2020/02/26/第三次安装黑苹果失败/",
"excerpt": "",
"text": "这几天心血来潮又想装黑苹果了;;;可能是因为吃太饱了之前其实尝试着装过,但是都是失败了。 虽然这次也是失败的但是我还是学到了不少的东西。 安装黑苹果的步骤 第一个步是分区,分一个空的磁盘出来(不过如果你财力雄厚的话,可以直接买一个新的硬盘) 第二步是下载苹果的镜像,并且将苹果的镜像写到你的u盘里面(这个u盘不得小于8G) 第三步就是替换efi文件。 第四部就是重启到BIOS,关闭安全启动,然后将u盘的启动顺序调为第一个。开始安装。 空的磁盘这里的意思就是为了给即将安装的苹果系统腾出空间。。。 苹果镜像下载地址https://mirrors.dtops.cc/iso/MacOS/daliansky_macos/这个服务器的地址我查了是在法国,所以我建议使用欧洲国家那边的节点。比如德国 什么是efi文件首先要讲一下系统的引导方式,主要有 BIOS、EFI、UEFI这三种。BIOS是早年系统的引导方式,例如windows的xp系统,EFI是苹果使用的引导方式,这里的EFI文件,就是引导苹果系统启动的UEFI和EFI类似,是现在电脑主流的引导方式。特点是加了安全启动 而EFI文件就是为了让苹果系统认为你是苹果电脑,举个栗子;你想进去女生寝室,但是宿管大妈看到你是男的,就不会让你进去,但是如果你女装了一下,让宿管大妈觉得你是女的,这个时候你就进去了。而这个女装,就相当于是EFI文件了。 但是要注意的是,由于每个电脑的CPU、显卡、主板都不同,所以所要的EFI文件也不同 重启到BIOS这里要根据自己电脑的主板来确定,需要百度,像我的是华为笔记本;F2进入BIOS; 安装失败的原因无法获取相应的EFI文件,一般大佬制作的EFI文件都是电脑cpu是因特尔的,而我这个电脑是AMD的CPU,这就导致了除非是我自己制作电脑的EFI要不然就不能搞这个黑苹果了 但是你知道EFI要怎么做吗,首先你要有一个苹果的系统,然后进去制作。这个就比较麻烦了,因为我现在的问题就是无法装苹果系统,无论是装的虚拟机,还是装的双系统",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "关于这次的武汉肺炎",
"slug": "关于这次的武汉肺炎",
"date": "2020-02-17T17:42:14.000Z",
"updated": "2020-02-17T18:17:21.531Z",
"comments": true,
"path": "2020/02/18/关于这次的武汉肺炎/",
"link": "",
"permalink": "/2020/02/18/关于这次的武汉肺炎/",
"excerpt": "",
"text": "有时候总以为灾难离我们很远,但是实际上一看,却又总是和我们很近 这次的来自武汉的肺炎,真的是害人不浅起因是有人吃蝙蝠。。。但是其实蝙蝠身上携带的病毒是很多的。。。 这场瘟疫带来的后果 春节期间都不拜年走亲戚了 高速公路、机场等人流密集处都设置了体温的检测点,一发现有高烧的情况就带去医院 很多部门都开始停业,这对经济带来了不小的冲击,想很多的酒店,饭馆春节的时候都是人最多的 也就是一年中最忙的时候,但是现在一停业,仓库里的货就会慢慢的腐烂,造成了亏损。 延时开学时间,分流开学。延迟复工时间,不过现在这个时间点,已经有不少的企业开始复工了。 买不到口罩,或者是限购,反正我这里是买不到口罩,制作口罩的厂子现在的直接供应给国家了 新型冠状病毒 感染方式: 空气传播,黏膜感染(我们的黏膜都是暴露在空气中的) 感染症状: 发热、乏力、呼吸困难、干咳,有可能因为病毒的肺炎导致死亡 治疗方式: 像感冒一样等他自己好,但是如果很严重的话,需要提供氧气 感染周期: 从感染到发病要4到14天 如何预防: 不出门,家里蹲 与我相关因为现在是家里蹲了,所以作息跟学校就完全不同了。 首先是肆无忌惮的睡懒觉,一般我就是一觉睡到中午,吃中饭 |ू・ω・` ) 第二个就是我姐现在要用我的电脑上班了,就是远程办公的那个样子 |( ̄Д  ̄)ノ 那就是只能晚上玩电脑了,还是机械键盘按起来舒服啊 ヽ( ̄▽ ̄)ノ 然后就是熬夜咯,就事家里人总是说我熬夜,那就没有办法了咯,我是这样的嘿嘿~",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "idea找不到或者无法加载主类",
"slug": "idea找不到或者无法加载主类",
"date": "2020-02-15T12:39:29.000Z",
"updated": "2020-02-17T18:21:09.660Z",
"comments": true,
"path": "2020/02/15/idea找不到或者无法加载主类/",
"link": "",
"permalink": "/2020/02/15/idea找不到或者无法加载主类/",
"excerpt": "",
"text": "有时候强迫症就把C盘的缓存删了,但是这次没想到,idea就报了错起初的时候报错是无法在C盘/user/username/……这个目录下面创建文件夹啥的。 然后我是这么解决的重启idea,然后用管理员权限打开idea这回就没有这个错误了 但是但是但是 后面跑一下又发现了 找不到或者无法加载主类 起初我还以为是classpath或者java的环境变量出了问题然后我就去检查了一下我的java环境变量以及classpath变量。。。然后发现,没有任何的问题。。。 然后我想到是缓存的问题,起初我是决定在之前的那个目录下面重新创建一样的文件夹,但是很快之前的那个问题又出现了,无法创建文件夹,即使现在是用管理员的权限 我特么** 后面吃完饭我想了一下,决定还是迁移idea的缓存文件位置,让idea自己重新配置缓存文件百度之后,找到bin目录下面的idea.properties 这个文件,然后修改到了D盘 果然 再次打开idea的时候就变成从未使用的一样了,然后导入以前的老配置,,就可以再次使用了 教训就是,不要随意的删除C盘下的文件可能真的是我吃太饱了吧",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "樱花键盘开箱",
"slug": "樱花键盘开箱",
"date": "2020-01-29T03:23:40.000Z",
"updated": "2020-02-17T18:21:57.560Z",
"comments": true,
"path": "2020/01/29/樱花键盘开箱/",
"link": "",
"permalink": "/2020/01/29/樱花键盘开箱/",
"excerpt": "",
"text": "今年新买的樱花键盘到手了,好开心 先放几张图 总之好看就对了 说起来我买键盘之前还研究了这个玩意,写写下来吧 首先就是键数的规格两个常见的键位 87/108 轴体类型以及应用的场景青轴(段落轴): 有明显的的段落感和清脆的click声(游戏办公都比较适合) 红轴(线性轴):无段落感、相对于黑轴更加的轻盈( 发烧友使用) 黑轴(线性轴): 触发快、需要较大压力(适合专业的游戏玩家) 茶轴(段落轴): 比较放松、微弱的段落感、(适合入门级玩家,没有什么特点) 青轴(段落轴): 段落感强烈 就是像按圆珠笔那样(反馈感强,打字爽) 银轴(线性轴): 与红轴相似,但是按键的行程更短 键帽的材质(一般是两种)ABS工程塑料: 工艺比较成熟,生产的成本低,但是长期使用后容易打油 PBT键帽: 制造的成本较高,但是磨砂质感很好 其他键盘买点 防水、宏编程、全键无冲、低响应时间 根据键盘的级别可以分为 入门级、发烧级、骨灰级 总之买好看的就对了",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "寒假实际的情况",
"slug": "实际的情况",
"date": "2020-01-09T17:27:18.000Z",
"updated": "2020-02-17T18:22:33.774Z",
"comments": true,
"path": "2020/01/10/实际的情况/",
"link": "",
"permalink": "/2020/01/10/实际的情况/",
"excerpt": "",
"text": "这里讲讲寒假实际的情况 其实我心里是很想搞学习的 实际上,天天睡懒觉睡到中午 哈哈哈,不是我想睡觉是家里从床太舒服了 有一说一,这个暑假是准备学一个spring 以及 spring boot , 为什么学这个,因为ssm太复杂了, 这个东西,我看了一下配置还是蛮简单的,刚开始的时候我就是简单的看了一下, 然后发现,spring的很多东西看不懂,哎 我还是太天真了。。。。 所以这个寒假我的计划是 我先立一个flag学完 spring、spring boot、java数据结构 如果学习进度不错的话,就学react",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "新年的计划以及总结",
"slug": "新年的计划",
"date": "2019-12-24T17:34:20.000Z",
"updated": "2019-12-24T18:43:03.243Z",
"comments": true,
"path": "2019/12/25/新年的计划/",
"link": "",
"permalink": "/2019/12/25/新年的计划/",
"excerpt": "",
"text": "学习的态度今年感觉有了许多的长进。。。。。。。。 首先这个是一个历史的遗留的问题。。。。我之前是。。。一个差学生来着没有闯过什么大祸,不抽烟、不喝酒。就是学校的一些规章制度我不会去遵守,偶尔老师会头痛。对于学习的态度,,,,我之前是认为读书无用。。。。。。态度自然不佳。。。 但是读书无用论毕竟只是概率的偏差。。。用少数人不读书的人的成功的例子来得出的读书无用的结论,毕竟是以偏概全 为什么突然想学习呢?算是自问自答吧,,,,就像饿的时候会想不由自主的进食一样,对知识渴望的时候也会不由主的想要获取知识。突然感觉自己什么都不懂 我学的什么?很显然,我们只会学习与自己相关的知识,我主要还是学习计算机,实际上我现在什么都想学 今年经过的学习误区应该感觉自己学的东西少了,所以总是想着速成,快速的学会一个东西,然后我就去试着做了,但是很快我就发现了,这样子学习。。。。所学的知识很快就忘了。 相当于是,只看了一遍,而没有真正的去理解这个东西。在没有搞清楚问题的情况,下去学习(看知识点)。。。。。。也就是 为了学习而去学习,,,感觉很恐怖的说。。。 首先就是要明确问题与答案之间的关系,有时候也是指的问题发生的背景然后就是要用多个例子来验证两者之间的关系是否正确。。。 也就是说,,,,我们自己需要记住的是例子,而不是知识。。。 学习方法 方法只是完成目的的手段,目的才是核心照搬别人的学习方法肯定是不好的 我之前试过了 我在知乎上参考了很多别人的想法,还有很多学习的观念,以及学习的方法。。。。。然后我们老师也教了很多学习的方法但是毕竟我还是有一些特殊,我需要高度自定义的学习方法,不过他们说的多多少少都是有帮助的, 首先是作息时间,推荐是六点七点起床,,我一般是九点或者是十点 熬夜已成习惯 学习环境大多数人推荐是去图书馆。。。。。但是我是在宿舍 没想到吧我们选学习环境就是有两个要点,,,一个是否稳定不会再专注学习的时候被打断,第二个就是在这个环境里面自己是否可以专注,专注对于学习来说相当的重要 然后就是找找资料因为学的是计算机所以资料很好找,,我这里的资料已经不同往日,包括但不限于图书、视频、图片一般是去 b站、中国大学mooc、how2j、知乎 这几个平台找答案。。 同时修整了一个问题,,我没有的问题 但是我的同学有的问题他们都认为,,学习就是老师教,然后你听做笔记,这个叫学习。 别人的期望其实老师、父母都给了建议,,,、老师给的建议就是 好好学习,一定要保持不断的学习。。。无论最终学的怎么样我们老师说其实读了那么多的书还是给别人打工家里人:起码要做一个有出息的人(其实有出息这个概念还是太模糊了) 我希望成为一个什么样的人在学习方面,我希望我可以自主的学习,不在过于依赖他人,我希望我可以学习更多的知识,我希望我是一个学习能力很强的人(学习能力超过90%的人) 学习能力在某种程度上来说,就是可以解决实际问题的能力 说白了,我希望我有朝一日也是一个真正的大佬 就是在学校学习的日子可能不多了 现在是现在还是一个渣渣,很多东西都不会,有时候还是会自卑的。所以我还是会给自己灌鸡汤的 比如:种一棵树最好的时间是十年前,其次是现在 我写这个东西的意义是什么 唐僧不是有一句话吗:贫僧从东土大唐而来,要往西天而去",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "idea2019.3破解教程",
"slug": "idea2019-3破解教程",
"date": "2019-12-10T15:05:04.000Z",
"updated": "2019-12-15T06:17:21.783Z",
"comments": true,
"path": "2019/12/10/idea2019-3破解教程/",
"link": "",
"permalink": "/2019/12/10/idea2019-3破解教程/",
"excerpt": "",
"text": "今天我自己用的这个IDEA突然提示说到了使用的期限了,我就想着搞一个破解,结果还是踩了很多的坑 一开始我把这个idea2019版的卸载了,然后打算装上一个idea2018版的搞一个永久的破解版用用 搞了很久然后我把2018版永久的idea搞好了,但是这个时候tm的,我突然发现idea2019的居然也出了破解 的方法,唉,其实我心里还是习惯里这个版本,想着还是把这个2018的卸载了,下回来了2019的 下载idea——2019官网下载地址:https://www.jetbrains.com/idea/download/ 下载补丁链接:https://pan.baidu.com/s/11WHoqYO9FJ506Cfuk2fflA提取码:ppa8 补丁下载好后就放在idea的bin目录下面 打开并且配置idea 先一波试用进去到欢迎界面 配置VM option 添加这个选项 重启IDEA打开进去然后看到help选项里面的Register这个就是激活框 复制下面的其中一个激活码A82DEE284F-eyJsaWNlbnNlSWQiOiJBODJERUUyODRGIiwibGljZW5zZWVOYW1lIjoiaHR0cHM6Ly96aGlsZS5pbyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiJVbmxpbWl0ZWQgbGljZW5zZSB0aWxsIGVuZCBvZiB0aGUgY2VudHVyeS4iLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSRCIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IlJDIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiRE0iLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJBQyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkdPIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUFMiLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IlBDIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUlNVIiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In1dLCJoYXNoIjoiODkwNzA3MC8wIiwiZ3JhY2VQZXJpb2REYXlzIjowLCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-5epo90Xs7KIIBb8ckoxnB/AZQ8Ev7rFrNqwFhBAsQYsQyhvqf1FcYdmlecFWJBHSWZU9b41kvsN4bwAHT5PiznOTmfvGv1MuOzMO0VOXZlc+edepemgpt+t3GUHvfGtzWFYeKeyCk+CLA9BqUzHRTgl2uBoIMNqh5izlDmejIwUHLl39QOyzHiTYNehnVN7GW5+QUeimTr/koVUgK8xofu59Tv8rcdiwIXwTo71LcU2z2P+T3R81fwKkt34evy7kRch4NIQUQUno//Pl3V0rInm3B2oFq9YBygPUdBUbdH/KHROyohZRD8SaZJO6kUT0BNvtDPKF4mCT1saWM38jkw==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ndaik1GD0nyTdqkZgURQZGW+RGxCdBITPXIwpjhhaD0SXGa4XSZBEBoiPdY6XV6pOfUJeyfi9dXsY4MmT0D+sKoST3rSw96xaf9FXPvOjn4prMTdj3Ji3CyQrGWeQU2nzYqFrp1QYNLAbaViHRKuJrYHI6GCvqCbJe0LQ8qqUiVMA9wG/PQwScpNmTF9Kp2Iej+Z5OUxF33zzm+vg/nYV31HLF7fJUAplI/1nM+ZG8K+AXWgYKChtknl3sW9PCQa3a3imPL9GVToUNxc0wcuTil8mqveWcSQCHYxsIaUajWLpFzoO2AhK4mfYBSStAqEjoXRTuj17mo8Q6M2SHOcwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQBonMu8oa3vmNAa4RQP8gPGlX3SQaA3WCRUAj6Zrlk8AesKV1YSkh5D2l+yUk6njysgzfr1bIR5xF8eup5xXc4/G7NtVYRSMvrd6rfQcHOyK5UFJLm+8utmyMIDrZOzLQuTsT8NxFpbCVCfV5wNRu4rChrCuArYVGaKbmp9ymkw1PU6+HoO5i2wU3ikTmRv8IRjrlSStyNzXpnPTwt7bja19ousk56r40SmlmC04GdDHErr0ei2UbjUua5kw71Qn9g02tL9fERI2sSRjQrvPbn9INwRWl5+k05mlKekbtbu2ev2woJFZK4WEXAd/GaAdeZZdumv8T2idDFL7cAirJwcrbfpawPeXr52oKTPnXfi0l5+g9Gnt/wfiXCrPElX6ycTR6iL3GC2VR4jTz6YatT4Ntz59/THOT7NJQhr6AyLkhhJCdkzE2cob/KouVp4ivV7Q3Fc6HX7eepHAAF/DpxwgOrg9smX6coXLgfp0b1RU2u/tUNID04rpNxTMueTtrT8WSskqvaJd3RH8r7cnRj6Y2hltkja82HlpDURDxDTRvv+krbwMr26SB/40BjpMUrDRCeKuiBahC0DCoU/4+ze1l94wVUhdkCfL0GpJrMSCDEK+XEurU18Hb7WT+ThXbkdl6VpFdHsRvqAnhR2g4b+Qzgidmuky5NUZVfEaZqV/g== 3AGXEJXFK9-eyJsaWNlbnNlSWQiOiIzQUdYRUpYRks5IiwibGljZW5zZWVOYW1lIjoiaHR0cHM6Ly96aGlsZS5pbyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9XSwiaGFzaCI6IjEyNzk2ODc3LzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-WGTHs6XpDhr+uumvbwQPOdlxWnQwgnGaL4eRnlpGKApEEkJyYvNEuPWBSrQkPmVpim/8Sab6HV04Dw3IzkJT0yTc29sPEXBf69+7y6Jv718FaJu4MWfsAk/ZGtNIUOczUQ0iGKKnSSsfQ/3UoMv0q/yJcfvj+me5Zd/gfaisCCMUaGjB/lWIPpEPzblDtVJbRexB1MALrLCEoDv3ujcPAZ7xWb54DiZwjYhQvQ+CvpNNF2jeTku7lbm5v+BoDsdeRq7YBt9ANLUKPr2DahcaZ4gctpHZXhG96IyKx232jYq9jQrFDbQMtVr3E+GsCekMEWSD//dLT+HuZdc1sAIYrw==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ndaik1GD0nyTdqkZgURQZGW+RGxCdBITPXIwpjhhaD0SXGa4XSZBEBoiPdY6XV6pOfUJeyfi9dXsY4MmT0D+sKoST3rSw96xaf9FXPvOjn4prMTdj3Ji3CyQrGWeQU2nzYqFrp1QYNLAbaViHRKuJrYHI6GCvqCbJe0LQ8qqUiVMA9wG/PQwScpNmTF9Kp2Iej+Z5OUxF33zzm+vg/nYV31HLF7fJUAplI/1nM+ZG8K+AXWgYKChtknl3sW9PCQa3a3imPL9GVToUNxc0wcuTil8mqveWcSQCHYxsIaUajWLpFzoO2AhK4mfYBSStAqEjoXRTuj17mo8Q6M2SHOcwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQBonMu8oa3vmNAa4RQP8gPGlX3SQaA3WCRUAj6Zrlk8AesKV1YSkh5D2l+yUk6njysgzfr1bIR5xF8eup5xXc4/G7NtVYRSMvrd6rfQcHOyK5UFJLm+8utmyMIDrZOzLQuTsT8NxFpbCVCfV5wNRu4rChrCuArYVGaKbmp9ymkw1PU6+HoO5i2wU3ikTmRv8IRjrlSStyNzXpnPTwt7bja19ousk56r40SmlmC04GdDHErr0ei2UbjUua5kw71Qn9g02tL9fERI2sSRjQrvPbn9INwRWl5+k05mlKekbtbu2ev2woJFZK4WEXAd/GaAdeZZdumv8T2idDFL7cAirJwcrbfpawPeXr52oKTPnXfi0l5+g9Gnt/wfiXCrPElX6ycTR6iL3GC2VR4jTz6YatT4Ntz59/THOT7NJQhr6AyLkhhJCdkzE2cob/KouVp4ivV7Q3Fc6HX7eepHAAF/DpxwgOrg9smX6coXLgfp0b1RU2u/tUNID04rpNxTMueTtrT8WSskqvaJd3RH8r7cnRj6Y2hltkja82HlpDURDxDTRvv+krbwMr26SB/40BjpMUrDRCeKuiBahC0DCoU/4+ze1l94wVUhdkCfL0GpJrMSCDEK+XEurU18Hb7WT+ThXbkdl6VpFdHsRvqAnhR2g4b+Qzgidmuky5NUZVfEaZqV/g== KNBB2QUUR1-eyJsaWNlbnNlSWQiOiJLTkJCMlFVVVIxIiwibGljZW5zZWVOYW1lIjoiZ2hib2tlIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiQUMiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In0seyJjb2RlIjoiRFBOIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IlBTIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkdPIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkRNIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IkNMIiwiZmFsbGJhY2tEYXRlIjoiMjA4OS0wNy0wNyIsInBhaWRVcFRvIjoiMjA4OS0wNy0wNyJ9LHsiY29kZSI6IlJTMCIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSQyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSRCIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJQQyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSTSIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJXUyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJEQiIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJEQyIsImZhbGxiYWNrRGF0ZSI6IjIwODktMDctMDciLCJwYWlkVXBUbyI6IjIwODktMDctMDcifSx7ImNvZGUiOiJSU1UiLCJmYWxsYmFja0RhdGUiOiIyMDg5LTA3LTA3IiwicGFpZFVwVG8iOiIyMDg5LTA3LTA3In1dLCJoYXNoIjoiMTI3OTY4NzcvMCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-1iV7BA/baNqv0Q5yUnAphUmh66QhkDRX+qPL09ICuEicBqiPOBxmVLLCVUpkxhrNyfmOtat2LcHwcX/NHkYXdoW+6aS0S388xe1PV2oodiPBhFlEaOac42UQLgP4EidfGQSvKwC9tR1zL5b2CJPQKZ7iiHh/iKBQxP6OBMUP1T7j3Fe1rlxfYPc92HRZf6cO+C0+buJP5ERZkyIn5ZrVM4TEnWrRHbpL8SVNq4yqfc+NwoRzRSNC++81VDS3AXv9c91YeZJz6JXO7AokIk54wltr42FLNuKbozvB/HCxV9PA5vIiM+kZY1K0w5ytgxEYKqA87adA7R5xL/crpaMxHQ==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ndaik1GD0nyTdqkZgURQZGW+RGxCdBITPXIwpjhhaD0SXGa4XSZBEBoiPdY6XV6pOfUJeyfi9dXsY4MmT0D+sKoST3rSw96xaf9FXPvOjn4prMTdj3Ji3CyQrGWeQU2nzYqFrp1QYNLAbaViHRKuJrYHI6GCvqCbJe0LQ8qqUiVMA9wG/PQwScpNmTF9Kp2Iej+Z5OUxF33zzm+vg/nYV31HLF7fJUAplI/1nM+ZG8K+AXWgYKChtknl3sW9PCQa3a3imPL9GVToUNxc0wcuTil8mqveWcSQCHYxsIaUajWLpFzoO2AhK4mfYBSStAqEjoXRTuj17mo8Q6M2SHOcwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQBonMu8oa3vmNAa4RQP8gPGlX3SQaA3WCRUAj6Zrlk8AesKV1YSkh5D2l+yUk6njysgzfr1bIR5xF8eup5xXc4/G7NtVYRSMvrd6rfQcHOyK5UFJLm+8utmyMIDrZOzLQuTsT8NxFpbCVCfV5wNRu4rChrCuArYVGaKbmp9ymkw1PU6+HoO5i2wU3ikTmRv8IRjrlSStyNzXpnPTwt7bja19ousk56r40SmlmC04GdDHErr0ei2UbjUua5kw71Qn9g02tL9fERI2sSRjQrvPbn9INwRWl5+k05mlKekbtbu2ev2woJFZK4WEXAd/GaAdeZZdumv8T2idDFL7cAirJwcrbfpawPeXr52oKTPnXfi0l5+g9Gnt/wfiXCrPElX6ycTR6iL3GC2VR4jTz6YatT4Ntz59/THOT7NJQhr6AyLkhhJCdkzE2cob/KouVp4ivV7Q3Fc6HX7eepHAAF/DpxwgOrg9smX6coXLgfp0b1RU2u/tUNID04rpNxTMueTtrT8WSskqvaJd3RH8r7cnRj6Y2hltkja82HlpDURDxDTRvv+krbwMr26SB/40BjpMUrDRCeKuiBahC0DCoU/4+ze1l94wVUhdkCfL0GpJrMSCDEK+XEurU18Hb7WT+ThXbkdl6VpFdHsRvqAnhR2g4b+Qzgidmuky5NUZVfEaZqV/g== 然后就大功告成了 可以看到这里的日期显示的是2089年的7月7日 完全够用了",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "nginx反向代理和负载均衡",
"slug": "nginx反向代理和负载均衡",
"date": "2019-12-06T13:26:57.000Z",
"updated": "2019-12-06T14:12:21.529Z",
"comments": true,
"path": "2019/12/06/nginx反向代理和负载均衡/",
"link": "",
"permalink": "/2019/12/06/nginx反向代理和负载均衡/",
"excerpt": "",
"text": "对nginx有一定了解了后就来干干试试它真正的用途反向代理和负载均衡 那么什么是反向代理呢首先我们要看一个正向代理,如果你要访问p站看点色图,那么你就需要翻墙,来访问p站,这个就是正向代理 反向代理就是,你现在要访问p站,p站悄悄的把这个请求交给了b站来做,那b站就是反向代理 先上一个图(我自己画的),这个是今天学的,目的就是可以优化页面的访问速度 Nginx反向代理在Nginx下的conf文件里面修改location / location / { proxy_pass http://127.0.0.1:8080; } 这个意思就是反向代理了tomcat,这个地址就是tomcat访问url然后就是如果你可以在网址里面直接输入localhost,就可以访问tomcat,而不是直接访问localhost:8080 静态资源和动态资源分离为什么要这么做呢,因为Nginx处理静态资源的能力比tomcat出色所以,我们用nginx来处理css,js和png图片tomcat来处理jsp文件 同样的需要配置nginx的conf文件,这里是直接增加 location ~\\.(css|js|png)$ { root D:/Eclipse-j2ee/lib/tomcat_8111/webapps/ROOT; } 相当于是一个正则表达式,root 后面是web项目资源, 负载均衡有时候一个tomcat可以吃不消,所以我们用了两个一模一样的tomcat(端口不同)来接收请求 同样的还是配置文件nginx.conf,直接添加 upstream tomcat_8111_8222{ server 127.0.0.1:8111 weight=1; server 127.0.0.1:8222 weight=2; } 这里weight就是权重的意思,端口号为8111的tomcat的权重为1,而端口号为8222的tomcat的权重为2,其实实际跑的时候是随机的可能权重大的tomcat跑的次数多一点吧 redis的session共享这个有什么用? 首先假设,如果一个用户在访问页面的时候用户所在的tomcat炸了。那么用户就要重新登录,之前的操作也要重新再来,这个东西就是,十分的影响用户的体验, 所以就有两种解决的方案,一个是通过配置ip,一个是用redis来保存用户的session 在刚刚那里的配置文件后面加上一句 ip_hash 就像这样 upstream tomcat_8111_8222{ server 127.0.0.1:8111 weight=1; server 127.0.0.1:8222 weight=2; ip_hash; } 但是通过ip来锁定用户是有缺陷的如果是有大量的ip来访问的话。那就会都分配到同一个tomcat上,就是相当于是没有负载均衡了这样就没有意义了。 所以我们可以通过下面这种方式来保证用户的体验 准备下面这三个jar包,导入到tomcat的lib下面 ,两个tomcat都要导入 jedis-2.5.2.jar,commons-pool2-2.0.jar,tomcat-redis-session-manager1.2.jar。 修改tomcat/conf/context.xml,两个tomcat都要改 <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="127.0.0.1" port="6379" database="0" maxInactiveInterval="60" /> 直接增加就好了 启动redis服务 重启tomcat 现象:现在如果你打开浏览器直接访问http://localhost:8111,然后输入了用户名,密码(产生一个session)然后在打开http://localhost:8222,你会发现已经登录了。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "初识Nginx",
"slug": "初识Nginx",
"date": "2019-12-04T14:29:24.000Z",
"updated": "2019-12-04T14:54:03.994Z",
"comments": true,
"path": "2019/12/04/初识Nginx/",
"link": "",
"permalink": "/2019/12/04/初识Nginx/",
"excerpt": "",
"text": "今天上课的时候老师专门用一节课给我们讲了如果去使用云服务器,主要就是一个使用nginx来部署静态页面。 那么什么是nginx首先nginx是一个web服务器,同类型有Apache,一般用来做反向代理和负载均衡 先说一下,我这个服务器是Linux centos 7 安装nginxyum -y install nginx 启动nginx服务systemctl start nginx.service 使用你的服务器ip地址打开浏览器 配置你的conf文件vim /etc/nginx/nginx.conf 其他命令 重新载入配置文件 nginx -s reload 重启 nginx nginx -s reopen 停止 nginx nginx -s stop",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "通过云服务器部署J2EE项目",
"slug": "通过云服务器部署J2EE项目",
"date": "2019-12-02T10:57:37.000Z",
"updated": "2019-12-02T11:46:20.307Z",
"comments": true,
"path": "2019/12/02/通过云服务器部署J2EE项目/",
"link": "",
"permalink": "/2019/12/02/通过云服务器部署J2EE项目/",
"excerpt": "",
"text": "今天刚刚学了怎么部署一个j2ee的项目写一下,怕忘了 首先我买的服务器是百度云的服务器(对,就是你们说的最烂的,能用就行)配置是一核一G,40G存储 连接服务器用Xshell连接服务器,建议用SSH(比较方便快捷)注意:如果连续多次输错密码的话,你的当前ip地址会被封,然后无论如何都无法连接上。(别问我为什么知道) 安装jdk-Linux版 准备好一个Linux版的jdk8https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 以root用户登录你的服务器 新建文件夹,来存放jdk mkdir /usr/local/java 用FlashFXP来把Linux版的jdk传到服务器上面,注意要把jdk放在/usr/local/java 这个文件夹下面https://www.flashfxp.com/download 解压jdk tar xvf jdk-linux-x64.tar.gz 配置java环境变量(我这里把tomcat的环境变量也配置好了) vim /etc/profile 在done下面写下这些东西 测试java是否安装成功 java -version 安装tomcat (同样是Linux版) 到官网下载tomcat,注意不要下错了https://tomcat.apache.org/download-70.cgi 新建tomcat的文件夹这里跟上面的创建java文件夹是一样的 mkdir /usr/local/tomcat 解压文件 tar xvf apache-tomcat-7.0.96.tar.gz 配置环境变量,我在上面已经配好了,这里就跳过 进入bin目录 cd /usr/local/tomcat/apache-tomcat-7.0.96/bin 启动tomcat ./startup.sh 打开网址你的公网ip:8080 如果是下面这个画面就是成功了 就酱,没了",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "第一次购买云服务器",
"slug": "第一次购买云服务器",
"date": "2019-11-30T16:18:22.000Z",
"updated": "2019-11-30T17:14:50.082Z",
"comments": true,
"path": "2019/12/01/第一次购买云服务器/",
"link": "",
"permalink": "/2019/12/01/第一次购买云服务器/",
"excerpt": "",
"text": "百度云的服务器其实云服务器有很多种,像阿里云、腾讯云、金山云。。。。。。之类的但是为什么我要选择百度云服务器呢因为没钱 SSH从这个服务器上面了解到有两种登录的方式,一种就是用密码登录,一种就是用SSH登录。那么什么是SSH呢 从官方文档可以知道 SSH 密钥对通过加密算法生成一对密钥,一个对外界公开,称为 公钥,另一个您自己保留,称为 私钥。 这个就是ssh,相当于就是公钥加密私钥解,其实我觉的还是挺不错的 使用方法如下: 打开xshell,新建会话,登录用户选择root,到第二步的时候就是会要你选择是使用密码(password),还是使用密钥(public key),在百度云控制台创建密钥对的时候会给你一个文件,这个文件就是私钥,选择这个文件就可以了。 其他用法搭建博客搭建网盘(我觉得这个带宽实在是太小了搭建游戏服务器(小型的还行)",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "8大排序算法(一)",
"slug": "8大排序算法-一",
"date": "2019-11-24T16:27:32.000Z",
"updated": "2019-11-24T16:59:00.854Z",
"comments": true,
"path": "2019/11/25/8大排序算法-一/",
"link": "",
"permalink": "/2019/11/25/8大排序算法-一/",
"excerpt": "",
"text": "最近在学数据结构,所以还是来做一些笔记吧我准备这个排序算法写两个,这个是其中之一 这里的话我就讲讲冒泡排序、快速排序、插入排序、希尔排序 冒泡排序法不得不说这个排序算法是最经典的。 import java.util.Arrays; public class Bubblesort { public static void main(String[] args) { //新建一个数组 int arr[] = new int [] {2,99,4,5,6,22,1,33,66,88}; System.out.println(Arrays.toString(arr)); bubblesort(arr); System.out.println(Arrays.toString(arr)); } //冒泡排序法 /** * 基本的思路就是控制需要比较的轮数,也就是arr.length-1 * @param arr */ public static void bubblesort(int arr[]) { //总共是需要进行length-1次排序 for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if (arr[j]>arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } } 插入排序法这个排序算法的实现比较简单主要就是每两个数字的两两进行比较,如果右边的数大于左边的数,那就不替换。反之替换 import java.util.Arrays; //插入排序 //但是这个排序效率比较慢,就是因为如果前面都是按顺序来着的,后面突然来了一个比较小的数字那么这个工作量就开始大起来了 public class InsertSort { public static void main(String[] args) { int arr[] = new int [] {1,5,2,9,6,4,8,3,6}; System.out.println(Arrays.toString(arr)); sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort(int arr[]) { //先从第二个数字遍历所有的数字 for (int i = 1; i < arr.length; i++) { //如果当前的数字小于前面的的那个数字的话 if (arr[i]<arr[i-1]) { //就先保存当前的这个数字 int temp = arr[i]; int j; //这里是一个局部的变量 //就替换数字把左边大的数字替换右边小的数字 for(j=i-1;j>=0&&temp<arr[j];j--) { arr[j+1] = arr[j]; } //把temp里的数字替换回来 arr[j+1] = temp; } } } } 快速排序我同学说这个是最效率最高的排序算法这个排序算法的特点就是有一个基线实现的方法就是去一个数作为基准的数(一般取第一个),然后遍历数组中所有的数字,如果数字比这个大那么就丢到右边,小的话就丢到左边。然后就分成了两半,左边一半是比基准数小的,右边一半是比基准数大的。现在又重新开始排序以左边第一个作为基准数,比这个大的就丢在右边。。。就是这样不断的被分成了两半,这样的递归方法就是这个算法的思想 代码如下 import java.util.Arrays; //快速排序 public class QuickSort { public static void main(String[] args) { int arr[] = new int [] {4,10,5,2,3,6,7,1,8,9,0,11}; System.out.println(Arrays.toString(arr)); sort(arr, 0, arr.length-1); System.out.println(Arrays.toString(arr)); } //这里要注意的就是要确定作为基准的数字(一般取第一个),然后就是最后一个数字 public static void sort(int arr[],int start,int end) { if (start<end) { //首先要找到一基准数,一般 我们取第一个数字 int stard = arr[start]; //这里就是记录需要排序的下标 int low = start; int high = end; //左边的下标low小于右边的下标high的时候就执行这条语句,当low与high重合的时候(low不大于high),也就意味着本次循环的快速排序结束 while(low<high) { //这条循环的意思就是如果arr[high]这个右边的数大于基数的话,那就只要把high这个下标左移一位就可以了 while(low<high&&stard<=arr[high]) { high--; } //右边的数字替换左边的数字 arr[low] = arr[high]; //这里就是跟上面的情况相反 while(low<high&&arr[low]<=stard) { low++; } //如果左边的arr[low]大于stand的时候就是把左边的数字替换到右边的数字 arr[high] = arr[low]; //然后就是不要忘记了把基准的数放回来 } arr[low] = stard; //处理所有小的数字 sort(arr, start, low); //处理所有大的数字 sort(arr, low+1, end); } } } 希尔排序据说这是一个人的名字这个算法就是为了解决上面的插入排序效率低的问题的 原理如下:首先我们要定义一个增量(足长),这个增量是怎么定义的呢就是数组的长度除以2。也就是 arr.length/2 就是这个样子,取出来的数为整数不能是小数第一轮排序:我们把足长进行冒泡排序。相当数粗略的排序第二轮排序:也就是当足长为1的时候。我们就进行插入排序、可能是因为插入排序的这个算法对相对有序的数组排序的更快一点 import java.util.Arrays; //希尔排序,这个希尔排序其实就是上面快速排序的优化版本 public class ShellSort { public static void main(String[] args) { int arr[] = new int [] {4,2,4,1,9,6,0,5}; System.out.println(Arrays.toString(arr)); sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort(int arr[]) { //遍历所有的增量(步长) for(int d=arr.length/2; d>0; d/=2) { for (int i = d; i < arr.length; i++) { for (int j = i-d; j >=0; j-=d) { if (arr[j]>arr[j+d]) { int temp = arr[j]; arr[j] = arr[j+d]; arr[j+d] = temp; } } } } } } 这里面感觉还是希尔排序最难理解其他的其实感觉也不是那么的难 其还是感觉自己很菜 现在我才是来入个门啊,其实也是蛮难的、 好多的大佬就在搞人工智能、卷积神经网络我就是想问 can i do this? 真的好难好难啊",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "SQL优化",
"slug": "SQL优化",
"date": "2019-11-20T04:18:57.000Z",
"updated": "2019-11-20T07:32:08.359Z",
"comments": true,
"path": "2019/11/20/SQL优化/",
"link": "",
"permalink": "/2019/11/20/SQL优化/",
"excerpt": "",
"text": "今天数据库上课的时候讲了SQL优化。那我这里就把我的笔记整理一下,其实将的这些东西还是蛮有意思的 硬件优化首先就是硬件的优化 内存这个东西当然是最后越大越好,如果有一张表的大小是一个G,那么就至少要占用一个G的内存 硬盘然后就是硬盘,硬盘这个东西在企业这个级别这里并不是越快越好,而是最求稳定, 也就是说硬盘最好是机械硬盘而不是固态硬盘。 一个是固态硬盘这个东西寿命是不如机械硬盘的, 第二个是在某种情况下有可能会出现掉速。 网络网络主要就是看稳定性,然后就是时延,当然是响应速度越快越好 但是很多的时候就是有一个问题,预算不足以在硬件上优化所以就是只能在软件上优化 软件优化版本就是说版本的不同,sql的一些功能也会不同,版本不是说越新的版本越好 SQL引擎不同的sql引擎有不同的作用,比如Myisam这个引擎就是说, 比较轻量,比较快,在性能上面表现出色 而像InnoDB这种引擎,就是支持事务,相对来说安全稳定,支持的数据量更大一些 分库分表如果说你有一张表,这张表的数据有一个G, 那么当你要查询的时候就是需要吧这张表全部加载到内存里面, 那么就至少需要一个G的内存,这样对内存的消耗是很大的 所以可以将大的数据库分成小的,把大的表分成小的表, 这样就可以解决这个问题 读写分离这里就是有一个读写的主从,写是主,读是从, 一个主可以对应多个从也就是说,写只有一个,从有多个, 而这就可以提升了性能,因为大多数的情况下,我们只要读而不是写 sql语句的优化暂时老师还没讲,等下次上课,在说",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "deepin下面配置mysql",
"slug": "deepin下面配置mysql",
"date": "2019-11-09T16:05:45.000Z",
"updated": "2019-11-20T07:33:33.699Z",
"comments": true,
"path": "2019/11/10/deepin下面配置mysql/",
"link": "",
"permalink": "/2019/11/10/deepin下面配置mysql/",
"excerpt": "",
"text": "难得上数据库的课到机房上课,这波老师还是又把怎么安装mysql讲了一遍,还行本来我是准备在群里划水的,但是转念一想,还是在deepin上装一个mysql来折腾折腾。 安装其实还是蛮简单的就是,中间遇到了不少的小问题 安装MySQL服务安装命令如下: sudo apt-get install mysql-server 然后就是还可以安装一个mysql的管理工具 sudo apt-get install mysql-client 然后输入 mysql -uroot -p 就可以进入mysql了,默认是没有密码的 但是中间我还遇到了其他的问题要我更新软件源这个还是没有问题 sudo apt-get update 安装MySQL的workbench这是一个mysql自带的管理工具官网下载deb后缀的文件,双击就可以打开了 使用workbench遇到的问题我在命令行可以正常的使用mysql,但是到了MySQLworkbench就用不了了,真的是无语。 后面还是让我们的老师看了一下,他说是用户的缺失,要我添加一个新的mysql用户root@local不存在,当前只有一个用户,也就是[email protected] 也就是说localhost 并没有映射到localhost上面。一般的mysql一般会存在默认的几个用户 添加mysql用户例如这个就是添加一个名为admin的用户,映射的地址为localhost,密码为123456 create user 'admin'@'localhost' identified by '123456'; 修改密码 set password for admin=password('password'); 授予权限(非常重要)这里我是吃了一次亏我这里是有一次没有给用户授权,结果在workbench里面我试图创建数据库都没有权限,真的是可恶(〃>皿<) grant all on tiku.* to admin; 查看用户的权限 show grants for kuke; 然后要记得更新数据库 flush privileges; 操作数据库显示所有的数据库 show databases; 使用数据库 use 数据库的名字; 创建数据库 create 数据库的名字; 幕后(其他)说起来这节课我还和老师聊了一下,感觉还是蛮开心的一开始我就是问老师这个问题,然后老师看了一下,操作一波说是这个用户缺失的问题。后面聊着聊着就聊到了我这个操作系统deepin 然后发现我这个电脑是双系统,问了我这些东西是不是都是自己搞的,我说是的,都是自己折腾的。还问了一下我对于这个以后的职业生涯的规划。有没有想法搞Linux运维,我是回答暂时还是没有想法 我这个人嘛,说实话暂时还是没有什么好的看法,大体上还是搞计算机。说实话,这个东西还是蛮有意思的。折腾来折腾去。可能人生的意义就在于此吧。 然后老师还鼓励我尽可能的手动去编译那些源码,去了解这些底层的东西,而不是去使用那些封装好的东西。像是mysql。Nginx这些东西。说起了我还是第一次听说Nginx这个东西。老师跟我说是web三件套。Linux、linux、nginx 想来这个东西应该是很重要的东西吧。都跟这些在一块了。要学的东西还有好多啊。真的是 这波表扬要还是很开心的,就是说我这个劲头不错继续保持下去。说不定以后真的可以变成大佬啊就是看看十年可以成为一个大佬吗,真的不知道我以后会怎么样 十年一个全栈工程师怎么样。。。。。 有一句话我不记得在哪里看过了就是,当你不知道如何选择的时候你就选择最难走的那一条路。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "deepin的体验",
"slug": "deepin体验了几天后",
"date": "2019-10-16T13:43:46.000Z",
"updated": "2019-10-22T12:11:59.328Z",
"comments": true,
"path": "2019/10/16/deepin体验了几天后/",
"link": "",
"permalink": "/2019/10/16/deepin体验了几天后/",
"excerpt": "",
"text": "体验了一段时间的deepin多多少少也学了不少的东西 有时候真的是想着要是有人带着我搞学习就好了(一对一的那种,最好是妹子) 第一次初始化deepin设置root(必备deepin装好了后肯定就是设置管理员权限啦 sudo passwd root 科学上网(必备其实不难发现,应用商店里面有一个shadowsock 但是我用了一下,感觉还是不是很好用。(反正我是没有使用成功) 所以我用了一个GitHub的项目,是GUI的界面十分的友好,操作也简单 点这里跳转原作者已经把项目删除了,你觉得可以的话可以fork一份 其实还可以使用命令行的科学上网但是太复杂了我就不写了(手动狗头 其他的安装(可选安装Gdebisudo apt-get install gdebi 安装Gitsudo apt-get install git 安装vimsudo apt-get install vim 安装Curl和tsocks,jqsudo apt-get install curl tscocks jq Google Chrome推荐主题 No man’s Sky Theme推荐插件 油猴插件 划词翻译 美化安装Gnome-tweak-toolsudo apt-get install gnome-tweak-tool 换个好看点的壁纸吧 目前已知的bug 笔记本的亮度异常开机的时候很亮,然后到了登录界面的时候就变得很暗,这个就非常的难受 解决方法:将笔记本的屏幕关上,然后过一下子再打开这样子的话亮度就正常了 突然宕机(原因不明) 解决方案: 目前只有重启 打字的时候光标乱跳 解决方案: 暂时的方案是,将触摸板禁用(可能是我打字的时候碰到了触摸板,但是win下面没有这种情况 qq收藏的表情不见了 暂时没有解决方案,我也不知道为什么 希望厂商尽快跟进,虽然看不到我的这个文章",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "观念模型(me)",
"slug": "观念模型-me",
"date": "2019-10-12T15:51:24.000Z",
"updated": "2019-10-12T17:36:05.912Z",
"comments": true,
"path": "2019/10/12/观念模型-me/",
"link": "",
"permalink": "/2019/10/12/观念模型-me/",
"excerpt": "",
"text": "观念模型 ,顾名思义就是讲述自己的观念那什么是模型呢?这么说吧,模型是生命赖以生存的东西,我们通过模型来获取信息、预测信息。模型可以简单的分为三种,感知模型、认知模型、观念模型。 感知模型由自然选择我们没有选择的权利。认知模型大多数人信奉科学,我也是一样(狗头)。观念模型就可以千奇百怪了(也可以说是世界观、人生观、立场)。(知识付费领域里面,观念模型是最多的) 随着不断的学习,我的观念与一般的大众的观念(指傻雕网友、身边的同学)也有了稍稍的分歧。出了日常的书本学习,我们最多的就是收集例子来学习(建立模型)。 这是大部分人的想法(我从生活中收集到的例子) 例如: 1. 三十岁之后人基本就定型了,之后就没有什么改变了、 2. 大学里面学不到什么东西、 3. 人一旦年龄往上走了之后,好奇心学习能力都会逐渐降低、 4. 读书、学习就是为了拿一张证、 5. 这个东西学了没有用、 6. 我只要把一个技能学到精就好了,所以我只要全心全意的学一个(有争议) 我们人类通过例子来学习(建立模型)。但是一旦,例子过少,或者没有全面的看待这个事物(只看到一个方面),就会构造一个错误的模型(观念模型)。而上述的例子就是一个体现。 而最好的办法就是收集更多的例子,来不断完善构建模型。 下面我以辩证性思维(学术是这么说的)来分析上面的例子。 三十岁之后人就定型了。 答:大部分人三十岁就是到了结婚生子的阶段。安安稳稳的过日子。但是有句话说的好’我命由我不由天‘,如果你不要那么在意别人的看法的话。任何时候都不是说定型的时候。 大学里面学不到什么东西 答: 那可能是你对学科不感兴趣或者上课的时候就不认真听讲。 我觉得还是学到蛮多的东西的,一开始是学的C语言 <del>虽然感觉跟没学一样</del>,然后就是html+css+js <del>js学的没怎么好</del>,后面就是java、c#、数据库、Linux、xml、jsp、asp.net; 有些东西确实学的不怎么好,但是总体来说还是学到了不少的东西。 还有老师上课的时候并不是,纯粹的讲课,还有的就是讲讲其他的有意思的,比如最近的新闻。有时候是一些程序员的段子<del>虽然一点都不好笑</del>,还有世界经济的局势、如果出了社会老板喜欢什么样的人、怎么吃西餐、怎么理财、有时候是讲讲自己最近做了什么项目赚了多少钱。最近又学了什么新技术。然后就是安利我们学一些什么技术(但是学校不会教的) 人一旦年龄往上走,好奇心、学习能力都会下降 答:我们人类有三大欲望 食欲、性欲、求知欲 求知欲是好奇心、学习的体现。人饿了会迫不及待的想要吃东西(食欲), 同理缺乏知识的时候也不迫不及待的去寻找知识(求知欲)。只要有问题没有解决, 我们都会想迫不及待的想知道答案。而这与年龄无关,每个人都或多或少的有不少的问题。 之所以人们认为年龄大了,这些能力会降低,都是因为人们的成见。 读书、学习的意义就是为了一张证 可能他们还没有搞清楚学习的真正的目的; 前面说了学习就是为了构造模型,模型用于获取信息以及预测信息。 所以学习就是为了能够解决我们从未遇见过的问题,也就是泛化能力。 而纵观人生整个路线、真的长。我们一定会遇到很多问题、 但是我们要如何来解决这些问题呢?答案是学习 这个东西学了没用 很多时候,我们评估一个东西的好坏就是说这个东西,有用没用 那么什么是有用,什么又是没有用呢。 貌似大部分人的心理就是只有钱,能搞钱就是有用,否则没有用、 我只想说这样真的好吗。其实很多没有什么卵用的东西很有意思 ,比如心理学、经济学、画画这些都是我想搞的,但是这些东西正是, 他们说起来没有什么用的东西。其实也是,如果只是学了一点皮毛的话。 但是 我喜欢。。 我只要把一个技能学到精就好了,所以我只要全心全意的学一个(有争议) 这个东西是有争议的,情况是有一半人认为要多学一点,技能书多点一些, 然后另一半人就是认为只要学精一个就好了 我的观念就是还是要尽量多学一点、 因为要解释人活着到底是为了什么,真的很难、、、、 把一件事情做到第一也很难、、 多学点东西就是不枉此生、 目前我的观念模型就是这样。 以后或许会有更好的模型替代、暂时就是这样、 但行好事、莫问前程",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "双系统的安装(deepin)",
"slug": "双系统的安装-deepin",
"date": "2019-10-06T14:43:10.000Z",
"updated": "2019-10-06T16:53:29.708Z",
"comments": true,
"path": "2019/10/06/双系统的安装-deepin/",
"link": "",
"permalink": "/2019/10/06/双系统的安装-deepin/",
"excerpt": "",
"text": "事出起因(先讲一波废话就是昨天突然想要操作一波Linux系统,打开虚拟机,启动ing 。。。。。。。。。。。。。 无比的漫长真的是令人心塞。等了起码有十几分钟,还是打不开。。百度找解决方案。并没有找到满意的。 然后想起群里的大佬很多都是双系统,所以我决定也来搞一波 因为我没有装过双系统,保险起见我还是选择了deepin 开始操作 打开deepin的官网,下载镜像一开始,我是选择官网的镜像,妈的,太慢了。后面还是找了清华大学的镜像源 需要一个空的磁盘作为新系统的系统盘,在计算机-管理-磁盘管理 切一个新的盘出来(磁盘空间至少要大于30G) 插上U盘(U盘的存储空间需要大于4G) 找到刚刚下好的deepin镜像文件,双击打开,里面有一个exe文件(这个就是U盘启动盘的制作工具)然后按照提示,选择deepin的镜像文件。这样就制作好了一个deepinU盘的启动盘 重启电脑,进入BIOS ,找到U盘,设置启动优先级 自动重启后直接回车键,第一个选项就是install deepin 后面就很简单了,唯一一个要注意的就是他会要求你选择安装系统的系统盘,这个就是前面分的空磁盘。 体验的deepin的感受优点缺点都说一下吧 好的地方: UI界面美观,界面上可以选择想MacOS那样的简洁风格,也可以选择想win这样的功能性风格 设置功能多,允许用户自定义的地方蛮多的,而且这个设置风格还有点像iPad 文件管理,这里居然同时拥有了win和Linux的两种文件管理方式,既有磁盘管理,也有标准的Linux文件管理 目前发现的有点不尽人意的地方 关机或者开机的时候,会有一瞬间的画面撕裂,部分画面失真 qq和tim聊天的时候没有win用起来舒服 打字的时候有可能会光标乱跳,百度说是打字的时候碰到了触控板,但是我在win下面打字的时候也是这样的,这里就是涉及到了一个算法的问题,当触控板大量的面积被触控时,就无视操作,而这个deepin就是太敏感了,不够后面还是在设置里面找了了。(输入的时候禁用触控板) 突然的宕机,一下子不知道发生了什么,就死机了,就是鼠标动不了,键盘也按不了。内存明明是绰绰有余的,cpu占用也不高。就是很他妈的奇怪,这个是最烦的 end我觉得国产系统还是很有希望的期待中",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "IDEA配置tomcat的环境",
"slug": "‘IEDA配置tomcat的环境",
"date": "2019-09-11T12:00:18.000Z",
"updated": "2019-09-11T12:59:17.004Z",
"comments": true,
"path": "2019/09/11/‘IEDA配置tomcat的环境/",
"link": "",
"permalink": "/2019/09/11/‘IEDA配置tomcat的环境/",
"excerpt": "",
"text": "这个学期开始学习JSP了,书上推荐的IDE是myeclipse 我觉得还是不好,就来撸IDEA了 这个东西一开始查百度的时候很烦,有很多教程都不好。。。 那么现在就开始讲我怎么配置的吧 首先你要下载Tomcat下载我就不说了,直接解压Tomcat放在一个好记的位置。比如我是放在了D:/Tomcat 测试Tomcat打开tomcat所在文件打开bin目录下的stratup.bat 接下来你会看到 tomcat如果没有闪退,也没有出现错误信息那就是成功了 当然如果是闪退的话,你要看看自己的电脑是不是有多个tomcat,或者端口被占用了查看端口的命令是netstat -ano 开始配置IDEA 创建web项目 如下图点击右上角的Edit config。。。 如下图点击左上角的“+”号 选择Tomcat Server local 配置好tomcat的安装路径 选择你的web项目,你的项目一定会输出在out目录下 点击小绿标,启动tomcat 这里会自动打开浏览器,要注意URL的正确性",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "如何查找pdf资源",
"slug": "如何查找pdf资源",
"date": "2019-09-09T12:37:07.000Z",
"updated": "2019-09-09T13:16:27.309Z",
"comments": true,
"path": "2019/09/09/如何查找pdf资源/",
"link": "",
"permalink": "/2019/09/09/如何查找pdf资源/",
"excerpt": "",
"text": "今天早上准备去图书馆自习的结果他妈的进不去了,卡坏了,站在图书馆门口贼尴尬,刷卡失败、失败。此时我的心态发生了变化。。。。。当时真的想找一个洞钻进去。。。。 然后我还能怎么办。。只能默默离开了。。。。 然后想了一下去了教学楼了,随便找了一个教室。。但是没有书。。。原计划是图书馆有书就直接去拿就好了。没有书,,不过笔记本电脑、手机、本子、笔还是带了。。。 一顿操作联网 、打开浏览器、 百度、、 计算机网络pdf 居然要付费。。。。。 垃圾百度。。。。一大早的体验就槽糕了一批。。。冷静分析 虽然今天有点难搞但是并不能我觉得总有解决方案的 打开知乎 果然。。。还是知乎靠谱 我找到了两个靠谱的 鸠摩搜书 直接搜就可以了,我觉的还是蛮方便的 微盘(旧版)手机端获取方式:淘宝;如图 成本也不高,只要七毛。。 效率也是蛮高的",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},
{
"title": "关于家里的网速异常",
"slug": "关于家里的网速异常",
"date": "2019-08-29T06:05:25.000Z",
"updated": "2019-09-09T13:25:02.004Z",
"comments": true,
"path": "2019/08/29/关于家里的网速异常/",
"link": "",
"permalink": "/2019/08/29/关于家里的网速异常/",
"excerpt": "",
"text": "今天崩坏三更新了,兴致勃勃的去更新游戏,大更新每次都是3G往上走每次下载大文件我 都是把手机放在路由器上下载这次也不例外。但是网速始终都是只有5M/s,然后我就是重启路由器,结果还是一样的用电脑有线连接还是一样。网速始终不过5M/s 然后我登录了192.168.0.1一边还查了一下百度 然后我发现了这一句话 意思就是NET转发使得自己的ip不是公网ip了 关掉后就好了 轻轻松松上20M/s 补充:后面不知道怎么回事,一朝回到解放前。。。。突然又双叒叕限速了、 找了好久,发现了是DNS的问题,DNS配置成了0.0.0.0 好歹还是学到了一点 NAT转发会将公网ip装换成内网ip,但是公网ip并不意味着网速更快。。 DNS的作用不仅仅是将域名转化成IP地址,甚至会影响网速的上限。。。",
"categories": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
],
"tags": [
{
"name": "标签",
"slug": "标签",
"permalink": "/tags/标签/"
}
],
"keywords": [
{
"name": "文件夹归类",
"slug": "文件夹归类",
"permalink": "/categories/文件夹归类/"
}
]
},