Tan115 commited on
Commit
934b81a
·
verified ·
1 Parent(s): 1d34a61

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +9 -0
  2. 107 - Code Review Fundamentals/001 Introduction to Code Reviews.mp4 +3 -0
  3. 107 - Code Review Fundamentals/002 Basics of Code Review Process.mp4 +3 -0
  4. 108 - Tools, Automation, and Industry Best Practices/001 Tools for Code Review and Code Analysis.mp4 +3 -0
  5. 108 - Tools, Automation, and Industry Best Practices/002 Part 1 - Checkstyle Adhering Coding Standards.mp4 +3 -0
  6. 108 - Tools, Automation, and Industry Best Practices/003 Part 2 - Checkstyle Adhering Coding Standards.mp4 +3 -0
  7. 108 - Tools, Automation, and Industry Best Practices/004 PMD Static Code Analysis.mp4 +3 -0
  8. 109 - Advanced Code Review Strategies/001 Code Review Guidelines & Contribution Policy.mp4 +3 -0
  9. 109 - Advanced Code Review Strategies/002 Coding Standards, Code Quality & Consistency.mp4 +3 -0
  10. 109 - Advanced Code Review Strategies/003 Provide Feedback like a Pro.mp4 +3 -0
  11. 61 - Servlets/003 Source-of-web.xml-from-the-lesson.url +2 -0
  12. 61 - Servlets/003 web.xml - Deployment Descriptor_en.srt +864 -0
  13. 61 - Servlets/external-links.txt +18 -0
  14. 62 - Web Filters/001 Source-code-of-HelloWorldFilter.url +2 -0
  15. 62 - Web Filters/001 Source-of-web.xml-from-the-lesson.url +2 -0
  16. 62 - Web Filters/001 Web Filters_en.srt +884 -0
  17. 62 - Web Filters/external-links.txt +6 -0
  18. 63 - Session & Cookies/001 Session & Cookies_en.srt +1156 -0
  19. 63 - Session & Cookies/001 Source-code-of-package-with-all-examples-from-the-lesson.url +2 -0
  20. 63 - Session & Cookies/001 Source-of-web.xml-from-the-lesson.url +2 -0
  21. 63 - Session & Cookies/external-links.txt +6 -0
  22. 64 - Events Handling in Web Application/001 Events Handling in Java Web Application_en.srt +1188 -0
  23. 64 - Events Handling in Web Application/001 Source-of-web.xml-from-the-lesson.url +2 -0
  24. 64 - Events Handling in Web Application/001 The-source-code-of-examples-from-the-lesson.url +2 -0
  25. 64 - Events Handling in Web Application/external-links.txt +6 -0
  26. 65 - HTML & CSS/001 HTML Basics_en.srt +1252 -0
  27. 65 - HTML & CSS/001 Source-code-of-the-HTML-file-example-from-the-lesson.url +2 -0
  28. 65 - HTML & CSS/002 CSS-source-code.url +2 -0
  29. 65 - HTML & CSS/002 HTML-with-CSS-source-code.url +2 -0
  30. 65 - HTML & CSS/002 СSS Basics_en.srt +1312 -0
  31. 65 - HTML & CSS/003 HTML Forms_en.srt +1380 -0
  32. 65 - HTML & CSS/003 Source-code-of-HTML-example-from-the-lesson.url +2 -0
  33. 65 - HTML & CSS/003 Source-code-of-the-Java-Servlet-example-from-the-lesson.url +2 -0
  34. 65 - HTML & CSS/external-links.txt +15 -0
  35. 66 - ===== HTML & CSS Interview Preparation =====/001 Part 1 HTML Interview - Questions and Answers.html +69 -0
  36. 66 - ===== HTML & CSS Interview Preparation =====/002 Part 2 CSS Interview - Questions and Answers.html +69 -0
  37. 67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/001 Exam HTML, CSS, Servlets, Web Filters & Web Server_en.srt +1276 -0
  38. 67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/001 Hometask-and-link-to-the-solution.url +2 -0
  39. 67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/external-links.txt +3 -0
  40. 68 - JSP/001 JSP Overview_en.srt +1192 -0
  41. 68 - JSP/002 First JSP Page & Practical Examples_en.srt +1004 -0
  42. 68 - JSP/002 JSP-demo-file.url +2 -0
  43. 68 - JSP/002 Servlet-source-code-from-the-lesson.url +2 -0
  44. 68 - JSP/003 JSTL Part 1_en.srt +860 -0
  45. 68 - JSP/003 JSTL-Dependency-to-add-in-Maven.url +2 -0
  46. 68 - JSP/003 Source-code-of-JSP-file-with-the-JSTL-code-examples.url +2 -0
  47. 68 - JSP/003 Source-code-of-Servlet-for-JSTL-Examples.url +2 -0
  48. 68 - JSP/004 JSTL Part 2_en.srt +1004 -0
  49. 68 - JSP/005 Custom Tags in JSP_en.srt +1576 -0
  50. 68 - JSP/005 Folder-with-custom-tags.url +2 -0
.gitattributes CHANGED
@@ -98,3 +98,12 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
98
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/005[[:space:]]Deployment[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
99
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/006[[:space:]]Composite[[:space:]]Structure[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
100
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/007[[:space:]]Profile[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
98
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/005[[:space:]]Deployment[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
99
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/006[[:space:]]Composite[[:space:]]Structure[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
100
  106[[:space:]]-[[:space:]]Structural[[:space:]]Diagrams/007[[:space:]]Profile[[:space:]]Diagram.mp4 filter=lfs diff=lfs merge=lfs -text
101
+ 107[[:space:]]-[[:space:]]Code[[:space:]]Review[[:space:]]Fundamentals/001[[:space:]]Introduction[[:space:]]to[[:space:]]Code[[:space:]]Reviews.mp4 filter=lfs diff=lfs merge=lfs -text
102
+ 107[[:space:]]-[[:space:]]Code[[:space:]]Review[[:space:]]Fundamentals/002[[:space:]]Basics[[:space:]]of[[:space:]]Code[[:space:]]Review[[:space:]]Process.mp4 filter=lfs diff=lfs merge=lfs -text
103
+ 108[[:space:]]-[[:space:]]Tools,[[:space:]]Automation,[[:space:]]and[[:space:]]Industry[[:space:]]Best[[:space:]]Practices/002[[:space:]]Part[[:space:]]1[[:space:]]-[[:space:]]Checkstyle[[:space:]]Adhering[[:space:]]Coding[[:space:]]Standards.mp4 filter=lfs diff=lfs merge=lfs -text
104
+ 108[[:space:]]-[[:space:]]Tools,[[:space:]]Automation,[[:space:]]and[[:space:]]Industry[[:space:]]Best[[:space:]]Practices/001[[:space:]]Tools[[:space:]]for[[:space:]]Code[[:space:]]Review[[:space:]]and[[:space:]]Code[[:space:]]Analysis.mp4 filter=lfs diff=lfs merge=lfs -text
105
+ 108[[:space:]]-[[:space:]]Tools,[[:space:]]Automation,[[:space:]]and[[:space:]]Industry[[:space:]]Best[[:space:]]Practices/003[[:space:]]Part[[:space:]]2[[:space:]]-[[:space:]]Checkstyle[[:space:]]Adhering[[:space:]]Coding[[:space:]]Standards.mp4 filter=lfs diff=lfs merge=lfs -text
106
+ 109[[:space:]]-[[:space:]]Advanced[[:space:]]Code[[:space:]]Review[[:space:]]Strategies/003[[:space:]]Provide[[:space:]]Feedback[[:space:]]like[[:space:]]a[[:space:]]Pro.mp4 filter=lfs diff=lfs merge=lfs -text
107
+ 109[[:space:]]-[[:space:]]Advanced[[:space:]]Code[[:space:]]Review[[:space:]]Strategies/002[[:space:]]Coding[[:space:]]Standards,[[:space:]]Code[[:space:]]Quality[[:space:]]&[[:space:]]Consistency.mp4 filter=lfs diff=lfs merge=lfs -text
108
+ 109[[:space:]]-[[:space:]]Advanced[[:space:]]Code[[:space:]]Review[[:space:]]Strategies/001[[:space:]]Code[[:space:]]Review[[:space:]]Guidelines[[:space:]]&[[:space:]]Contribution[[:space:]]Policy.mp4 filter=lfs diff=lfs merge=lfs -text
109
+ 108[[:space:]]-[[:space:]]Tools,[[:space:]]Automation,[[:space:]]and[[:space:]]Industry[[:space:]]Best[[:space:]]Practices/004[[:space:]]PMD[[:space:]]Static[[:space:]]Code[[:space:]]Analysis.mp4 filter=lfs diff=lfs merge=lfs -text
107 - Code Review Fundamentals/001 Introduction to Code Reviews.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:611df4524d45cd3d1a14997e435e270599c7944bb4f208db65dab1c8e310fe5c
3
+ size 175037426
107 - Code Review Fundamentals/002 Basics of Code Review Process.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4197b398ee00dffba96a87f7eba7be5f504940c85643511380f7a4c39f06079c
3
+ size 235360613
108 - Tools, Automation, and Industry Best Practices/001 Tools for Code Review and Code Analysis.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29ef47fd64bef0864e1c0f8b204c21626dc9c12700621d725c62ac0117df94cd
3
+ size 244475795
108 - Tools, Automation, and Industry Best Practices/002 Part 1 - Checkstyle Adhering Coding Standards.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3699bb77cee79d5161d35aa83f4427b322b27d4e133563c9d6791af66fac91d7
3
+ size 188326372
108 - Tools, Automation, and Industry Best Practices/003 Part 2 - Checkstyle Adhering Coding Standards.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d98972a554bcfd67d44b751f5aaf36cae80699e396ae436b53eecad52a00525a
3
+ size 248055267
108 - Tools, Automation, and Industry Best Practices/004 PMD Static Code Analysis.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9bb0e9f17a14b876fdc4992631122fb88a6aa89896727f650e41acb2e79ea26d
3
+ size 366781223
109 - Advanced Code Review Strategies/001 Code Review Guidelines & Contribution Policy.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:187450314872d3de630d2abf2f594a235c9e6f70b21a28c05683ee5bf6af97d1
3
+ size 295490498
109 - Advanced Code Review Strategies/002 Coding Standards, Code Quality & Consistency.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce00b276f635e816b8487d9fb1a7781290ddbaedb966a0a7680218405dd6720b
3
+ size 280386333
109 - Advanced Code Review Strategies/003 Provide Feedback like a Pro.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3b5bf70490120ad6b74e83759c2e93ab374c53ca12759f8aecc49f976a46ac58
3
+ size 194513345
61 - Servlets/003 Source-of-web.xml-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
61 - Servlets/003 web.xml - Deployment Descriptor_en.srt ADDED
@@ -0,0 +1,864 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:06,000
7
+ Yes.
8
+
9
+ 3
10
+ 00:00:07,000 --> 00:00:12,000
11
+ In this lesson, we're going to learn what that smell is and what we can configure zero.
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:14,000
15
+ Well, then why?
16
+
17
+ 5
18
+ 00:00:14,000 --> 00:00:17,000
19
+ That big smell is called the climate descriptor.
20
+
21
+ 6
22
+ 00:00:18,000 --> 00:00:25,000
23
+ We're going to compare X amount based configuration of our web application with annotation based configuration.
24
+
25
+ 7
26
+ 00:00:26,000 --> 00:00:31,000
27
+ I'll give you my advice is how to select one or another type of configuration.
28
+
29
+ 8
30
+ 00:00:31,000 --> 00:00:37,000
31
+ The biggest part of our lesson today will be alive demo and review of examples.
32
+
33
+ 9
34
+ 00:00:38,000 --> 00:00:40,000
35
+ I would explain you can file.
36
+
37
+ 10
38
+ 00:00:40,000 --> 00:00:44,000
39
+ This is why we need it and how to configure it.
40
+
41
+ 11
42
+ 00:00:44,000 --> 00:00:51,000
43
+ You will also see server configuration in WebEx email and so that's MOP and we're going to learn how
44
+
45
+ 12
46
+ 00:00:51,000 --> 00:00:53,000
47
+ to set the context parameters.
48
+
49
+ 13
50
+ 00:00:54,000 --> 00:01:01,000
51
+ Also, we're going to then how to set security constraints for our web application and examples.
52
+
53
+ 14
54
+ 00:01:01,000 --> 00:01:05,000
55
+ Atlassian will briefly talk about session configuration environments.
56
+
57
+ 15
58
+ 00:01:05,000 --> 00:01:07,000
59
+ Now let's start our lesson.
60
+
61
+ 16
62
+ 00:01:08,000 --> 00:01:13,000
63
+ Let's have some understanding of what that book Snow File is.
64
+
65
+ 17
66
+ 00:01:13,000 --> 00:01:21,000
67
+ WebEx email is also called Deployment Descriptor because it contains instructions configurations for
68
+
69
+ 18
70
+ 00:01:21,000 --> 00:01:22,000
71
+ our web application.
72
+
73
+ 19
74
+ 00:01:23,000 --> 00:01:31,000
75
+ If you remember where we just saw a Web file and the lesson about Tomcats, we also adjusted it in our
76
+
77
+ 20
78
+ 00:01:31,000 --> 00:01:34,000
79
+ homework when we configured our syndication for Tomcat.
80
+
81
+ 21
82
+ 00:01:35,000 --> 00:01:42,000
83
+ They'll remember that if you skip lessons about Tomcat Server, I recommend you to watch them and to
84
+
85
+ 22
86
+ 00:01:42,000 --> 00:01:50,000
87
+ complete home task Java Web Applications User Deployment Descriptor File to determine how you will map
88
+
89
+ 23
90
+ 00:01:50,000 --> 00:01:58,000
91
+ the so that's which your else require are syndication filters, configure error handling and all the
92
+
93
+ 24
94
+ 00:01:58,000 --> 00:02:01,000
95
+ information this file is named.
96
+
97
+ 25
98
+ 00:02:01,000 --> 00:02:08,000
99
+ That X amount and resides in the apps bar on the zavod directory.
100
+
101
+ 26
102
+ 00:02:08,000 --> 00:02:15,000
103
+ That maximal is part of the service standards for web applications and web applications.
104
+
105
+ 27
106
+ 00:02:15,000 --> 00:02:23,000
107
+ Deployment descriptor describes the closest resources and configuration of the application and how the
108
+
109
+ 28
110
+ 00:02:23,000 --> 00:02:26,000
111
+ web server uses them to serve fabric requests.
112
+
113
+ 29
114
+ 00:02:26,000 --> 00:02:34,000
115
+ When the web server receives a request for the application, it uses a deployment descriptor two mobs
116
+
117
+ 30
118
+ 00:02:34,000 --> 00:02:35,000
119
+ at your browser request.
120
+
121
+ 31
122
+ 00:02:35,000 --> 00:02:44,000
123
+ These include that all the handles requests in our previous last and you saw that we can figure it all
124
+
125
+ 32
126
+ 00:02:44,000 --> 00:02:47,000
127
+ our surrounding examples without web amount.
128
+
129
+ 33
130
+ 00:02:48,000 --> 00:02:55,000
131
+ This is because starting from the select mission three, we can use annotation based configuration instead
132
+
133
+ 34
134
+ 00:02:55,000 --> 00:02:56,000
135
+ of map smell.
136
+
137
+ 35
138
+ 00:02:57,000 --> 00:03:04,000
139
+ Starting from Tomcat version seven, you are not obligated to use Rabbit's amount as a main configuration
140
+
141
+ 36
142
+ 00:03:04,000 --> 00:03:06,000
143
+ source for your map application.
144
+
145
+ 37
146
+ 00:03:07,000 --> 00:03:14,000
147
+ There is a group of people who prefer configuration in X amount and there is also another group of people
148
+
149
+ 38
150
+ 00:03:14,000 --> 00:03:17,000
151
+ who prefer configuration with annotations.
152
+
153
+ 39
154
+ 00:03:17,000 --> 00:03:22,000
155
+ Which option is bad and which one I recommend you to use?
156
+
157
+ 40
158
+ 00:03:23,000 --> 00:03:27,000
159
+ You know, there is no single and correct answer on this question.
160
+
161
+ 41
162
+ 00:03:28,000 --> 00:03:35,000
163
+ If annotation based configuration is supported from the service version three, ZIP doesn't needs an
164
+
165
+ 42
166
+ 00:03:35,000 --> 00:03:39,000
167
+ x amount based configuration become obsolete and nobody using it.
168
+
169
+ 43
170
+ 00:03:40,000 --> 00:03:46,000
171
+ Indeed, there is a group of people who love to use sectional based configuration.
172
+
173
+ 44
174
+ 00:03:46,000 --> 00:03:55,000
175
+ The different pros and cons of fixing base configuration versus annotation based configuration ensure
176
+
177
+ 45
178
+ 00:03:55,000 --> 00:04:02,000
179
+ keeping all configurations in rabbits and now allows you to see the big picture and all configurations
180
+
181
+ 46
182
+ 00:04:02,000 --> 00:04:04,000
183
+ in one place.
184
+
185
+ 47
186
+ 00:04:04,000 --> 00:04:10,000
187
+ Here's my big symbol here all configurations, all mappings, all sources.
188
+
189
+ 48
190
+ 00:04:10,000 --> 00:04:16,000
191
+ And you can see everything at once instead of opening source code of hundreds files.
192
+
193
+ 49
194
+ 00:04:17,000 --> 00:04:24,000
195
+ But the disadvantage of such approach is that in case you have hundreds of suits, your excellent file
196
+
197
+ 50
198
+ 00:04:24,000 --> 00:04:29,000
199
+ become way too happy and the faces scrolled through reads.
200
+
201
+ 51
202
+ 00:04:29,000 --> 00:04:37,000
203
+ So what you need or bottom of the file supports of such a maximum file may become a challenge.
204
+
205
+ 52
206
+ 00:04:38,000 --> 00:04:46,000
207
+ On the other hand, have an annotation based configuration allows you to see all configurations related
208
+
209
+ 53
210
+ 00:04:46,000 --> 00:04:47,000
211
+ to that particular thread.
212
+
213
+ 54
214
+ 00:04:48,000 --> 00:04:55,000
215
+ When you open its source code, you don't need to navigate to that maximum file in order to find or
216
+
217
+ 55
218
+ 00:04:55,000 --> 00:05:03,000
219
+ change your configurations, all configurations related to each particular scene that are located in
220
+
221
+ 56
222
+ 00:05:03,000 --> 00:05:10,000
223
+ the file with each so that source code and you are not to bother with non-related configurations.
224
+
225
+ 57
226
+ 00:05:11,000 --> 00:05:15,000
227
+ In this case you may face with another disadvantage.
228
+
229
+ 58
230
+ 00:05:15,000 --> 00:05:20,000
231
+ First of all, your source code is mixed with configurations.
232
+
233
+ 59
234
+ 00:05:21,000 --> 00:05:27,000
235
+ This is not always considered as a good practice because you put configurations as a part of the source
236
+
237
+ 60
238
+ 00:05:27,000 --> 00:05:33,000
239
+ code that is needed to be compiled instead of keeping configuration separately.
240
+
241
+ 61
242
+ 00:05:33,000 --> 00:05:41,000
243
+ So with new compilation, in case of configuration changes, there is a resistance to do configurations
244
+
245
+ 62
246
+ 00:05:41,000 --> 00:05:48,000
247
+ and source code separately because in this case it is easy to suppose is used to defend basis.
248
+
249
+ 63
250
+ 00:05:49,000 --> 00:05:55,000
251
+ And another disadvantage is that in case you need to find mappings that you are interested in or finds
252
+
253
+ 64
254
+ 00:05:55,000 --> 00:06:02,000
255
+ any particular suit that you need to search through the source code of many different files instead
256
+
257
+ 65
258
+ 00:06:02,000 --> 00:06:08,000
259
+ of execution of search in one configuration file like in fabric smell is via.
260
+
261
+ 66
262
+ 00:06:09,000 --> 00:06:17,000
263
+ So these are differences very ensure and it is only up to you which way of configurations to choose
264
+
265
+ 67
266
+ 00:06:18,000 --> 00:06:25,000
267
+ person that I love x amount based configurations for enterprise projects and for running and educational
268
+
269
+ 68
270
+ 00:06:25,000 --> 00:06:26,000
271
+ purposes.
272
+
273
+ 69
274
+ 00:06:26,000 --> 00:06:31,000
275
+ It is easier and more clear way to configure with annotations.
276
+
277
+ 70
278
+ 00:06:31,000 --> 00:06:31,000
279
+ Yes.
280
+
281
+ 71
282
+ 00:06:31,000 --> 00:06:38,000
283
+ So like I used annotation based configurations and use classes, but when it comes to production project
284
+
285
+ 72
286
+ 00:06:38,000 --> 00:06:47,000
287
+ and configuration of suites, probably I would prefer SML base configuration, but again, it depends
288
+
289
+ 73
290
+ 00:06:47,000 --> 00:06:48,000
291
+ on different factors.
292
+
293
+ 74
294
+ 00:06:49,000 --> 00:06:56,000
295
+ In this class we are going to know how to work with WebEx, email and X and on base configurations and
296
+
297
+ 75
298
+ 00:06:56,000 --> 00:06:59,000
299
+ you will be able to choose which option you like most.
300
+
301
+ 76
302
+ 00:07:00,000 --> 00:07:06,000
303
+ Now that's have a demo to understand and see specific configurations of X.
304
+
305
+ 77
306
+ 00:07:06,000 --> 00:07:14,000
307
+ Among the first things I'd like to do is the location of the file, like we have discussed already.
308
+
309
+ 78
310
+ 00:07:14,000 --> 00:07:19,000
311
+ File is located in developing folder which is in our lab.
312
+
313
+ 79
314
+ 00:07:19,000 --> 00:07:20,000
315
+ That folder.
316
+
317
+ 80
318
+ 00:07:20,000 --> 00:07:28,000
319
+ Accordingly, when you first open that maximum file in leaves, you might see the following editor this
320
+
321
+ 81
322
+ 00:07:28,000 --> 00:07:31,000
323
+ this Eclipse editor for External Files.
324
+
325
+ 82
326
+ 00:07:32,000 --> 00:07:38,000
327
+ Here you can easily see main notes of X-Mode tree and attributes of each node.
328
+
329
+ 83
330
+ 00:07:39,000 --> 00:07:42,000
331
+ Well, it is also possible to work with this editor.
332
+
333
+ 84
334
+ 00:07:42,000 --> 00:07:45,000
335
+ Personally, I prefer to work with this raw file.
336
+
337
+ 85
338
+ 00:07:46,000 --> 00:07:50,000
339
+ You can try different options and select the one you like the most.
340
+
341
+ 86
342
+ 00:07:50,000 --> 00:07:54,000
343
+ But during this lesson I will look with the source of the file.
344
+
345
+ 87
346
+ 00:07:55,000 --> 00:08:04,000
347
+ Here you can find two different taps that allow you to see which of you stands for Extensible Markup
348
+
349
+ 88
350
+ 00:08:04,000 --> 00:08:05,000
351
+ Language.
352
+
353
+ 89
354
+ 00:08:05,000 --> 00:08:12,000
355
+ That means you can use any tax you wish in case of a system amount you are restricted.
356
+
357
+ 90
358
+ 00:08:12,000 --> 00:08:21,000
359
+ Was using on the special packs with x amount you can use any tax while there is still an agreement which
360
+
361
+ 91
362
+ 00:08:21,000 --> 00:08:23,000
363
+ tax you will use in our lab x amount file.
364
+
365
+ 92
366
+ 00:08:25,000 --> 00:08:28,000
367
+ The first line in X file is called parallel.
368
+
369
+ 93
370
+ 00:08:29,000 --> 00:08:34,000
371
+ Prologue is a component added in the beginning of an excellent document.
372
+
373
+ 94
374
+ 00:08:35,000 --> 00:08:42,000
375
+ Otherwise, we can say that what I want it to be is because it document's element can be considered
376
+
377
+ 95
378
+ 00:08:42,000 --> 00:08:43,000
379
+ as prologue.
380
+
381
+ 96
382
+ 00:08:44,000 --> 00:08:49,000
383
+ Makes some provoke an excellent declaration and some processing instructions.
384
+
385
+ 97
386
+ 00:08:50,000 --> 00:08:56,000
387
+ We are going to have a separate lesson about eczema, where we will discuss more about namespaces in
388
+
389
+ 98
390
+ 00:08:56,000 --> 00:08:56,000
391
+ eczema.
392
+
393
+ 99
394
+ 00:08:57,000 --> 00:09:04,000
395
+ It's for the nation and many, many of the seeds, because eczema itself is very interested in separate
396
+
397
+ 100
398
+ 00:09:04,000 --> 00:09:04,000
399
+ topic.
400
+
401
+ 101
402
+ 00:09:05,000 --> 00:09:08,000
403
+ As of now, we are going to learn how to use it.
404
+
405
+ 102
406
+ 00:09:09,000 --> 00:09:17,000
407
+ Our vamp application, the only descriptor has one root element is it is called that that you can see
408
+
409
+ 103
410
+ 00:09:17,000 --> 00:09:26,000
411
+ that that map that is opened in the beginning of the file and closed at the end of the file in the attachments
412
+
413
+ 104
414
+ 00:09:26,000 --> 00:09:27,000
415
+ to the class and I'm going to leave.
416
+
417
+ 105
418
+ 00:09:27,000 --> 00:09:32,000
419
+ The documentation was least of all possible elements anywhere with some file.
420
+
421
+ 106
422
+ 00:09:32,000 --> 00:09:38,000
423
+ And in this lesson I am going to give you is the most important once in my opinion.
424
+
425
+ 107
426
+ 00:09:39,000 --> 00:09:47,000
427
+ The first one element in our example here is the optional warm and cold display named element.
428
+
429
+ 108
430
+ 00:09:48,000 --> 00:09:51,000
431
+ It specifies the web application display name.
432
+
433
+ 109
434
+ 00:09:51,000 --> 00:09:56,000
435
+ This sure means it can be displayed by graphic user interface tools.
436
+
437
+ 110
438
+ 00:09:57,000 --> 00:09:59,000
439
+ The next element is an interesting one.
440
+
441
+ 111
442
+ 00:10:00,000 --> 00:10:02,000
443
+ It is called Vulcan File List.
444
+
445
+ 112
446
+ 00:10:03,000 --> 00:10:05,000
447
+ I believe that intuitively.
448
+
449
+ 113
450
+ 00:10:05,000 --> 00:10:07,000
451
+ You already understand what it is about.
452
+
453
+ 114
454
+ 00:10:08,000 --> 00:10:10,000
455
+ This element is also optional.
456
+
457
+ 115
458
+ 00:10:11,000 --> 00:10:13,000
459
+ It is not mandatory one.
460
+
461
+ 116
462
+ 00:10:13,000 --> 00:10:20,000
463
+ It contains an order at least of welcome file elements when zero interacts with of applications.
464
+
465
+ 117
466
+ 00:10:20,000 --> 00:10:25,000
467
+ Requested web server links for other sources from this list.
468
+
469
+ 118
470
+ 00:10:25,000 --> 00:10:27,000
471
+ First Lords.
472
+
473
+ 119
474
+ 00:10:27,000 --> 00:10:28,000
475
+ The first ones that was found.
476
+
477
+ 120
478
+ 00:10:29,000 --> 00:10:31,000
479
+ Let me run our web application.
480
+
481
+ 121
482
+ 00:10:36,000 --> 00:10:42,000
483
+ And when applications started, I navigated the zeroth euro of my application.
484
+
485
+ 122
486
+ 00:10:42,000 --> 00:10:49,000
487
+ But each page is open to hear how Tomcat Server understands what page to open.
488
+
489
+ 123
490
+ 00:10:50,000 --> 00:10:52,000
491
+ This is because of welcome file lists.
492
+
493
+ 124
494
+ 00:10:53,000 --> 00:10:57,000
495
+ In this case, I navigated to the index JSP file.
496
+
497
+ 125
498
+ 00:10:57,000 --> 00:10:58,000
499
+ Why?
500
+
501
+ 126
502
+ 00:10:58,000 --> 00:11:05,000
503
+ Because in my web resources on the index GCP resource is available from all other resources from this
504
+
505
+ 127
506
+ 00:11:05,000 --> 00:11:06,000
507
+ list.
508
+
509
+ 128
510
+ 00:11:06,000 --> 00:11:07,000
511
+ Is it clear?
512
+
513
+ 129
514
+ 00:11:08,000 --> 00:11:14,000
515
+ This is very useful to use for home pages in order to navigate user to the home page straight away.
516
+
517
+ 130
518
+ 00:11:15,000 --> 00:11:22,000
519
+ Once user reached is a home resource of your web application and as you can see, welcome file list
520
+
521
+ 131
522
+ 00:11:22,000 --> 00:11:25,000
523
+ elements may contain welcome file elements.
524
+
525
+ 132
526
+ 00:11:26,000 --> 00:11:26,000
527
+ Let's continue.
528
+
529
+ 133
530
+ 00:11:27,000 --> 00:11:31,000
531
+ The next element that I want to show you is called silhouette.
532
+
533
+ 134
534
+ 00:11:31,000 --> 00:11:34,000
535
+ So that element is used to describe silhouette.
536
+
537
+ 135
538
+ 00:11:35,000 --> 00:11:38,000
539
+ It may contain Zenimax animals.
540
+
541
+ 136
542
+ 00:11:39,000 --> 00:11:46,000
543
+ So that name is used to refer to this ledger as a cigarette mopping and select full class name.
544
+
545
+ 137
546
+ 00:11:46,000 --> 00:11:49,000
547
+ ZS Child elements are mandatory ones.
548
+
549
+ 138
550
+ 00:11:50,000 --> 00:11:57,000
551
+ I still recommend you to watch the official documentation where you will be able to learn more details.
552
+
553
+ 139
554
+ 00:11:58,000 --> 00:12:07,000
555
+ I would just stress that instead of the loss, you can use the AP file that these two are interchangeable.
556
+
557
+ 140
558
+ 00:12:07,000 --> 00:12:10,000
559
+ The first one specifies class.
560
+
561
+ 141
562
+ 00:12:11,000 --> 00:12:15,000
563
+ The second said Z Pass is a GSP file.
564
+
565
+ 142
566
+ 00:12:15,000 --> 00:12:20,000
567
+ And just to remind you, we're going to have a separate lesson about GSP technology.
568
+
569
+ 143
570
+ 00:12:21,000 --> 00:12:26,000
571
+ Well, all the elements inside that element are optional.
572
+
573
+ 144
574
+ 00:12:26,000 --> 00:12:31,000
575
+ You can press pause and explore more details on this slide if you wish.
576
+
577
+ 145
578
+ 00:12:32,000 --> 00:12:35,000
579
+ Once you explore the slide, we can proceed.
580
+
581
+ 146
582
+ 00:12:36,000 --> 00:12:36,000
583
+ On the example.
584
+
585
+ 147
586
+ 00:12:36,000 --> 00:12:45,000
587
+ You can also see how I passed these parameters so that also we can configure a load on startup value.
588
+
589
+ 148
590
+ 00:12:46,000 --> 00:12:52,000
591
+ If you don't remember what is in lease, which previous lesson and the lesson about synthetic.
592
+
593
+ 149
594
+ 00:12:52,000 --> 00:12:55,000
595
+ Now I've learned a lot on top.
596
+
597
+ 150
598
+ 00:12:55,000 --> 00:12:56,000
599
+ Yes.
600
+
601
+ 151
602
+ 00:12:56,000 --> 00:13:04,000
603
+ And in general, if you watched the previous lesson, you have to remember that we took the same configuration
604
+
605
+ 152
606
+ 00:13:04,000 --> 00:13:06,000
607
+ so we can do we have EPS of that annotation.
608
+
609
+ 153
610
+ 00:13:07,000 --> 00:13:10,000
611
+ So this is just a little bit different syntax.
612
+
613
+ 154
614
+ 00:13:11,000 --> 00:13:18,000
615
+ The next element that we are going to review is called Silhouette Map and it is used to map zoom that
616
+
617
+ 155
618
+ 00:13:18,000 --> 00:13:20,000
619
+ we take with zero plot.
620
+
621
+ 156
622
+ 00:13:21,000 --> 00:13:27,000
623
+ And you already know from previous lesson that each scene that they have defined to your own mappings.
624
+
625
+ 157
626
+ 00:13:28,000 --> 00:13:36,000
627
+ That's why I map my existing hello world so that it was already mapped to kind of go to another URL.
628
+
629
+ 158
630
+ 00:13:37,000 --> 00:13:39,000
631
+ Let me navigate to the browser.
632
+
633
+ 159
634
+ 00:13:42,000 --> 00:13:45,000
635
+ And now I will try to reach hello world source.
636
+
637
+ 160
638
+ 00:13:46,000 --> 00:13:49,000
639
+ And you can see that I successfully reached my silhouette.
640
+
641
+ 161
642
+ 00:13:50,000 --> 00:13:55,000
643
+ The next thing that I want to show you is how to set context parameters.
644
+
645
+ 162
646
+ 00:13:55,000 --> 00:14:03,000
647
+ In previous lesson will read, you saw what that context is and how we can use it to set and abstract
648
+
649
+ 163
650
+ 00:14:03,000 --> 00:14:04,000
651
+ attributes.
652
+
653
+ 164
654
+ 00:14:05,000 --> 00:14:08,000
655
+ See you can see context for example element.
656
+
657
+ 165
658
+ 00:14:08,000 --> 00:14:17,000
659
+ I can set parameter in the parameter rally special for this case I created and not assume that that
660
+
661
+ 166
662
+ 00:14:17,000 --> 00:14:19,000
663
+ is called context for value.
664
+
665
+ 167
666
+ 00:14:19,000 --> 00:14:27,000
667
+ So let in this so that I get some that context object and call getting needs param officer with context
668
+
669
+ 168
670
+ 00:14:27,000 --> 00:14:27,000
671
+ object.
672
+
673
+ 169
674
+ 00:14:28,000 --> 00:14:37,000
675
+ Now let me navigate as a web browser and here I use context per I'm zero to reach demo of that and you
676
+
677
+ 170
678
+ 00:14:37,000 --> 00:14:43,000
679
+ can see on the screen will point to zero that we use for our context parameter.
680
+
681
+ 171
682
+ 00:14:44,000 --> 00:14:45,000
683
+ Let's see.
684
+
685
+ 172
686
+ 00:14:45,000 --> 00:14:47,000
687
+ I'd like to demo this.
688
+
689
+ 173
690
+ 00:14:47,000 --> 00:14:51,000
691
+ How to Set Security Constraints for your web application.
692
+
693
+ 174
694
+ 00:14:52,000 --> 00:14:55,000
695
+ If you remember homework for some type of web server.
696
+
697
+ 175
698
+ 00:14:55,000 --> 00:14:57,000
699
+ We did see no task in Tomcat.
700
+
701
+ 176
702
+ 00:14:57,000 --> 00:14:58,000
703
+ That X no.
704
+
705
+ 177
706
+ 00:14:59,000 --> 00:15:07,000
707
+ In this example, I use the same piece of code from the solution to set basic authentication mucosa
708
+
709
+ 178
710
+ 00:15:07,000 --> 00:15:08,000
711
+ example.
712
+
713
+ 179
714
+ 00:15:08,000 --> 00:15:14,000
715
+ If it is not familiar to me, please look at the homework solution for Tomcat Web server.
716
+
717
+ 180
718
+ 00:15:15,000 --> 00:15:22,000
719
+ The only difference here is running Tomcat from Eclipse, and I believe it is important to mention when
720
+
721
+ 181
722
+ 00:15:22,000 --> 00:15:29,000
723
+ you improve to a Tomcat Web summit in Eclipse, you have to understand that changing configurations
724
+
725
+ 182
726
+ 00:15:29,000 --> 00:15:34,000
727
+ is a Tomcat installation folder will bring you nothing.
728
+
729
+ 183
730
+ 00:15:35,000 --> 00:15:44,000
731
+ You have to configure Tomcat users in the place where can Eclipse in project explorer new project is
732
+
733
+ 184
734
+ 00:15:44,000 --> 00:15:44,000
735
+ created.
736
+
737
+ 185
738
+ 00:15:44,000 --> 00:15:53,000
739
+ It is called servers Open Tomcat servers at present and here you can find Tomcat users configuration
740
+
741
+ 186
742
+ 00:15:53,000 --> 00:15:53,000
743
+ file.
744
+
745
+ 187
746
+ 00:15:54,000 --> 00:15:59,000
747
+ If you wish to ask the about Tomcat Web server, you already know what we have to add here.
748
+
749
+ 188
750
+ 00:16:00,000 --> 00:16:05,000
751
+ We have to add user with a concrete mole and password for authentication.
752
+
753
+ 189
754
+ 00:16:06,000 --> 00:16:13,000
755
+ You can see that our admin user has clients role and in our event with similar file, we also allow
756
+
757
+ 190
758
+ 00:16:13,000 --> 00:16:16,000
759
+ a syndication for users with clients role.
760
+
761
+ 191
762
+ 00:16:17,000 --> 00:16:26,000
763
+ Let me access test false acorn and you can see that I faced was web authentication I just write logging
764
+
765
+ 192
766
+ 00:16:26,000 --> 00:16:33,000
767
+ password and I can reach end point I have full for because such resource doesn't exist.
768
+
769
+ 193
770
+ 00:16:34,000 --> 00:16:39,000
771
+ But the main thing for this example is that I post authentication on this fact.
772
+
773
+ 194
774
+ 00:16:40,000 --> 00:16:40,000
775
+ Great.
776
+
777
+ 195
778
+ 00:16:41,000 --> 00:16:48,000
779
+ Let's continue in the deployment descriptor we can configure parameter for our session was a session
780
+
781
+ 196
782
+ 00:16:48,000 --> 00:16:49,000
783
+ config element.
784
+
785
+ 197
786
+ 00:16:49,000 --> 00:16:56,000
787
+ We can configure session demo in defiance is the number of minutes after which sessions in this web
788
+
789
+ 198
790
+ 00:16:56,000 --> 00:17:03,000
791
+ application Explorer, we're going to learn how to work with the session object as a separate lesson.
792
+
793
+ 199
794
+ 00:17:04,000 --> 00:17:08,000
795
+ You already know that we can use session config element in web x-mode.
796
+
797
+ 200
798
+ 00:17:09,000 --> 00:17:14,000
799
+ Among all the important elements, is it possible to consider an example?
800
+
801
+ 201
802
+ 00:17:14,000 --> 00:17:20,000
803
+ But would you introduce a date for consideration of filters and global error handling?
804
+
805
+ 202
806
+ 00:17:21,000 --> 00:17:27,000
807
+ But we are glad because this is a relevant lessons because none of that filters error.
808
+
809
+ 203
810
+ 00:17:27,000 --> 00:17:34,000
811
+ Having allies out of the scope of this lesson because of the amount of scenes we discuss in scope of
812
+
813
+ 204
814
+ 00:17:34,000 --> 00:17:35,000
815
+ that topics.
816
+
817
+ 205
818
+ 00:17:36,000 --> 00:17:39,000
819
+ And I believe that's what I wanted to share with you today.
820
+
821
+ 206
822
+ 00:17:39,000 --> 00:17:46,000
823
+ Let's recap what we have learned in this lesson, in this lesson and what that is.
824
+
825
+ 207
826
+ 00:17:47,000 --> 00:17:53,000
827
+ Now, you know the difference between annotation, base configuration and excellent base configuration.
828
+
829
+ 208
830
+ 00:17:53,000 --> 00:18:02,000
831
+ We also discussed that using one or another is a matter of style and each option has its own advantages
832
+
833
+ 209
834
+ 00:18:02,000 --> 00:18:03,000
835
+ and disadvantages.
836
+
837
+ 210
838
+ 00:18:03,000 --> 00:18:06,000
839
+ With that, how to configure Vulcan File.
840
+
841
+ 211
842
+ 00:18:06,000 --> 00:18:15,000
843
+ This is a lesson the example of configuring so that I that's not an event it's now I showed you example
844
+
845
+ 212
846
+ 00:18:15,000 --> 00:18:23,000
847
+ was configuration of server and that's parameters and also we can see that security constrains web application
848
+
849
+ 213
850
+ 00:18:24,000 --> 00:18:31,000
851
+ to restrict access to some resources at the end of the lesson we learned also session can see element.
852
+
853
+ 214
854
+ 00:18:32,000 --> 00:18:33,000
855
+ That's all for today.
856
+
857
+ 215
858
+ 00:18:33,000 --> 00:18:35,000
859
+ Thanks for your attention.
860
+
861
+ 216
862
+ 00:18:35,000 --> 00:18:39,000
863
+ Have a great day and see you in the next lesson.
864
+
61 - Servlets/external-links.txt ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ 001 Link-to-Jakarta-documentation
3
+ https://jakarta.ee/specifications/platform/9/apidocs/jakarta/servlet/http/package-summary.html
4
+
5
+ 001 Link-to-the-HelloWorldServlet
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/HelloWorldServlet.java
7
+
8
+ 002 Source-code-examples-from-the-lesson
9
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets
10
+
11
+ 003 Documentation-about-elements-in-web.xml-file
12
+ https://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275
13
+
14
+ 003 Source-of-web.xml-from-the-lesson
15
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
16
+
17
+ 003 Source-code-of-ContextParamValueServlet
18
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/ContextParamValueServlet.java
62 - Web Filters/001 Source-code-of-HelloWorldFilter.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/filters/HelloWorldFilter.java
62 - Web Filters/001 Source-of-web.xml-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
62 - Web Filters/001 Web Filters_en.srt ADDED
@@ -0,0 +1,884 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:14,000
3
+ Hello my friends in this last month announce blog that filters are also will learn how to use them in
4
+
5
+ 2
6
+ 00:00:14,000 --> 00:00:14,000
7
+ practice.
8
+
9
+ 3
10
+ 00:00:15,000 --> 00:00:22,000
11
+ It is important to learn this topic because that filters are in the basement of some advanced frameworks
12
+
13
+ 4
14
+ 00:00:22,000 --> 00:00:24,000
15
+ like spring security, for example.
16
+
17
+ 5
18
+ 00:00:25,000 --> 00:00:29,000
19
+ We'll start our lesson from the overview of map filters.
20
+
21
+ 6
22
+ 00:00:30,000 --> 00:00:34,000
23
+ I'm going to explain what they are and why we need them.
24
+
25
+ 7
26
+ 00:00:35,000 --> 00:00:39,000
27
+ I will explain when and where we can use map filters.
28
+
29
+ 8
30
+ 00:00:39,000 --> 00:00:43,000
31
+ After that, we'll talk about filter lifecycle.
32
+
33
+ 9
34
+ 00:00:43,000 --> 00:00:49,000
35
+ Knowing these basics will proceed with none of the source code of filter API.
36
+
37
+ 10
38
+ 00:00:50,000 --> 00:00:53,000
39
+ Filter API consists of the following interfaces.
40
+
41
+ 11
42
+ 00:00:54,000 --> 00:00:57,000
43
+ Filter filter config and filter chain.
44
+
45
+ 12
46
+ 00:00:58,000 --> 00:01:05,000
47
+ I will explain what this spreadsheet types enum is and what is the difference between include and for
48
+
49
+ 13
50
+ 00:01:06,000 --> 00:01:07,000
51
+ the real examples.
52
+
53
+ 14
54
+ 00:01:07,000 --> 00:01:08,000
55
+ Will configure filter.
56
+
57
+ 15
58
+ 00:01:08,000 --> 00:01:09,000
59
+ Yeah.
60
+
61
+ 16
62
+ 00:01:09,000 --> 00:01:12,000
63
+ That filter annotation and we have that x amount.
64
+
65
+ 17
66
+ 00:01:13,000 --> 00:01:14,000
67
+ Let's start our lesson.
68
+
69
+ 18
70
+ 00:01:15,000 --> 00:01:22,000
71
+ Let's start from the Sierra first and understand what the filters are and why we need them.
72
+
73
+ 19
74
+ 00:01:22,000 --> 00:01:23,000
75
+ Java.
76
+
77
+ 20
78
+ 00:01:23,000 --> 00:01:29,000
79
+ So that filter is used to intercept the class request and do some preprocessing.
80
+
81
+ 21
82
+ 00:01:30,000 --> 00:01:37,000
83
+ Imagine that you have group of resources dedicated for users with admin role only, and you need to
84
+
85
+ 22
86
+ 00:01:37,000 --> 00:01:46,000
87
+ make sure that nobody besides authenticated users was at zero will not be able to access that resources.
88
+
89
+ 23
90
+ 00:01:47,000 --> 00:01:55,000
91
+ This check may be placed into that filter and all requests, those are secure resources will be intercepted
92
+
93
+ 24
94
+ 00:01:55,000 --> 00:02:00,000
95
+ and validated based on the user roles that will be decision made.
96
+
97
+ 25
98
+ 00:02:00,000 --> 00:02:02,000
99
+ What should be done next?
100
+
101
+ 26
102
+ 00:02:02,000 --> 00:02:07,000
103
+ Also, we can control post processing by intercepting as a response.
104
+
105
+ 27
106
+ 00:02:08,000 --> 00:02:09,000
107
+ Why we might need this.
108
+
109
+ 28
110
+ 00:02:10,000 --> 00:02:15,000
111
+ Imagine that you need to add additional added resources at once.
112
+
113
+ 29
114
+ 00:02:15,000 --> 00:02:24,000
115
+ For example, you don't want to cache JavaScript resources one lines request so you can do the same
116
+
117
+ 30
118
+ 00:02:24,000 --> 00:02:31,000
119
+ to create in that filter, mapping all JavaScript resources to it and control all requests to these
120
+
121
+ 31
122
+ 00:02:31,000 --> 00:02:31,000
123
+ resources.
124
+
125
+ 32
126
+ 00:02:32,000 --> 00:02:36,000
127
+ Also, that filters might be used for other tasks.
128
+
129
+ 33
130
+ 00:02:36,000 --> 00:02:44,000
131
+ For example, perform filtering tasks such as conversion, logging, compression, encryption, decryption,
132
+
133
+ 34
134
+ 00:02:44,000 --> 00:02:49,000
135
+ input, validation, etc. This red filter is pluggable.
136
+
137
+ 35
138
+ 00:02:50,000 --> 00:02:54,000
139
+ This means that its entry is defined in the fabric single file.
140
+
141
+ 36
142
+ 00:02:54,000 --> 00:03:02,000
143
+ Or we have that filter annotation and removes the entry both filter and mapping user from garbage smell.
144
+
145
+ 37
146
+ 00:03:02,000 --> 00:03:11,000
147
+ All combat filter annotation will be removed automatically and we don't need to change this too, so
148
+
149
+ 38
150
+ 00:03:11,000 --> 00:03:16,000
151
+ we can easily plug the filter to control access to resources that we want.
152
+
153
+ 39
154
+ 00:03:17,000 --> 00:03:24,000
155
+ Some other common tasks that we can do with so that things are logging the request parameters, the
156
+
157
+ 40
158
+ 00:03:24,000 --> 00:03:31,000
159
+ log files, including logging of the IP addresses of the computers from which the requests originate.
160
+
161
+ 41
162
+ 00:03:31,000 --> 00:03:39,000
163
+ Authentication and authorization of request for resources for mining of request, body or header before
164
+
165
+ 42
166
+ 00:03:39,000 --> 00:03:42,000
167
+ sending it to select for mining of the response before.
168
+
169
+ 43
170
+ 00:03:42,000 --> 00:03:49,000
171
+ Send it back to the client for mining response by adding some cookies, headers, information, etc.
172
+
173
+ 44
174
+ 00:03:50,000 --> 00:03:52,000
175
+ Comparisons of response data sense.
176
+
177
+ 45
178
+ 00:03:52,000 --> 00:03:57,000
179
+ Does it want encryption and decryption input validation?
180
+
181
+ 46
182
+ 00:03:58,000 --> 00:04:04,000
183
+ We now have basic sense about filters that's proceeding on filters by looking at the source code.
184
+
185
+ 47
186
+ 00:04:04,000 --> 00:04:06,000
187
+ And we have examples.
188
+
189
+ 48
190
+ 00:04:07,000 --> 00:04:11,000
191
+ On the screen, you can see the source code of the filter interface.
192
+
193
+ 49
194
+ 00:04:11,000 --> 00:04:14,000
195
+ It is located in Jakarta, so that's the package.
196
+
197
+ 50
198
+ 00:04:15,000 --> 00:04:22,000
199
+ Let's explore the masses of the new client and this interface similar to the server lifecycle of the
200
+
201
+ 51
202
+ 00:04:22,000 --> 00:04:22,000
203
+ filter.
204
+
205
+ 52
206
+ 00:04:22,000 --> 00:04:27,000
207
+ Maybe be described with three main methods zero in it.
208
+
209
+ 53
210
+ 00:04:27,000 --> 00:04:36,000
211
+ Do filter and destroy the net massive as water type and receives filter config as messages are given
212
+
213
+ 54
214
+ 00:04:37,000 --> 00:04:44,000
215
+ a little bit late things lesson that I'm going to talk about filter config to one container initializes
216
+
217
+ 55
218
+ 00:04:44,000 --> 00:04:51,000
219
+ the filter this is the masses that gets invoke this massive is called only wants in the lifecycle of
220
+
221
+ 56
222
+ 00:04:51,000 --> 00:04:56,000
223
+ the filter and we should initialize any resources in this mess.
224
+
225
+ 57
226
+ 00:04:57,000 --> 00:05:03,000
227
+ Filter config is used by container to provide a need parameters and so that context object is a filter.
228
+
229
+ 58
230
+ 00:05:04,000 --> 00:05:06,000
231
+ We can throw some exceptions.
232
+
233
+ 59
234
+ 00:05:06,000 --> 00:05:13,000
235
+ This method, this method has a default version that means we don't necessarily need to implement.
236
+
237
+ 60
238
+ 00:05:13,000 --> 00:05:19,000
239
+ It will implement and filter interface, but we definitely can if we need.
240
+
241
+ 61
242
+ 00:05:20,000 --> 00:05:24,000
243
+ The next set of the film, The life cycle is called The Filter.
244
+
245
+ 62
246
+ 00:05:25,000 --> 00:05:27,000
247
+ This massive is an abstract one.
248
+
249
+ 63
250
+ 00:05:28,000 --> 00:05:34,000
251
+ It also has what written this massive history parameters Zia.
252
+
253
+ 64
254
+ 00:05:34,000 --> 00:05:43,000
255
+ So that's request, that's response and filter chain and believes that you already know what's worse.
256
+
257
+ 65
258
+ 00:05:43,000 --> 00:05:48,000
259
+ And so what response are from previous lessons and what filter change is.
260
+
261
+ 66
262
+ 00:05:48,000 --> 00:05:52,000
263
+ We're going to learn also in details in this lesson.
264
+
265
+ 67
266
+ 00:05:52,000 --> 00:05:53,000
267
+ Much a little bit later.
268
+
269
+ 68
270
+ 00:05:54,000 --> 00:06:03,000
271
+ This is a massive is it invoked every time by container one it has to apply filter the source filter
272
+
273
+ 69
274
+ 00:06:03,000 --> 00:06:07,000
275
+ chain is used to invoke the next filter in the chain.
276
+
277
+ 70
278
+ 00:06:08,000 --> 00:06:11,000
279
+ This is a great example of chain of responsibility.
280
+
281
+ 71
282
+ 00:06:12,000 --> 00:06:18,000
283
+ If you don't know what chain of responsibility to use, you are welcome to check my course of all the
284
+
285
+ 72
286
+ 00:06:18,000 --> 00:06:23,000
287
+ Gulf parties where I explains all contents with detailed examples.
288
+
289
+ 73
290
+ 00:06:24,000 --> 00:06:26,000
291
+ And the last, but not the least massive insult.
292
+
293
+ 74
294
+ 00:06:26,000 --> 00:06:32,000
295
+ The life cycle is called destroy this massive default implementation.
296
+
297
+ 75
298
+ 00:06:32,000 --> 00:06:39,000
299
+ And also it is not mandatory to implement when you want to implement through the interface.
300
+
301
+ 76
302
+ 00:06:39,000 --> 00:06:44,000
303
+ One container offloads the field, for instance it invokes to destroy mass.
304
+
305
+ 77
306
+ 00:06:45,000 --> 00:06:49,000
307
+ This is a massive where we can close any resources opened by a filter.
308
+
309
+ 78
310
+ 00:06:50,000 --> 00:06:54,000
311
+ This message is called only once in a lifetime of filter.
312
+
313
+ 79
314
+ 00:06:55,000 --> 00:06:57,000
315
+ That's how Filter Interface looks like.
316
+
317
+ 80
318
+ 00:06:58,000 --> 00:07:04,000
319
+ Let's now talk more about Filter API real and filter interface.
320
+
321
+ 81
322
+ 00:07:04,000 --> 00:07:10,000
323
+ But we also have to learn what filter config is and what filter change is.
324
+
325
+ 82
326
+ 00:07:11,000 --> 00:07:15,000
327
+ I open the source code or filter config interface.
328
+
329
+ 83
330
+ 00:07:15,000 --> 00:07:23,000
331
+ As you can see, this interface doesn't have hundreds of masses, so everything is simple and predictable
332
+
333
+ 84
334
+ 00:07:23,000 --> 00:07:32,000
335
+ within a filter configuration object used by similar container to pass information to filter during
336
+
337
+ 85
338
+ 00:07:32,000 --> 00:07:33,000
339
+ initialization.
340
+
341
+ 86
342
+ 00:07:34,000 --> 00:07:43,000
343
+ The interface has the following message get filter neat, get some context net any parameter and yet
344
+
345
+ 87
346
+ 00:07:43,000 --> 00:07:44,000
347
+ need parameter names.
348
+
349
+ 88
350
+ 00:07:45,000 --> 00:07:48,000
351
+ Massive names are self-described zoom.
352
+
353
+ 89
354
+ 00:07:49,000 --> 00:07:53,000
355
+ Things that we didn't discuss here is possibly this is a filters.
356
+
357
+ 90
358
+ 00:07:54,000 --> 00:08:00,000
359
+ Yes, it is similar to some that it is possible to pass the parameters to the filters.
360
+
361
+ 91
362
+ 00:08:01,000 --> 00:08:05,000
363
+ Let me open now another interface that is called filter change.
364
+
365
+ 92
366
+ 00:08:06,000 --> 00:08:13,000
367
+ As you can see, filter change is an interface with one absolute massive that is called the filter.
368
+
369
+ 93
370
+ 00:08:13,000 --> 00:08:21,000
371
+ And that led to a request as to what response the filter chain is an object provided by this web container
372
+
373
+ 94
374
+ 00:08:21,000 --> 00:08:28,000
375
+ that does a developer, given the view into the invocation chain of the field to its request first source.
376
+
377
+ 95
378
+ 00:08:29,000 --> 00:08:33,000
379
+ Filters use the filter chain to invoke the next filter in the chain.
380
+
381
+ 96
382
+ 00:08:34,000 --> 00:08:40,000
383
+ Or if the colon filter is the last field in the chain, it involves the source at the end of the chain.
384
+
385
+ 97
386
+ 00:08:41,000 --> 00:08:48,000
387
+ So you can understand, I can view the chain of filters easier to follow one by one.
388
+
389
+ 98
390
+ 00:08:49,000 --> 00:08:54,000
391
+ Basically, we can have multiple filters joined in one chain.
392
+
393
+ 99
394
+ 00:08:54,000 --> 00:09:02,000
395
+ Imagine that we have four sources that request want to reach and we can have multiple filters on the
396
+
397
+ 100
398
+ 00:09:02,000 --> 00:09:10,000
399
+ way to this source one filter, positive to another filter and the next one to another.
400
+
401
+ 101
402
+ 00:09:10,000 --> 00:09:14,000
403
+ Each filtering chain has its own responsibility.
404
+
405
+ 102
406
+ 00:09:14,000 --> 00:09:18,000
407
+ First one is the chain of civilization of the user, for example.
408
+
409
+ 103
410
+ 00:09:19,000 --> 00:09:24,000
411
+ The second one is to log the details of request and so on and so forth.
412
+
413
+ 104
414
+ 00:09:24,000 --> 00:09:30,000
415
+ The order filters chain will be the order that declared invalid simple file.
416
+
417
+ 105
418
+ 00:09:31,000 --> 00:09:39,000
419
+ As you mentioned before, the chain is clear representation of chain of responsibility designed for
420
+
421
+ 106
422
+ 00:09:39,000 --> 00:09:44,000
423
+ the queen and you and my golf course with all students.
424
+
425
+ 107
426
+ 00:09:44,000 --> 00:09:49,000
427
+ Please refer to that course the even more designed pardons.
428
+
429
+ 108
430
+ 00:09:50,000 --> 00:09:52,000
431
+ Now let's declare that filth.
432
+
433
+ 109
434
+ 00:09:53,000 --> 00:10:01,000
435
+ As you already know, we can have different type of configuration, annotation, base and maximum base.
436
+
437
+ 110
438
+ 00:10:02,000 --> 00:10:07,000
439
+ In this lesson, I'm going to show you both types of web filter configuration.
440
+
441
+ 111
442
+ 00:10:07,000 --> 00:10:11,000
443
+ Let's make our slightly new filter.
444
+
445
+ 112
446
+ 00:10:12,000 --> 00:10:16,000
447
+ Let's change package and call new package filters.
448
+
449
+ 113
450
+ 00:10:17,000 --> 00:10:19,000
451
+ Let's use a name to our filter.
452
+
453
+ 114
454
+ 00:10:20,000 --> 00:10:20,000
455
+ Let's go.
456
+
457
+ 115
458
+ 00:10:20,000 --> 00:10:21,000
459
+ Hello, world.
460
+
461
+ 116
462
+ 00:10:21,000 --> 00:10:22,000
463
+ Filter.
464
+
465
+ 117
466
+ 00:10:24,000 --> 00:10:24,000
467
+ Next.
468
+
469
+ 118
470
+ 00:10:26,000 --> 00:10:27,000
471
+ In the filter map.
472
+
473
+ 119
474
+ 00:10:28,000 --> 00:10:34,000
475
+ We have to consider the earlier part that is going to be used to intercept requests.
476
+
477
+ 120
478
+ 00:10:34,000 --> 00:10:36,000
479
+ Let's put asterisks here.
480
+
481
+ 121
482
+ 00:10:37,000 --> 00:10:38,000
483
+ What does it mean?
484
+
485
+ 122
486
+ 00:10:39,000 --> 00:10:46,000
487
+ This means that our Hello World Field will intercept all requests to our web application.
488
+
489
+ 123
490
+ 00:10:47,000 --> 00:10:50,000
491
+ Here you can see additional interesting configuration.
492
+
493
+ 124
494
+ 00:10:51,000 --> 00:10:59,000
495
+ You can configure a filter based on the dispatcher types zero request forward and delete an error.
496
+
497
+ 125
498
+ 00:11:00,000 --> 00:11:03,000
499
+ In real life it is one more additional dispatcher type.
500
+
501
+ 126
502
+ 00:11:03,000 --> 00:11:04,000
503
+ Is this code assumed?
504
+
505
+ 127
506
+ 00:11:05,000 --> 00:11:06,000
507
+ What does this mean?
508
+
509
+ 128
510
+ 00:11:07,000 --> 00:11:13,000
511
+ The dispatcher type of request is used by the containment to select the filters that need to be applied
512
+
513
+ 129
514
+ 00:11:13,000 --> 00:11:14,000
515
+ to the request.
516
+
517
+ 130
518
+ 00:11:15,000 --> 00:11:21,000
519
+ On the field this was match and dispatch type and euro parties will be applied.
520
+
521
+ 131
522
+ 00:11:22,000 --> 00:11:28,000
523
+ The initial dispatch type of request is defined as dispatch IT type request.
524
+
525
+ 132
526
+ 00:11:28,000 --> 00:11:34,000
527
+ The dispatcher thought of request dispatch where request dispatch for an asset.
528
+
529
+ 133
530
+ 00:11:35,000 --> 00:11:42,000
531
+ Liquidating previous lesson is dispatched at type four and in the case we use method include of request
532
+
533
+ 134
534
+ 00:11:42,000 --> 00:11:47,000
535
+ dispatcher all dispatcher type is include respectively.
536
+
537
+ 135
538
+ 00:11:48,000 --> 00:11:55,000
539
+ What you want to view is you include massive but this also can be used as for was only one difference
540
+
541
+ 136
542
+ 00:11:56,000 --> 00:12:06,000
543
+ for for us in a quest from a select another source and include includes is a content of resources response.
544
+
545
+ 137
546
+ 00:12:07,000 --> 00:12:11,000
547
+ The difference between the two masses is that's it for tomorrow.
548
+
549
+ 138
550
+ 00:12:11,000 --> 00:12:16,000
551
+ I will close out the three after it has been invoked.
552
+
553
+ 139
554
+ 00:12:16,000 --> 00:12:22,000
555
+ Whereas in three mass this is out the stream open includes massive.
556
+
557
+ 140
558
+ 00:12:22,000 --> 00:12:31,000
559
+ It takes content from another resource and includes it in the similar zip for the massive sense is a
560
+
561
+ 141
562
+ 00:12:31,000 --> 00:12:33,000
563
+ request to another resource.
564
+
565
+ 142
566
+ 00:12:34,000 --> 00:12:36,000
567
+ Was a spreadsheet type of that.
568
+
569
+ 143
570
+ 00:12:36,000 --> 00:12:45,000
571
+ The was dispatched in one of the messy context dispatch addresses he's given as dispatch type passing.
572
+
573
+ 144
574
+ 00:12:46,000 --> 00:12:52,000
575
+ Finally dispatch and type of work was dispatched through an error page and was a continuous error handling
576
+
577
+ 145
578
+ 00:12:52,000 --> 00:12:55,000
579
+ mechanism is given as dispatched should that error.
580
+
581
+ 146
582
+ 00:12:56,000 --> 00:13:01,000
583
+ We can select the request, for example, here and click next button.
584
+
585
+ 147
586
+ 00:13:02,000 --> 00:13:05,000
587
+ We don't need constructors from the superclass.
588
+
589
+ 148
590
+ 00:13:05,000 --> 00:13:11,000
591
+ That's why you can uncheck this checkbox and now you can click Finish Button.
592
+
593
+ 149
594
+ 00:13:12,000 --> 00:13:21,000
595
+ We created our first filter and again because of configuration use much we need to change manual gearbox
596
+
597
+ 150
598
+ 00:13:21,000 --> 00:13:25,000
599
+ to Jakarta in import statements in order to avoid compilation errors.
600
+
601
+ 151
602
+ 00:13:26,000 --> 00:13:34,000
603
+ The sake of this demo, we don't need using this store nor any comparisons so far, so let's just remove
604
+
605
+ 152
606
+ 00:13:34,000 --> 00:13:34,000
607
+ them.
608
+
609
+ 153
610
+ 00:13:35,000 --> 00:13:43,000
611
+ You can see that we have that filter annotation and it is used to configure euro parties and dispatch
612
+
613
+ 154
614
+ 00:13:43,000 --> 00:13:44,000
615
+ it types.
616
+
617
+ 155
618
+ 00:13:44,000 --> 00:13:50,000
619
+ Lets reduce the sanitation to none of the attributes we can use to configure our that filter.
620
+
621
+ 156
622
+ 00:13:51,000 --> 00:13:59,000
623
+ If you look at the list of massive names this similar to the maps in that annotation, just some of
624
+
625
+ 157
626
+ 00:13:59,000 --> 00:14:03,000
627
+ them on you find that you focus your attention on different ones.
628
+
629
+ 158
630
+ 00:14:04,000 --> 00:14:12,000
631
+ So with names it allows the least array of select names to which you want to apply current filter field.
632
+
633
+ 159
634
+ 00:14:12,000 --> 00:14:19,000
635
+ Other words, the filter will filter requests to the specified silhouettes only.
636
+
637
+ 160
638
+ 00:14:20,000 --> 00:14:25,000
639
+ And we already briefly discussed with you what this budget types are.
640
+
641
+ 161
642
+ 00:14:25,000 --> 00:14:32,000
643
+ As you can see, we can pass an array of dispatch types and dispatch it type itself isn't enough.
644
+
645
+ 162
646
+ 00:14:33,000 --> 00:14:37,000
647
+ Here are five dispatch types that we have reviewed and discussed.
648
+
649
+ 163
650
+ 00:14:38,000 --> 00:14:42,000
651
+ Let's get back to the source code of our overall filter.
652
+
653
+ 164
654
+ 00:14:42,000 --> 00:14:44,000
655
+ Now in the filter.
656
+
657
+ 165
658
+ 00:14:44,000 --> 00:14:44,000
659
+ Massive.
660
+
661
+ 166
662
+ 00:14:45,000 --> 00:14:48,000
663
+ Let's print system out to our console.
664
+
665
+ 167
666
+ 00:14:48,000 --> 00:14:50,000
667
+ Let's bring Hello World.
668
+
669
+ 168
670
+ 00:14:51,000 --> 00:14:51,000
671
+ That's it.
672
+
673
+ 169
674
+ 00:14:52,000 --> 00:14:57,000
675
+ Do not forget to quote the filter message on the filter chain object.
676
+
677
+ 170
678
+ 00:14:58,000 --> 00:15:03,000
679
+ Without this massive invocations request will not reach targeted resource.
680
+
681
+ 171
682
+ 00:15:04,000 --> 00:15:10,000
683
+ Basically, if you don't want request to use the target resource, you shouldn't call this message.
684
+
685
+ 172
686
+ 00:15:11,000 --> 00:15:19,000
687
+ Every operation performed before and location of the filter and massive that operations happened before
688
+
689
+ 173
690
+ 00:15:19,000 --> 00:15:25,000
691
+ request reaches the source ever in what is written after the filter method.
692
+
693
+ 174
694
+ 00:15:26,000 --> 00:15:29,000
695
+ Those are operations that are done after we left.
696
+
697
+ 175
698
+ 00:15:29,000 --> 00:15:37,000
699
+ So that, for example and moving back to the client, let's run a web application on web server.
700
+
701
+ 176
702
+ 00:15:49,000 --> 00:15:56,000
703
+ And once application is started, we can see messages from our hello world filter and console and even
704
+
705
+ 177
706
+ 00:15:56,000 --> 00:15:57,000
707
+ more.
708
+
709
+ 178
710
+ 00:15:57,000 --> 00:16:04,000
711
+ In case I would wish on those sources it would be created in this lesson I would see the same message
712
+
713
+ 179
714
+ 00:16:04,000 --> 00:16:08,000
715
+ on console and even in case I want each other's resource.
716
+
717
+ 180
718
+ 00:16:08,000 --> 00:16:10,000
719
+ Again, the same message.
720
+
721
+ 181
722
+ 00:16:11,000 --> 00:16:20,000
723
+ This is because our human mapping that we set in our field, we make it intercept all possible requests.
724
+
725
+ 182
726
+ 00:16:21,000 --> 00:16:22,000
727
+ That's how it works.
728
+
729
+ 183
730
+ 00:16:23,000 --> 00:16:29,000
731
+ And the last because the news that I'm going to show you for the days, this configuration of field
732
+
733
+ 184
734
+ 00:16:29,000 --> 00:16:36,000
735
+ that in the X-Men if you're familiar with configuration of the silhouette in fabrics and you didn't
736
+
737
+ 185
738
+ 00:16:36,000 --> 00:16:43,000
739
+ skip previous lesson the configuration of the field there will be like a piece of cake for you will
740
+
741
+ 186
742
+ 00:16:43,000 --> 00:16:50,000
743
+ fill the element with such magnitude it achieves us field, the mean and field and plus also we can
744
+
745
+ 187
746
+ 00:16:50,000 --> 00:16:54,000
747
+ perceive parameters and everything is similar to this.
748
+
749
+ 188
750
+ 00:16:54,000 --> 00:17:01,000
751
+ So that configuration, when we declare that field, we need to map the zero path.
752
+
753
+ 189
754
+ 00:17:01,000 --> 00:17:10,000
755
+ And for this I need to describe another element of ethics and also the school field and I use filter
756
+
757
+ 190
758
+ 00:17:10,000 --> 00:17:11,000
759
+ name and euro pardon.
760
+
761
+ 191
762
+ 00:17:12,000 --> 00:17:21,000
763
+ Now let me navigate back to our Hello World Filter in order to read in program that we need to override
764
+
765
+ 192
766
+ 00:17:21,000 --> 00:17:22,000
767
+ in mass.
768
+
769
+ 193
770
+ 00:17:23,000 --> 00:17:31,000
771
+ Family warned in the message that they feel they can see as massive arguments.
772
+
773
+ 194
774
+ 00:17:32,000 --> 00:17:36,000
775
+ And then signs a massive one to of the consoles.
776
+
777
+ 195
778
+ 00:17:36,000 --> 00:17:41,000
779
+ The value of the new parameter was named the brown one.
780
+
781
+ 196
782
+ 00:17:41,000 --> 00:17:46,000
783
+ The silicon fake reference causing massive gas needs or ram.
784
+
785
+ 197
786
+ 00:17:46,000 --> 00:17:49,000
787
+ And I posit the name of the ram.
788
+
789
+ 198
790
+ 00:17:50,000 --> 00:17:50,000
791
+ That's.
792
+
793
+ 199
794
+ 00:17:52,000 --> 00:17:59,000
795
+ For the sake of the example and with creation of two instances of the same field, then let's command
796
+
797
+ 200
798
+ 00:17:59,000 --> 00:18:05,000
799
+ that field to annotation, because for declaring the same field to envelop x amount that will intercepts
800
+
801
+ 201
802
+ 00:18:05,000 --> 00:18:07,000
803
+ the request to the same part.
804
+
805
+ 202
806
+ 00:18:09,000 --> 00:18:14,000
807
+ Considering the fact that we did change changes of the club in this group, that we need to restart
808
+
809
+ 203
810
+ 00:18:14,000 --> 00:18:21,000
811
+ the server and review of our application in order to make sure all changes were applied.
812
+
813
+ 204
814
+ 00:18:22,000 --> 00:18:28,000
815
+ And after we started the server, we have to cancel the value of of them.
816
+
817
+ 205
818
+ 00:18:29,000 --> 00:18:35,000
819
+ This proves that our field the mapping from WebEx and old works amazing.
820
+
821
+ 206
822
+ 00:18:35,000 --> 00:18:41,000
823
+ Now you know how to configure that filter with the help of that filter annotation.
824
+
825
+ 207
826
+ 00:18:41,000 --> 00:18:42,000
827
+ And we use web.
828
+
829
+ 208
830
+ 00:18:42,000 --> 00:18:43,000
831
+ Excellent file.
832
+
833
+ 209
834
+ 00:18:44,000 --> 00:18:47,000
835
+ That's all what I wanted to share with you in this lesson.
836
+
837
+ 210
838
+ 00:18:48,000 --> 00:18:51,000
839
+ Let's recap what we have learned today.
840
+
841
+ 211
842
+ 00:18:52,000 --> 00:18:55,000
843
+ In this lesson, we learned what that filters are.
844
+
845
+ 212
846
+ 00:18:56,000 --> 00:19:00,000
847
+ I explained why we use them and how we can use them.
848
+
849
+ 213
850
+ 00:19:01,000 --> 00:19:09,000
851
+ We learned to filter lifecycle using the lessons review the filter API including the filter filter config
852
+
853
+ 214
854
+ 00:19:10,000 --> 00:19:12,000
855
+ filter change interfaces.
856
+
857
+ 215
858
+ 00:19:12,000 --> 00:19:16,000
859
+ Real examples of how to configure filter.
860
+
861
+ 216
862
+ 00:19:16,000 --> 00:19:16,000
863
+ Yeah.
864
+
865
+ 217
866
+ 00:19:16,000 --> 00:19:18,000
867
+ That filter annotation.
868
+
869
+ 218
870
+ 00:19:18,000 --> 00:19:20,000
871
+ How do we have habits in on file?
872
+
873
+ 219
874
+ 00:19:21,000 --> 00:19:22,000
875
+ That's all for this lesson.
876
+
877
+ 220
878
+ 00:19:23,000 --> 00:19:25,000
879
+ Thanks a lot for your attention.
880
+
881
+ 221
882
+ 00:19:25,000 --> 00:19:28,000
883
+ Have a great day and see you in the next lesson.
884
+
62 - Web Filters/external-links.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ 001 Source-code-of-HelloWorldFilter
3
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/filters/HelloWorldFilter.java
4
+
5
+ 001 Source-of-web.xml-from-the-lesson
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
63 - Session & Cookies/001 Session & Cookies_en.srt ADDED
@@ -0,0 +1,1156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, team.
4
+
5
+ 2
6
+ 00:00:07,000 --> 00:00:12,000
7
+ In this lesson, they're going to announce the very important topic that you will use very often on
8
+
9
+ 3
10
+ 00:00:12,000 --> 00:00:12,000
11
+ practice.
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:20,000
15
+ So then we're going to learn what session and cookies are and how we can use them in code and in our
16
+
17
+ 5
18
+ 00:00:20,000 --> 00:00:21,000
19
+ application.
20
+
21
+ 6
22
+ 00:00:22,000 --> 00:00:26,000
23
+ We'll start from running Siri and understanding what a session is.
24
+
25
+ 7
26
+ 00:00:26,000 --> 00:00:30,000
27
+ We're going to review different sessions, reacting to cues.
28
+
29
+ 8
30
+ 00:00:30,000 --> 00:00:35,000
31
+ After that, we'll learn what cookies are and what different types of cookies exist.
32
+
33
+ 9
34
+ 00:00:36,000 --> 00:00:38,000
35
+ I will explain what a PR is.
36
+
37
+ 10
38
+ 00:00:39,000 --> 00:00:46,000
39
+ Also, during the lesson, we are going to have a lot of practical activities, just practical examples.
40
+
41
+ 11
42
+ 00:00:46,000 --> 00:00:53,000
43
+ We'll use a source code of a session interface, how to work with a session and practice, how to create
44
+
45
+ 12
46
+ 00:00:53,000 --> 00:00:54,000
47
+ it and invalidate.
48
+
49
+ 13
50
+ 00:00:55,000 --> 00:01:02,000
51
+ And at the end of the lesson they're going to run how to work with cookies, how to read them at new
52
+
53
+ 14
54
+ 00:01:02,000 --> 00:01:04,000
55
+ cookies as a response and remove them.
56
+
57
+ 15
58
+ 00:01:05,000 --> 00:01:06,000
59
+ Let's start our lesson.
60
+
61
+ 16
62
+ 00:01:07,000 --> 00:01:10,000
63
+ Let's start from learn what session is.
64
+
65
+ 17
66
+ 00:01:10,000 --> 00:01:17,000
67
+ Actually, if you watch the course attentively, you have to remember to answer this question because
68
+
69
+ 18
70
+ 00:01:17,000 --> 00:01:23,000
71
+ when we learned HTP protocol, I already explained to you what a session is.
72
+
73
+ 19
74
+ 00:01:23,000 --> 00:01:28,000
75
+ But just in case, let's recap the definition one more time.
76
+
77
+ 20
78
+ 00:01:29,000 --> 00:01:37,000
79
+ In terms of worldwide wrap, a session indicates a period of time that a single user visits a website.
80
+
81
+ 21
82
+ 00:01:38,000 --> 00:01:45,000
83
+ A session starts when the user requests for the first page, and during this session, the user can
84
+
85
+ 22
86
+ 00:01:45,000 --> 00:01:49,000
87
+ view as many pages as he wants the session.
88
+
89
+ 23
90
+ 00:01:49,000 --> 00:01:57,000
91
+ And if the user hasn't requested any pages for a given amount of time, this period of time is called
92
+
93
+ 24
94
+ 00:01:57,000 --> 00:01:59,000
95
+ time of the session.
96
+
97
+ 25
98
+ 00:01:59,000 --> 00:02:07,000
99
+ Time out varies depending on the server configuration, typically from 15 to 30 minutes.
100
+
101
+ 26
102
+ 00:02:08,000 --> 00:02:12,000
103
+ I believe you remember that protocol is stateless protocol.
104
+
105
+ 27
106
+ 00:02:12,000 --> 00:02:14,000
107
+ What does stateless mean?
108
+
109
+ 28
110
+ 00:02:15,000 --> 00:02:23,000
111
+ This means that each request doesn't know the history of all previous requests and each new request
112
+
113
+ 29
114
+ 00:02:23,000 --> 00:02:25,000
115
+ is not connected with the previous ones.
116
+
117
+ 30
118
+ 00:02:26,000 --> 00:02:33,000
119
+ Because of this, we need to have a mechanism that would ensure that we can identify client while it
120
+
121
+ 31
122
+ 00:02:33,000 --> 00:02:34,000
123
+ interacts with us.
124
+
125
+ 32
126
+ 00:02:34,000 --> 00:02:36,000
127
+ Was in one session.
128
+
129
+ 33
130
+ 00:02:36,000 --> 00:02:43,000
131
+ That's why we use session mechanism to identify a single user because the defense requests.
132
+
133
+ 34
134
+ 00:02:44,000 --> 00:02:44,000
135
+ Session.
136
+
137
+ 35
138
+ 00:02:44,000 --> 00:02:49,000
139
+ Tracking is a way to maintain state data of a user.
140
+
141
+ 36
142
+ 00:02:50,000 --> 00:02:57,000
143
+ It is also known as session management in Samat Zen G from techniques used in session tracking.
144
+
145
+ 37
146
+ 00:02:57,000 --> 00:03:05,000
147
+ Zia, who keeps hidden for few months you will write the session.
148
+
149
+ 38
150
+ 00:03:05,000 --> 00:03:14,000
151
+ Tracking using cookies is a primary mechanism in case the user's web browser does supports cookies.
152
+
153
+ 39
154
+ 00:03:14,000 --> 00:03:23,000
155
+ Then you are writing offline form fields can be used in web development program or use session mechanism
156
+
157
+ 40
158
+ 00:03:23,000 --> 00:03:32,000
159
+ to manage users information that focuses on the E particular session such as syndication, state, user
160
+
161
+ 41
162
+ 00:03:32,000 --> 00:03:34,000
163
+ name or any date.
164
+
165
+ 42
166
+ 00:03:34,000 --> 00:03:37,000
167
+ Does that need to be shared across for requests?
168
+
169
+ 43
170
+ 00:03:38,000 --> 00:03:44,000
171
+ So to sum it up, we need to use session tracking in order to recognize the user.
172
+
173
+ 44
174
+ 00:03:44,000 --> 00:03:50,000
175
+ Let's learn techniques of session tracking, and the first technique is cookie.
176
+
177
+ 45
178
+ 00:03:50,000 --> 00:03:58,000
179
+ A cookie is a small piece of information that is persisted between the multiple clients request, and
180
+
181
+ 46
182
+ 00:03:58,000 --> 00:04:06,000
183
+ cookie has a name, a single value and optional attributes such as command pass and the main qualifiers,
184
+
185
+ 47
186
+ 00:04:07,000 --> 00:04:10,000
187
+ a maximum age and a version number.
188
+
189
+ 48
190
+ 00:04:10,000 --> 00:04:17,000
191
+ With the help of cookies, we can pass application related information to the client side, including
192
+
193
+ 49
194
+ 00:04:17,000 --> 00:04:19,000
195
+ the unique identifier of the session.
196
+
197
+ 50
198
+ 00:04:20,000 --> 00:04:27,000
199
+ Taking into account that the cookies are passed with each request as a server, client also sends a
200
+
201
+ 51
202
+ 00:04:27,000 --> 00:04:28,000
203
+ unique session identifier.
204
+
205
+ 52
206
+ 00:04:28,000 --> 00:04:31,000
207
+ It is a server on the server side.
208
+
209
+ 53
210
+ 00:04:31,000 --> 00:04:41,000
211
+ We can map session D with existing session object and in case mapping is successful, we can easily
212
+
213
+ 54
214
+ 00:04:41,000 --> 00:04:47,000
215
+ identify group of the latest requests from the same client this week.
216
+
217
+ 55
218
+ 00:04:47,000 --> 00:04:53,000
219
+ Types of Computer Cookies, Zia Session Persistence and Search Party.
220
+
221
+ 56
222
+ 00:04:54,000 --> 00:05:02,000
223
+ These virtually invisible text files are all very different, each with their own mission.
224
+
225
+ 57
226
+ 00:05:03,000 --> 00:05:10,000
227
+ These cookies are made to track, collect and store annual data application requests.
228
+
229
+ 58
230
+ 00:05:11,000 --> 00:05:16,000
231
+ Session cookies are temporary cookies that memorize your online activities.
232
+
233
+ 59
234
+ 00:05:16,000 --> 00:05:25,000
235
+ Since websites have no sense of memory without these cookies, your side browsing history would always
236
+
237
+ 60
238
+ 00:05:25,000 --> 00:05:32,000
239
+ be that, in fact, with every click you would make, the website will treat you as a completely new
240
+
241
+ 61
242
+ 00:05:32,000 --> 00:05:33,000
243
+ visitor.
244
+
245
+ 62
246
+ 00:05:34,000 --> 00:05:41,000
247
+ A good example of how session cookies are helpful is online shopping when shopping online.
248
+
249
+ 63
250
+ 00:05:41,000 --> 00:05:44,000
251
+ You can check out at any time.
252
+
253
+ 64
254
+ 00:05:44,000 --> 00:05:47,000
255
+ That's because session cookies track your movement.
256
+
257
+ 65
258
+ 00:05:48,000 --> 00:05:54,000
259
+ Without these cookies, whenever you would go to check out your cart would be empty.
260
+
261
+ 66
262
+ 00:05:55,000 --> 00:06:02,000
263
+ Ultimately, session cookies help you maneuvers through the Internet by remembering your actions as
264
+
265
+ 67
266
+ 00:06:02,000 --> 00:06:02,000
267
+ a store.
268
+
269
+ 68
270
+ 00:06:03,000 --> 00:06:06,000
271
+ As soon as you close out of a browser.
272
+
273
+ 69
274
+ 00:06:07,000 --> 00:06:16,000
275
+ Persistent cookies, also known as first party cookies, work by tracking your online preferences when
276
+
277
+ 70
278
+ 00:06:16,000 --> 00:06:18,000
279
+ you visit the website for the first time.
280
+
281
+ 71
282
+ 00:06:18,000 --> 00:06:27,000
283
+ It is at its default setting, but if you personalize the site to fit your preferences, persistent
284
+
285
+ 72
286
+ 00:06:27,000 --> 00:06:32,000
287
+ focus will remember and implement those preferences the next time you visit the site.
288
+
289
+ 73
290
+ 00:06:33,000 --> 00:06:41,000
291
+ This is how computers remember and store your logging information, language selections, menu preferences,
292
+
293
+ 74
294
+ 00:06:41,000 --> 00:06:50,000
295
+ internal bookmarks and more persistent permanent and store ads, cookies and charms used interchangeably
296
+
297
+ 75
298
+ 00:06:51,000 --> 00:06:56,000
299
+ as these cookies are stored in your heart, used for typically a long period of time.
300
+
301
+ 76
302
+ 00:06:56,000 --> 00:07:04,000
303
+ The cookies timeline will vary depending on the expiration date, but once that date is reached yet,
304
+
305
+ 77
306
+ 00:07:04,000 --> 00:07:09,000
307
+ you will be deleted along with everything you customize.
308
+
309
+ 78
310
+ 00:07:10,000 --> 00:07:17,000
311
+ Luckily, websites prefer to employ a long lifespan so that users can make the most of their personal
312
+
313
+ 79
314
+ 00:07:17,000 --> 00:07:18,000
315
+ preferences.
316
+
317
+ 80
318
+ 00:07:19,000 --> 00:07:23,000
319
+ Third party cookies also referred to as tracking cookies.
320
+
321
+ 81
322
+ 00:07:23,000 --> 00:07:29,000
323
+ Collect data based on your online behavior when you visit the website.
324
+
325
+ 82
326
+ 00:07:29,000 --> 00:07:38,000
327
+ Third party cookies collect various types of data that are passed on or sold to advertisers by the website
328
+
329
+ 83
330
+ 00:07:38,000 --> 00:07:40,000
331
+ that created the cookie.
332
+
333
+ 84
334
+ 00:07:40,000 --> 00:07:42,000
335
+ Tracking your interests.
336
+
337
+ 85
338
+ 00:07:42,000 --> 00:07:43,000
339
+ The Location.
340
+
341
+ 86
342
+ 00:07:43,000 --> 00:07:45,000
343
+ Age and search trends.
344
+
345
+ 87
346
+ 00:07:46,000 --> 00:07:52,000
347
+ These cookies collect information so that marketers can provide you with custom advertisements.
348
+
349
+ 88
350
+ 00:07:52,000 --> 00:07:59,000
351
+ These are the ads that appear on the website to visit and display contents relevant to your interests
352
+
353
+ 89
354
+ 00:08:00,000 --> 00:08:03,000
355
+ by tracking your habits and providing targeted ads.
356
+
357
+ 90
358
+ 00:08:04,000 --> 00:08:11,000
359
+ Third party cookies serve as a useful purpose for marketers, but can seem pesky and intrusive to Internet
360
+
361
+ 91
362
+ 00:08:11,000 --> 00:08:12,000
363
+ users.
364
+
365
+ 92
366
+ 00:08:12,000 --> 00:08:15,000
367
+ That's why you have the option to block them.
368
+
369
+ 93
370
+ 00:08:16,000 --> 00:08:21,000
371
+ Because of all this, cookies become part of suite legal regulations.
372
+
373
+ 94
374
+ 00:08:22,000 --> 00:08:30,000
375
+ Some of the most popular legal regulations that most likely heard about these are GBR stands for the
376
+
377
+ 95
378
+ 00:08:30,000 --> 00:08:37,000
379
+ General Data Protection Regulation, is in the European Union legislation that governs all collection
380
+
381
+ 96
382
+ 00:08:37,000 --> 00:08:42,000
383
+ and processing of personal data from individuals inside the European Union.
384
+
385
+ 97
386
+ 00:08:43,000 --> 00:08:51,000
387
+ On my project, I faced with some overhead in order to make our web applications compliant with our
388
+
389
+ 98
390
+ 00:08:51,000 --> 00:08:56,000
391
+ requirements because fines for GDPR violations are huge.
392
+
393
+ 99
394
+ 00:08:57,000 --> 00:09:06,000
395
+ Roughly 40% of Internet users blog said party cookies and under 5% of Internet users block first party
396
+
397
+ 100
398
+ 00:09:06,000 --> 00:09:07,000
399
+ cookies.
400
+
401
+ 101
402
+ 00:09:08,000 --> 00:09:15,000
403
+ Whether you decide to manage your cookies individually by type as a whole or not at all, your browser
404
+
405
+ 102
406
+ 00:09:15,000 --> 00:09:17,000
407
+ settings will always be available.
408
+
409
+ 103
410
+ 00:09:17,000 --> 00:09:19,000
411
+ If you change your mind.
412
+
413
+ 104
414
+ 00:09:20,000 --> 00:09:26,000
415
+ In Java, we have opportunity to programmatically create session or permanent cookies.
416
+
417
+ 105
418
+ 00:09:26,000 --> 00:09:34,000
419
+ We can set explicit age for a cookie and in case there is no explicit age, meaning that they should
420
+
421
+ 106
422
+ 00:09:34,000 --> 00:09:39,000
423
+ apply only in the current browsing session until the user starts the browser.
424
+
425
+ 107
426
+ 00:09:39,000 --> 00:09:46,000
427
+ In other cookies we can call message said Mark's age to stipulate that the browser should write them
428
+
429
+ 108
430
+ 00:09:46,000 --> 00:09:55,000
431
+ to this and that they should persist for that amount of time was set in set max each message, regardless
432
+
433
+ 109
434
+ 00:09:55,000 --> 00:10:02,000
435
+ of whether the user studies the browser or abuse the computer to initiate a new browsing session.
436
+
437
+ 110
438
+ 00:10:03,000 --> 00:10:06,000
439
+ Don't worry about the details so far then go on.
440
+
441
+ 111
442
+ 00:10:06,000 --> 00:10:09,000
443
+ To see all this and real examples is a lesson.
444
+
445
+ 112
446
+ 00:10:10,000 --> 00:10:14,000
447
+ Very different advantages and disadvantages of this mechanism.
448
+
449
+ 113
450
+ 00:10:15,000 --> 00:10:18,000
451
+ Let me just highlight the most important ones.
452
+
453
+ 114
454
+ 00:10:18,000 --> 00:10:25,000
455
+ In my opinion, advantage of countries are simplistic of maintaining the state.
456
+
457
+ 115
458
+ 00:10:26,000 --> 00:10:28,000
459
+ You will be able to compare is by itself.
460
+
461
+ 116
462
+ 00:10:29,000 --> 00:10:36,000
463
+ But this advantage is probably is the reason why cookies mechanism became so popular.
464
+
465
+ 117
466
+ 00:10:37,000 --> 00:10:41,000
467
+ Cookies are maintained at clients side from one side.
468
+
469
+ 118
470
+ 00:10:42,000 --> 00:10:50,000
471
+ This is an advantage because this allows to store some information on one side to work efficiently with
472
+
473
+ 119
474
+ 00:10:50,000 --> 00:10:56,000
475
+ the presentation of the information and ensure smooth communication of client and seven.
476
+
477
+ 120
478
+ 00:10:57,000 --> 00:11:00,000
479
+ But it's also have some disadvantages.
480
+
481
+ 121
482
+ 00:11:01,000 --> 00:11:07,000
483
+ Disadvantages of which is it will not work if Cookie is disabled from the browser.
484
+
485
+ 122
486
+ 00:11:08,000 --> 00:11:08,000
487
+ This is true.
488
+
489
+ 123
490
+ 00:11:09,000 --> 00:11:18,000
491
+ Client can disable cookies on the textual information can be said in cookie object in comparison with
492
+
493
+ 124
494
+ 00:11:18,000 --> 00:11:20,000
495
+ the session and server.
496
+
497
+ 125
498
+ 00:11:20,000 --> 00:11:25,000
499
+ You can put only textual information and cookies on the server.
500
+
501
+ 126
502
+ 00:11:25,000 --> 00:11:30,000
503
+ We can store any object inside our session security.
504
+
505
+ 127
506
+ 00:11:31,000 --> 00:11:37,000
507
+ It is obvious that it is not secure to put sensitive information in cookies and store it on the client
508
+
509
+ 128
510
+ 00:11:37,000 --> 00:11:38,000
511
+ side.
512
+
513
+ 129
514
+ 00:11:38,000 --> 00:11:45,000
515
+ That's why it is critically important to store all sensitive information on the server in session object.
516
+
517
+ 130
518
+ 00:11:46,000 --> 00:11:47,000
519
+ Okay.
520
+
521
+ 131
522
+ 00:11:47,000 --> 00:11:54,000
523
+ So I'm designed to store the amount of information considering the fact that cookies travel with each
524
+
525
+ 132
526
+ 00:11:54,000 --> 00:11:55,000
527
+ request to the server.
528
+
529
+ 133
530
+ 00:11:55,000 --> 00:12:04,000
531
+ It is not a good idea to store heavily on the client side and cookies, so you don't need to store information
532
+
533
+ 134
534
+ 00:12:04,000 --> 00:12:07,000
535
+ about all products in the text presentation.
536
+
537
+ 135
538
+ 00:12:07,000 --> 00:12:08,000
539
+ Presentation a client side.
540
+
541
+ 136
542
+ 00:12:09,000 --> 00:12:13,000
543
+ There is no sense in it and it will increase traffic.
544
+
545
+ 137
546
+ 00:12:14,000 --> 00:12:15,000
547
+ Zazi triggering cookies.
548
+
549
+ 138
550
+ 00:12:16,000 --> 00:12:21,000
551
+ Later in this lesson, we are going to have a live demo with school kids to see how they were.
552
+
553
+ 139
554
+ 00:12:22,000 --> 00:12:27,000
555
+ Regarding other session tracking techniques like hidden form, for example.
556
+
557
+ 140
558
+ 00:12:27,000 --> 00:12:34,000
559
+ I will not dive deep in details here because we're going to have a separate lesson dedicated the optimal
560
+
561
+ 141
562
+ 00:12:34,000 --> 00:12:39,000
563
+ forms and hidden input parameters and we'll review it in details.
564
+
565
+ 142
566
+ 00:12:39,000 --> 00:12:47,000
567
+ In that lesson, I can just explain this technique insurance in case of hidden form field, a hidden
568
+
569
+ 143
570
+ 00:12:47,000 --> 00:12:55,000
571
+ invisible text field is used for maintaining the state of the user in such case was still information
572
+
573
+ 144
574
+ 00:12:55,000 --> 00:13:03,000
575
+ is a hidden field and gathered from another so that this approach is better if we have to submit form
576
+
577
+ 145
578
+ 00:13:03,000 --> 00:13:07,000
579
+ in all the pages and we don't want to expand on the browser.
580
+
581
+ 146
582
+ 00:13:08,000 --> 00:13:13,000
583
+ As I said, we're going to learn more about a team of Forbes in a separate lesson.
584
+
585
+ 147
586
+ 00:13:14,000 --> 00:13:22,000
587
+ And the subject, Nick, of session tracking is you were writing in your rover, writing with a panda
588
+
589
+ 148
590
+ 00:13:22,000 --> 00:13:24,000
591
+ talking or a session identifier.
592
+
593
+ 149
594
+ 00:13:25,000 --> 00:13:26,000
595
+ A you are out of the nest.
596
+
597
+ 150
598
+ 00:13:26,000 --> 00:13:29,000
599
+ So that wasn't next to source.
600
+
601
+ 151
602
+ 00:13:30,000 --> 00:13:34,000
603
+ You already saw in previous lessons that we can send parameters where you.
604
+
605
+ 152
606
+ 00:13:35,000 --> 00:13:42,000
607
+ This is also an option but as a set mechanism is the most popular session tracking technique.
608
+
609
+ 153
610
+ 00:13:44,000 --> 00:13:48,000
611
+ We have enough cereal already to proceed with our practical examples.
612
+
613
+ 154
614
+ 00:13:49,000 --> 00:13:51,000
615
+ So let me start screen sharing.
616
+
617
+ 155
618
+ 00:13:52,000 --> 00:13:57,000
619
+ Let's explore the source code of session interface first.
620
+
621
+ 156
622
+ 00:13:58,000 --> 00:14:01,000
623
+ This interface declares contract for the following masses.
624
+
625
+ 157
626
+ 00:14:02,000 --> 00:14:03,000
627
+ Get creation.
628
+
629
+ 158
630
+ 00:14:03,000 --> 00:14:07,000
631
+ Time is the time when the session was created.
632
+
633
+ 159
634
+ 00:14:07,000 --> 00:14:13,000
635
+ Is returned by this massive is measured in milliseconds since Unix epoch.
636
+
637
+ 160
638
+ 00:14:14,000 --> 00:14:17,000
639
+ Getting the zoo in session.
640
+
641
+ 161
642
+ 00:14:17,000 --> 00:14:19,000
643
+ A user can't buy this message.
644
+
645
+ 162
646
+ 00:14:19,000 --> 00:14:20,000
647
+ This is a use.
648
+
649
+ 163
650
+ 00:14:20,000 --> 00:14:28,000
651
+ It will be used for mapping between and post cookies and actual session objects stored on the server.
652
+
653
+ 164
654
+ 00:14:29,000 --> 00:14:29,000
655
+ Yet.
656
+
657
+ 165
658
+ 00:14:29,000 --> 00:14:37,000
659
+ Last access time is a time when this session was last accessed is returned by this method.
660
+
661
+ 166
662
+ 00:14:37,000 --> 00:14:41,000
663
+ It is measured in milliseconds since Unix equal.
664
+
665
+ 167
666
+ 00:14:42,000 --> 00:14:50,000
667
+ Seth Mark's inactive interval specifies the time in seconds between clients requests before the content
668
+
669
+ 168
670
+ 00:14:50,000 --> 00:14:58,000
671
+ that will invalidate the session and interval value of zero or less indicates that the session should
672
+
673
+ 169
674
+ 00:14:58,000 --> 00:14:59,000
675
+ never time.
676
+
677
+ 170
678
+ 00:15:00,000 --> 00:15:06,000
679
+ Yet inactive interval mass returns the value of such interval.
680
+
681
+ 171
682
+ 00:15:07,000 --> 00:15:13,000
683
+ Also, we can use session as a container where we can store objects related to the current session.
684
+
685
+ 172
686
+ 00:15:14,000 --> 00:15:17,000
687
+ For this we have set attribute and get to the masses.
688
+
689
+ 173
690
+ 00:15:18,000 --> 00:15:22,000
691
+ We have to remove attribute massive attribute from session.
692
+
693
+ 174
694
+ 00:15:23,000 --> 00:15:25,000
695
+ Everything is straightforward here.
696
+
697
+ 175
698
+ 00:15:26,000 --> 00:15:31,000
699
+ Invalidate massive is used to invalidate the session is a massive invalidate.
700
+
701
+ 176
702
+ 00:15:31,000 --> 00:15:35,000
703
+ This session doesn't advance any object bound it.
704
+
705
+ 177
706
+ 00:15:36,000 --> 00:15:38,000
707
+ That's now open.
708
+
709
+ 178
710
+ 00:15:38,000 --> 00:15:41,000
711
+ So that is an appropriate specialty for this lesson.
712
+
713
+ 179
714
+ 00:15:41,000 --> 00:15:43,000
715
+ How we came up with Session Object.
716
+
717
+ 180
718
+ 00:15:44,000 --> 00:15:48,000
719
+ The first lines that you see in this example is get session message.
720
+
721
+ 181
722
+ 00:15:49,000 --> 00:15:54,000
723
+ This message operates session object and returns us is the reference date.
724
+
725
+ 182
726
+ 00:15:55,000 --> 00:16:04,000
727
+ I want also to add that this message is overlord and there is a version was boolean argument true argument
728
+
729
+ 183
730
+ 00:16:04,000 --> 00:16:11,000
731
+ will tell create a new session in case there is no session or returns a current session.
732
+
733
+ 184
734
+ 00:16:12,000 --> 00:16:20,000
735
+ Force will tell the return the current session or return now in case there is no active session.
736
+
737
+ 185
738
+ 00:16:21,000 --> 00:16:24,000
739
+ In other words, the not great session.
740
+
741
+ 186
742
+ 00:16:24,000 --> 00:16:26,000
743
+ If it is not great.
744
+
745
+ 187
746
+ 00:16:27,000 --> 00:16:33,000
747
+ After we have the reference to the session object, let's store some activity a session object.
748
+
749
+ 188
750
+ 00:16:33,000 --> 00:16:40,000
751
+ I will set string attribute was name session attribute and value session attribute.
752
+
753
+ 189
754
+ 00:16:40,000 --> 00:16:43,000
755
+ After that is a new line blueprint that we set.
756
+
757
+ 190
758
+ 00:16:43,000 --> 00:16:44,000
759
+ Session.
760
+
761
+ 191
762
+ 00:16:44,000 --> 00:16:46,000
763
+ Actually, that's it.
764
+
765
+ 192
766
+ 00:16:47,000 --> 00:16:48,000
767
+ These are HTP sessions.
768
+
769
+ 193
770
+ 00:16:48,000 --> 00:16:55,000
771
+ Select the example with a session and between session attribute is a response.
772
+
773
+ 194
774
+ 00:16:56,000 --> 00:17:02,000
775
+ Also let's bring session a these and you want how we explain why we need this.
776
+
777
+ 195
778
+ 00:17:02,000 --> 00:17:10,000
779
+ This will prove that requests made to different resources from one client use the same session, and
780
+
781
+ 196
782
+ 00:17:10,000 --> 00:17:17,000
783
+ I will show you that one will close the second example from another client, from another browser.
784
+
785
+ 197
786
+ 00:17:17,000 --> 00:17:23,000
787
+ The value will be no because there will not be a session with the current actually.
788
+
789
+ 198
790
+ 00:17:24,000 --> 00:17:29,000
791
+ And one more demos to add that I prepared for this example is to invalidate the session.
792
+
793
+ 199
794
+ 00:17:30,000 --> 00:17:34,000
795
+ It is called Session Invalidate, so that lets me open.
796
+
797
+ 200
798
+ 00:17:35,000 --> 00:17:41,000
799
+ Everything is simple here and gives a reference to the session object and call invalidate message.
800
+
801
+ 201
802
+ 00:17:42,000 --> 00:17:48,000
803
+ After this session, object is invalidated and all related objects are lost.
804
+
805
+ 202
806
+ 00:17:49,000 --> 00:17:51,000
807
+ We prepared everything we need for this demo.
808
+
809
+ 203
810
+ 00:17:52,000 --> 00:17:53,000
811
+ Let's test this.
812
+
813
+ 204
814
+ 00:17:54,000 --> 00:17:56,000
815
+ I run application on the seven.
816
+
817
+ 205
818
+ 00:17:57,000 --> 00:18:00,000
819
+ Let's wait a few seconds until the service starts.
820
+
821
+ 206
822
+ 00:18:04,000 --> 00:18:07,000
823
+ Let's reach this and let them get to first.
824
+
825
+ 207
826
+ 00:18:08,000 --> 00:18:16,000
827
+ As you can see, the value is no because session object is not created and we didn't see it actually
828
+
829
+ 208
830
+ 00:18:16,000 --> 00:18:16,000
831
+ in session.
832
+
833
+ 209
834
+ 00:18:17,000 --> 00:18:22,000
835
+ Now, that's why each session demo resource session is created.
836
+
837
+ 210
838
+ 00:18:23,000 --> 00:18:32,000
839
+ And now let's get back to the session demo two and you can see the attribute grade we set out to boot
840
+
841
+ 211
842
+ 00:18:32,000 --> 00:18:33,000
843
+ in this session.
844
+
845
+ 212
846
+ 00:18:34,000 --> 00:18:42,000
847
+ But let's open the same resource now in another browser I open Google Chrome and I open session demo
848
+
849
+ 213
850
+ 00:18:42,000 --> 00:18:52,000
851
+ two and again I can see now here that is because this request is done from another client and there
852
+
853
+ 214
854
+ 00:18:52,000 --> 00:18:56,000
855
+ is no session associated with this client yet.
856
+
857
+ 215
858
+ 00:18:57,000 --> 00:19:06,000
859
+ Now I call session demo and after that session demo two and we can see actually sat again for this client
860
+
861
+ 216
862
+ 00:19:06,000 --> 00:19:07,000
863
+ session.
864
+
865
+ 217
866
+ 00:19:07,000 --> 00:19:15,000
867
+ Now click F12 key on the keyboard will make mouse radically and select inspect element.
868
+
869
+ 218
870
+ 00:19:16,000 --> 00:19:18,000
871
+ These are chrome development tools.
872
+
873
+ 219
874
+ 00:19:19,000 --> 00:19:26,000
875
+ Select application here, find cookies and inspect what is there.
876
+
877
+ 220
878
+ 00:19:26,000 --> 00:19:34,000
879
+ You can see this session and with the values that we also printed on this page, this is exactly session
880
+
881
+ 221
882
+ 00:19:34,000 --> 00:19:38,000
883
+ identifiers that they talked about with each request.
884
+
885
+ 222
886
+ 00:19:39,000 --> 00:19:48,000
887
+ This session is sent to the server and server identifies that this idea is associated with already created
888
+
889
+ 223
890
+ 00:19:48,000 --> 00:19:49,000
891
+ session object.
892
+
893
+ 224
894
+ 00:19:50,000 --> 00:19:53,000
895
+ And thanks a lot Tomcat for this great help.
896
+
897
+ 225
898
+ 00:19:53,000 --> 00:20:00,000
899
+ Let's invalidate the session now for this we need to pursue that this contains code to invalidate the
900
+
901
+ 226
902
+ 00:20:00,000 --> 00:20:01,000
903
+ session.
904
+
905
+ 227
906
+ 00:20:02,000 --> 00:20:11,000
907
+ I change you to session invalidate now session is invalidated and that action that when I will get back
908
+
909
+ 228
910
+ 00:20:11,000 --> 00:20:15,000
911
+ to the session demo example this session they will become deferred.
912
+
913
+ 229
914
+ 00:20:16,000 --> 00:20:21,000
915
+ I navigate to the session them and we can see the session identifier has been changed.
916
+
917
+ 230
918
+ 00:20:22,000 --> 00:20:26,000
919
+ Can you understand now how cookies and session mechanism is connected?
920
+
921
+ 231
922
+ 00:20:27,000 --> 00:20:32,000
923
+ Even in case you still have any questions, you are more than welcome to ask questions.
924
+
925
+ 232
926
+ 00:20:32,000 --> 00:20:33,000
927
+ Me the video.
928
+
929
+ 233
930
+ 00:20:34,000 --> 00:20:41,000
931
+ I will be happy to answer one setting related to this session timeout can be placed in the that XML
932
+
933
+ 234
934
+ 00:20:41,000 --> 00:20:48,000
935
+ file I open WebEx window and here in the bottom you can see an example.
936
+
937
+ 235
938
+ 00:20:49,000 --> 00:20:51,000
939
+ The element is called session config.
940
+
941
+ 236
942
+ 00:20:52,000 --> 00:20:55,000
943
+ It contains session, time out element and minutes.
944
+
945
+ 237
946
+ 00:20:56,000 --> 00:21:01,000
947
+ Here I said this session time out in my application will be 15 minutes.
948
+
949
+ 238
950
+ 00:21:02,000 --> 00:21:09,000
951
+ If you have ever used 19 applications that asks, you log in after being inactive for 5 minutes.
952
+
953
+ 239
954
+ 00:21:10,000 --> 00:21:16,000
955
+ This is exactly the place where developers of banking application come all this session.
956
+
957
+ 240
958
+ 00:21:16,000 --> 00:21:17,000
959
+ Time out.
960
+
961
+ 241
962
+ 00:21:18,000 --> 00:21:22,000
963
+ And the last, but not least example for today is Cookie's example.
964
+
965
+ 242
966
+ 00:21:23,000 --> 00:21:29,000
967
+ I opened the source code of cookies so that let me walk you through the example line by line.
968
+
969
+ 243
970
+ 00:21:30,000 --> 00:21:37,000
971
+ First of all, you have to remember that cookies are passed to the server with each request.
972
+
973
+ 244
974
+ 00:21:38,000 --> 00:21:41,000
975
+ That means that we can get cookies from the request object.
976
+
977
+ 245
978
+ 00:21:42,000 --> 00:21:46,000
979
+ I call get cookies method on the request object.
980
+
981
+ 246
982
+ 00:21:46,000 --> 00:21:50,000
983
+ It returns us array of objects of type cookie.
984
+
985
+ 247
986
+ 00:21:51,000 --> 00:21:55,000
987
+ I recommend you to explore the source code of this class.
988
+
989
+ 248
990
+ 00:21:55,000 --> 00:22:02,000
991
+ I will not do this during the lesson because I'm going to make an overview of main masses during this
992
+
993
+ 249
994
+ 00:22:02,000 --> 00:22:03,000
995
+ example.
996
+
997
+ 250
998
+ 00:22:04,000 --> 00:22:09,000
999
+ She's an example of any response on the response object.
1000
+
1001
+ 251
1002
+ 00:22:09,000 --> 00:22:19,000
1003
+ I call that a massive and positive instance of who could talk to the constructor of object, name and
1004
+
1005
+ 252
1006
+ 00:22:19,000 --> 00:22:26,000
1007
+ value because it is always a pair of a key and values.
1008
+
1009
+ 253
1010
+ 00:22:26,000 --> 00:22:34,000
1011
+ It is associated with this key and tensions at both key and value can be only of type string.
1012
+
1013
+ 254
1014
+ 00:22:34,000 --> 00:22:37,000
1015
+ This is a rules that you can write.
1016
+
1017
+ 255
1018
+ 00:22:38,000 --> 00:22:46,000
1019
+ After that, I create some email code to the console output in order to make our page look nice.
1020
+
1021
+ 256
1022
+ 00:22:47,000 --> 00:22:49,000
1023
+ Let's pay attention to this.
1024
+
1025
+ 257
1026
+ 00:22:49,000 --> 00:22:49,000
1027
+ Look.
1028
+
1029
+ 258
1030
+ 00:22:50,000 --> 00:22:54,000
1031
+ I eat right over each cookie in a raise that we got from that request.
1032
+
1033
+ 259
1034
+ 00:22:55,000 --> 00:23:03,000
1035
+ In case you wanted to leave Cookie on the client side, you have to set Mark's age of 8 to 0, added
1036
+
1037
+ 260
1038
+ 00:23:03,000 --> 00:23:06,000
1039
+ as a response and send it back as a client.
1040
+
1041
+ 261
1042
+ 00:23:07,000 --> 00:23:13,000
1043
+ Once Cookie will be delivered to the client, it will disappear and will never come back within your
1044
+
1045
+ 262
1046
+ 00:23:13,000 --> 00:23:14,000
1047
+ request.
1048
+
1049
+ 263
1050
+ 00:23:14,000 --> 00:23:15,000
1051
+ Is it clear?
1052
+
1053
+ 264
1054
+ 00:23:16,000 --> 00:23:21,000
1055
+ In case you pass in negative value in Seth Marx h massive.
1056
+
1057
+ 265
1058
+ 00:23:21,000 --> 00:23:27,000
1059
+ That would mean that who is not saw it persistently and will be deleted.
1060
+
1061
+ 266
1062
+ 00:23:27,000 --> 00:23:28,000
1063
+ One web browser exits.
1064
+
1065
+ 267
1066
+ 00:23:29,000 --> 00:23:36,000
1067
+ And the positive value in the case of the cookie will expire after many seconds have passed.
1068
+
1069
+ 268
1070
+ 00:23:37,000 --> 00:23:44,000
1071
+ No, the value is a maximum age when the cookie will expire, not the cookies parents age.
1072
+
1073
+ 269
1074
+ 00:23:46,000 --> 00:23:50,000
1075
+ And in this demo I played to console who can name and value.
1076
+
1077
+ 270
1078
+ 00:23:50,000 --> 00:23:55,000
1079
+ Let's navigate to the browser and token cookies demo euro.
1080
+
1081
+ 271
1082
+ 00:23:56,000 --> 00:24:01,000
1083
+ So when I refresh the browser, I see the cookies that we added.
1084
+
1085
+ 272
1086
+ 00:24:02,000 --> 00:24:02,000
1087
+ Is it clear?
1088
+
1089
+ 273
1090
+ 00:24:03,000 --> 00:24:12,000
1091
+ Basically that's how cookies mechanism of very often cookie mechanism is also used for affiliate marketing
1092
+
1093
+ 274
1094
+ 00:24:13,000 --> 00:24:20,000
1095
+ will keep developing our online store and you are going to have very interesting homework to practice
1096
+
1097
+ 275
1098
+ 00:24:20,000 --> 00:24:21,000
1099
+ your skills in cookies.
1100
+
1101
+ 276
1102
+ 00:24:22,000 --> 00:24:23,000
1103
+ Stay tuned.
1104
+
1105
+ 277
1106
+ 00:24:24,000 --> 00:24:25,000
1107
+ That's all for today's lesson.
1108
+
1109
+ 278
1110
+ 00:24:26,000 --> 00:24:29,000
1111
+ Let's recap what we have learned today.
1112
+
1113
+ 279
1114
+ 00:24:30,000 --> 00:24:37,000
1115
+ This lesson began with a session s then different session tracking techniques.
1116
+
1117
+ 280
1118
+ 00:24:37,000 --> 00:24:41,000
1119
+ Zia cookies hidden, fulfilled.
1120
+
1121
+ 281
1122
+ 00:24:41,000 --> 00:24:43,000
1123
+ And you are really right.
1124
+
1125
+ 282
1126
+ 00:24:44,000 --> 00:24:48,000
1127
+ We learned what cookies are and different types of cookies.
1128
+
1129
+ 283
1130
+ 00:24:49,000 --> 00:24:52,000
1131
+ After that, we had a lot of different examples.
1132
+
1133
+ 284
1134
+ 00:24:53,000 --> 00:24:59,000
1135
+ By the way, as usual, you can find all examples from the lesson in attachments to the video.
1136
+
1137
+ 285
1138
+ 00:25:00,000 --> 00:25:08,000
1139
+ We reviewed the source code of HTP session interface and source code of related examples, and at the
1140
+
1141
+ 286
1142
+ 00:25:08,000 --> 00:25:13,000
1143
+ end of the lesson we learned how to work with cookies is a practical example.
1144
+
1145
+ 287
1146
+ 00:25:13,000 --> 00:25:20,000
1147
+ We saw how do we add and remove cookies that solve for this lesson?
1148
+
1149
+ 288
1150
+ 00:25:20,000 --> 00:25:22,000
1151
+ Thanks a lot for your attention.
1152
+
1153
+ 289
1154
+ 00:25:22,000 --> 00:25:26,000
1155
+ Have a great day and see the next lesson.
1156
+
63 - Session & Cookies/001 Source-code-of-package-with-all-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets
63 - Session & Cookies/001 Source-of-web.xml-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
63 - Session & Cookies/external-links.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ 001 Source-code-of-package-with-all-examples-from-the-lesson
3
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets
4
+
5
+ 001 Source-of-web.xml-from-the-lesson
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
64 - Events Handling in Web Application/001 Events Handling in Java Web Application_en.srt ADDED
@@ -0,0 +1,1188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello again.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:13,000
7
+ In this lesson, we're going to learn how to handle different events and errors in our application.
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:19,000
11
+ We're going to start our lesson from the problem statement and understanding why we need to track and
12
+
13
+ 4
14
+ 00:00:19,000 --> 00:00:23,000
15
+ react on the events inside our main application.
16
+
17
+ 5
18
+ 00:00:24,000 --> 00:00:32,000
19
+ I'll show you what kind of events we can intercept, and I will explain you how events can be intercepted
20
+
21
+ 6
22
+ 00:00:33,000 --> 00:00:34,000
23
+ in this lesson.
24
+
25
+ 7
26
+ 00:00:34,000 --> 00:00:36,000
27
+ Well, now, new concept.
28
+
29
+ 8
30
+ 00:00:36,000 --> 00:00:38,000
31
+ Is that a scope listener?
32
+
33
+ 9
34
+ 00:00:38,000 --> 00:00:45,000
35
+ You're going to understand what the listener objects are and how to register them in the application
36
+
37
+ 10
38
+ 00:00:45,000 --> 00:00:49,000
39
+ will review real life examples in order.
40
+
41
+ 11
42
+ 00:00:49,000 --> 00:00:55,000
43
+ You could understand how to apply knowledge and practice and the essence of the lesson will learn how
44
+
45
+ 12
46
+ 00:00:55,000 --> 00:00:57,000
47
+ to handle errors in the MAP application.
48
+
49
+ 13
50
+ 00:00:58,000 --> 00:01:00,000
51
+ Let's start our lesson here.
52
+
53
+ 14
54
+ 00:01:00,000 --> 00:01:07,000
55
+ In the lifecycle of however different events happen, the global context is created and destroyed.
56
+
57
+ 15
58
+ 00:01:08,000 --> 00:01:12,000
59
+ Attributes are added, removed or replaced inside.
60
+
61
+ 16
62
+ 00:01:13,000 --> 00:01:16,000
63
+ Different sessions are created and destroyed.
64
+
65
+ 17
66
+ 00:01:16,000 --> 00:01:17,000
67
+ As you already know.
68
+
69
+ 18
70
+ 00:01:17,000 --> 00:01:23,000
71
+ Actually, this also can be added or removed or replaced and sessions the same story was requested.
72
+
73
+ 19
74
+ 00:01:24,000 --> 00:01:29,000
75
+ But why we should care about all this things happening in our application?
76
+
77
+ 20
78
+ 00:01:29,000 --> 00:01:32,000
79
+ That's what usually in my students ask me.
80
+
81
+ 21
82
+ 00:01:32,000 --> 00:01:39,000
83
+ The things that are all concerned about is just to make sure that application works per requirements
84
+
85
+ 22
86
+ 00:01:39,000 --> 00:01:42,000
87
+ and that we can reach our business goals.
88
+
89
+ 23
90
+ 00:01:42,000 --> 00:01:49,000
91
+ But we should never forget that our business solution is the technology that we need to monitor and
92
+
93
+ 24
94
+ 00:01:49,000 --> 00:01:50,000
95
+ support.
96
+
97
+ 25
98
+ 00:01:50,000 --> 00:01:57,000
99
+ We want to track all these different events happening in our application because of different reasons.
100
+
101
+ 26
102
+ 00:01:58,000 --> 00:02:05,000
103
+ Some of them are monitoring on the application execution in case we want to control the flow of our
104
+
105
+ 27
106
+ 00:02:05,000 --> 00:02:13,000
107
+ application execution, be able to do our program in case of emergency to detect some issues or just
108
+
109
+ 28
110
+ 00:02:13,000 --> 00:02:14,000
111
+ log the program.
112
+
113
+ 29
114
+ 00:02:14,000 --> 00:02:17,000
115
+ Progress Managed Database Connections.
116
+
117
+ 30
118
+ 00:02:17,000 --> 00:02:24,000
119
+ When a web application is deployed or shuts down, monitor a state of issues to be sessions and the
120
+
121
+ 31
122
+ 00:02:24,000 --> 00:02:24,000
123
+ attributes.
124
+
125
+ 32
126
+ 00:02:25,000 --> 00:02:29,000
127
+ Monitor this state of requests and their attributes.
128
+
129
+ 33
130
+ 00:02:30,000 --> 00:02:35,000
131
+ These are just some of the reasons why we might want to track events in our application.
132
+
133
+ 34
134
+ 00:02:36,000 --> 00:02:43,000
135
+ I have already mentioned grief and what kind of events we want and can track in our application.
136
+
137
+ 35
138
+ 00:02:43,000 --> 00:02:45,000
139
+ That sums them up on this slide.
140
+
141
+ 36
142
+ 00:02:46,000 --> 00:02:54,000
143
+ We have three main entities and events related to XEM that we can technically track in our JavaFX application.
144
+
145
+ 37
146
+ 00:02:55,000 --> 00:03:02,000
147
+ These entities are sort of contacts in the previous Lessons Learned review, what a similar context
148
+
149
+ 38
150
+ 00:03:02,000 --> 00:03:03,000
151
+ is.
152
+
153
+ 39
154
+ 00:03:03,000 --> 00:03:09,000
155
+ So in case you want to learn more about that context, please refer to the previous lessons.
156
+
157
+ 40
158
+ 00:03:09,000 --> 00:03:16,000
159
+ Just to remind you that this is single and level objects, that the existing scope of all application
160
+
161
+ 41
162
+ 00:03:16,000 --> 00:03:17,000
163
+ it exists.
164
+
165
+ 42
166
+ 00:03:17,000 --> 00:03:20,000
167
+ In one instance session object.
168
+
169
+ 43
170
+ 00:03:21,000 --> 00:03:24,000
171
+ We may have multiple session objects in our application.
172
+
173
+ 44
174
+ 00:03:24,000 --> 00:03:27,000
175
+ Again, we have separate lesson about session.
176
+
177
+ 45
178
+ 00:03:28,000 --> 00:03:31,000
179
+ Please refer to that lesson to learn more details about the session.
180
+
181
+ 46
182
+ 00:03:32,000 --> 00:03:38,000
183
+ But session is very important object in terms of ensuring seamless interaction of the client with our
184
+
185
+ 47
186
+ 00:03:38,000 --> 00:03:39,000
187
+ application.
188
+
189
+ 48
190
+ 00:03:39,000 --> 00:03:47,000
191
+ That's why it might be important to monitor interaction and work with all session objects in our application.
192
+
193
+ 49
194
+ 00:03:47,000 --> 00:03:49,000
195
+ And so that's request.
196
+
197
+ 50
198
+ 00:03:50,000 --> 00:03:57,000
199
+ It is also makes sense to monitor the progress of each request and be able to close interaction with
200
+
201
+ 51
202
+ 00:03:57,000 --> 00:03:58,000
203
+ this object.
204
+
205
+ 52
206
+ 00:03:59,000 --> 00:04:04,000
207
+ So we define swimming and that is it will produce events in our application.
208
+
209
+ 53
210
+ 00:04:04,000 --> 00:04:07,000
211
+ What kinds of events is a make or use?
212
+
213
+ 54
214
+ 00:04:08,000 --> 00:04:13,000
215
+ There are similar group of events and some of them are different for specific types.
216
+
217
+ 55
218
+ 00:04:13,000 --> 00:04:16,000
219
+ Let's start with a review of similar events.
220
+
221
+ 56
222
+ 00:04:16,000 --> 00:04:18,000
223
+ There are two main group of events.
224
+
225
+ 57
226
+ 00:04:19,000 --> 00:04:28,000
227
+ They are the first group of events related was lifecycle one instances created and one instance is destroyed.
228
+
229
+ 58
230
+ 00:04:29,000 --> 00:04:35,000
231
+ This is about all types of objects that we have just mentioned, so we can track events once so that
232
+
233
+ 59
234
+ 00:04:35,000 --> 00:04:41,000
235
+ context is created to destroy it once sessions created or destroyed, and when a request is created
236
+
237
+ 60
238
+ 00:04:41,000 --> 00:04:48,000
239
+ to destroy it and the second group of events is connected, that was interactive events, namely with
240
+
241
+ 61
242
+ 00:04:48,000 --> 00:04:51,000
243
+ and in removing or replacing attributes from.
244
+
245
+ 62
246
+ 00:04:51,000 --> 00:04:59,000
247
+ These objects sometimes have specific types of events they can track as a serious request object.
248
+
249
+ 63
250
+ 00:04:59,000 --> 00:05:07,000
251
+ There is also a single events listener that will be notified in the event that an eye synchronous operation
252
+
253
+ 64
254
+ 00:05:07,000 --> 00:05:15,000
255
+ initiated on a service request to reach the listener have been added, has completed timed out or resulted
256
+
257
+ 65
258
+ 00:05:15,000 --> 00:05:18,000
259
+ in an error for session objects.
260
+
261
+ 66
262
+ 00:05:18,000 --> 00:05:26,000
263
+ These are also events related to session migration, object bonding and changes in ID or should it be
264
+
265
+ 67
266
+ 00:05:26,000 --> 00:05:27,000
267
+ session activation?
268
+
269
+ 68
270
+ 00:05:27,000 --> 00:05:35,000
271
+ Listener objects about this session my recent visit containing events notifying them that sessions will
272
+
273
+ 69
274
+ 00:05:35,000 --> 00:05:39,000
275
+ be postulated and the session will be activated.
276
+
277
+ 70
278
+ 00:05:40,000 --> 00:05:47,000
279
+ I contain as it migrates session between the virtual machines or persist session is required to notify
280
+
281
+ 71
282
+ 00:05:47,000 --> 00:05:52,000
283
+ all active is bound to sessions implement and the session activation listener.
284
+
285
+ 72
286
+ 00:05:53,000 --> 00:05:55,000
287
+ Should it be session binding?
288
+
289
+ 73
290
+ 00:05:55,000 --> 00:06:02,000
291
+ This causes an object to be notified when it is bound to or unbound from a session.
292
+
293
+ 74
294
+ 00:06:02,000 --> 00:06:10,000
295
+ This may be as a result of a similar programmer explicitly unwinding an attribute from a session due
296
+
297
+ 75
298
+ 00:06:10,000 --> 00:06:13,000
299
+ to a session being invalidated or due the session.
300
+
301
+ 76
302
+ 00:06:13,000 --> 00:06:14,000
303
+ Time and out.
304
+
305
+ 77
306
+ 00:06:15,000 --> 00:06:22,000
307
+ Actually possession ideally is an interface for receiving notification events and both ACP session ID
308
+
309
+ 78
310
+ 00:06:22,000 --> 00:06:23,000
311
+ changes.
312
+
313
+ 79
314
+ 00:06:23,000 --> 00:06:28,000
315
+ This is a summary of events that we can track in a web application.
316
+
317
+ 80
318
+ 00:06:29,000 --> 00:06:35,000
319
+ You can memorize this easily following the suggested structure, at least for my foreign students.
320
+
321
+ 81
322
+ 00:06:35,000 --> 00:06:42,000
323
+ This presentation works better rather than presentation on the official documentation, which may sound
324
+
325
+ 82
326
+ 00:06:42,000 --> 00:06:43,000
327
+ confusing.
328
+
329
+ 83
330
+ 00:06:44,000 --> 00:06:45,000
331
+ Okay.
332
+
333
+ 84
334
+ 00:06:45,000 --> 00:06:51,000
335
+ By this moment, in our lesson, we learned what objects might trigger events and what kind of events
336
+
337
+ 85
338
+ 00:06:51,000 --> 00:06:53,000
339
+ will track the next scene.
340
+
341
+ 86
342
+ 00:06:54,000 --> 00:06:59,000
343
+ Still remain to learn is how a technique that we will enter sabs events.
344
+
345
+ 87
346
+ 00:07:00,000 --> 00:07:04,000
347
+ The special mechanism of event listeners exist for this.
348
+
349
+ 88
350
+ 00:07:04,000 --> 00:07:11,000
351
+ What are listeners listeners special objects that are great at following specified interfaces?
352
+
353
+ 89
354
+ 00:07:12,000 --> 00:07:19,000
355
+ Instances of listener types are registered in the VAT application in order to be invoked when events
356
+
357
+ 90
358
+ 00:07:19,000 --> 00:07:19,000
359
+ occur.
360
+
361
+ 91
362
+ 00:07:20,000 --> 00:07:25,000
363
+ That service is responsible for orchestration and the listener's invocation.
364
+
365
+ 92
366
+ 00:07:26,000 --> 00:07:31,000
367
+ Masses of listener objects get invoked when lifecycle events occur.
368
+
369
+ 93
370
+ 00:07:32,000 --> 00:07:38,000
371
+ To use this listener objects, you must define and specify the listener class.
372
+
373
+ 94
374
+ 00:07:39,000 --> 00:07:42,000
375
+ The following is an overview of the whole process.
376
+
377
+ 95
378
+ 00:07:42,000 --> 00:07:48,000
379
+ The user creates an event listener plus is it implements one of the least interfaces.
380
+
381
+ 96
382
+ 00:07:48,000 --> 00:07:55,000
383
+ This implementation is registered as a deployment descriptor, and deployment time is a similar container
384
+
385
+ 97
386
+ 00:07:55,000 --> 00:08:00,000
387
+ that constructs an instance of the event plus a torrent times.
388
+
389
+ 98
390
+ 00:08:00,000 --> 00:08:05,000
391
+ This container invokes masses on the instance of this class.
392
+
393
+ 99
394
+ 00:08:05,000 --> 00:08:10,000
395
+ You define the listener class as an implementation of the listener interface.
396
+
397
+ 100
398
+ 00:08:10,000 --> 00:08:12,000
399
+ I'm going to show you how to do this.
400
+
401
+ 101
402
+ 00:08:12,000 --> 00:08:13,000
403
+ Gives them a.
404
+
405
+ 102
406
+ 00:08:14,000 --> 00:08:15,000
407
+ I'm a listener message.
408
+
409
+ 103
410
+ 00:08:15,000 --> 00:08:16,000
411
+ This is the well.
412
+
413
+ 104
414
+ 00:08:16,000 --> 00:08:21,000
415
+ It is both an event that contains information appropriate.
416
+
417
+ 105
418
+ 00:08:21,000 --> 00:08:29,000
419
+ This event for example the masses in the HTP session, the recent interface bus and HTP session event
420
+
421
+ 106
422
+ 00:08:30,000 --> 00:08:37,000
423
+ which contains and they should be session object and there are similar examples with different types.
424
+
425
+ 107
426
+ 00:08:37,000 --> 00:08:43,000
427
+ Feel free to present course to explore other types of events and listeners that are presented on this
428
+
429
+ 108
430
+ 00:08:43,000 --> 00:08:44,000
431
+ slide.
432
+
433
+ 109
434
+ 00:08:45,000 --> 00:08:48,000
435
+ Once you're done with this, let's move on.
436
+
437
+ 110
438
+ 00:08:49,000 --> 00:08:55,000
439
+ Let's proceed with a lot of them now, because now we need to learn how exactly we can implement event
440
+
441
+ 111
442
+ 00:08:55,000 --> 00:08:58,000
443
+ listeners to react on the events.
444
+
445
+ 112
446
+ 00:08:59,000 --> 00:09:05,000
447
+ Considering the fact that the way of the declaration and interface implementation will be absolutely
448
+
449
+ 113
450
+ 00:09:05,000 --> 00:09:12,000
451
+ the same, I don't see a lot of sense making them of this over context session and the request objects.
452
+
453
+ 114
454
+ 00:09:13,000 --> 00:09:17,000
455
+ Anyway, from technical side, the will be the same.
456
+
457
+ 115
458
+ 00:09:17,000 --> 00:09:23,000
459
+ One of the resources of the events will be different, but each instance will have a similar way of
460
+
461
+ 116
462
+ 00:09:23,000 --> 00:09:29,000
463
+ working with attendees added, removed or replaced and the listener interfaces implemented.
464
+
465
+ 117
466
+ 00:09:30,000 --> 00:09:31,000
467
+ Understand what I mean?
468
+
469
+ 118
470
+ 00:09:32,000 --> 00:09:38,000
471
+ That's why, for the sake of the demo, I suggest through example how to track lifecycle events and
472
+
473
+ 119
474
+ 00:09:38,000 --> 00:09:43,000
475
+ events associated with the attributes in session objects to create new listener.
476
+
477
+ 120
478
+ 00:09:44,000 --> 00:09:48,000
479
+ Let's make mouse click then select new and select listener.
480
+
481
+ 121
482
+ 00:09:49,000 --> 00:09:51,000
483
+ Let's change package name the listeners.
484
+
485
+ 122
486
+ 00:09:52,000 --> 00:09:55,000
487
+ Let's call our new listener session listener.
488
+
489
+ 123
490
+ 00:09:56,000 --> 00:09:57,000
491
+ Click Next Button.
492
+
493
+ 124
494
+ 00:09:59,000 --> 00:10:04,000
495
+ And here you have multiple options that you can select in order to listen to different events.
496
+
497
+ 125
498
+ 00:10:05,000 --> 00:10:13,000
499
+ We agreed that we want to and session related events and among all session related events that these
500
+
501
+ 126
502
+ 00:10:13,000 --> 00:10:18,000
503
+ events are related with the session life cycle and with session activities.
504
+
505
+ 127
506
+ 00:10:19,000 --> 00:10:20,000
507
+ Click Next Button.
508
+
509
+ 128
510
+ 00:10:21,000 --> 00:10:25,000
511
+ On this step, we can just confirm interfaces that we want to implement.
512
+
513
+ 129
514
+ 00:10:26,000 --> 00:10:27,000
515
+ That's Lake Finish button.
516
+
517
+ 130
518
+ 00:10:28,000 --> 00:10:34,000
519
+ You don't see a lot of message stuff because all masses have a default implementation in their interfaces.
520
+
521
+ 131
522
+ 00:10:35,000 --> 00:10:42,000
523
+ If you want to override them, let's make mouse click and editor area select source menu item.
524
+
525
+ 132
526
+ 00:10:42,000 --> 00:10:45,000
527
+ After that override implement methods.
528
+
529
+ 133
530
+ 00:10:46,000 --> 00:10:52,000
531
+ We can select all masses from HTP session attribute listener and from HTP session listener.
532
+
533
+ 134
534
+ 00:10:53,000 --> 00:10:56,000
535
+ Now we have stabs that we can override.
536
+
537
+ 135
538
+ 00:10:56,000 --> 00:11:00,000
539
+ As you may already understand, you can implement this masses as you wish.
540
+
541
+ 136
542
+ 00:11:01,000 --> 00:11:08,000
543
+ The scope of this demo will focus only on the fact of triggering this masses to make sure that these
544
+
545
+ 137
546
+ 00:11:08,000 --> 00:11:09,000
547
+ methods are triggering.
548
+
549
+ 138
550
+ 00:11:10,000 --> 00:11:15,000
551
+ Let's just bring message the console in the attribute added to this session.
552
+
553
+ 139
554
+ 00:11:15,000 --> 00:11:17,000
555
+ Let's bring to console.
556
+
557
+ 140
558
+ 00:11:17,000 --> 00:11:20,000
559
+ The attribute is added the session.
560
+
561
+ 141
562
+ 00:11:22,000 --> 00:11:24,000
563
+ The attributes removed.
564
+
565
+ 142
566
+ 00:11:24,000 --> 00:11:27,000
567
+ Let's bring that actually has been removed.
568
+
569
+ 143
570
+ 00:11:29,000 --> 00:11:31,000
571
+ Is that attributes replaced.
572
+
573
+ 144
574
+ 00:11:31,000 --> 00:11:35,000
575
+ Let's pray is it actually is replaced is a session.
576
+
577
+ 145
578
+ 00:11:37,000 --> 00:11:38,000
579
+ When Sessions created.
580
+
581
+ 146
582
+ 00:11:39,000 --> 00:11:42,000
583
+ Let's also make related console out.
584
+
585
+ 147
586
+ 00:11:44,000 --> 00:11:50,000
587
+ And in a similar way let's bring some center console into this session is destroy.
588
+
589
+ 148
590
+ 00:11:52,000 --> 00:11:55,000
591
+ Pay attention also to the massive parameters.
592
+
593
+ 149
594
+ 00:11:55,000 --> 00:12:00,000
595
+ These are parameters that can be used to take additional information.
596
+
597
+ 150
598
+ 00:12:00,000 --> 00:12:03,000
599
+ For example, these activities related events.
600
+
601
+ 151
602
+ 00:12:03,000 --> 00:12:10,000
603
+ We can see the argument of type B session binding event is passed to the message.
604
+
605
+ 152
606
+ 00:12:11,000 --> 00:12:15,000
607
+ You can check the source code to learn more what you can get from this subject.
608
+
609
+ 153
610
+ 00:12:16,000 --> 00:12:22,000
611
+ In this particular case, we can see that we can get the name of the session actually and the value
612
+
613
+ 154
614
+ 00:12:22,000 --> 00:12:23,000
615
+ of session attribute.
616
+
617
+ 155
618
+ 00:12:24,000 --> 00:12:29,000
619
+ This can be important for log in purposes, but be careful.
620
+
621
+ 156
622
+ 00:12:29,000 --> 00:12:37,000
623
+ The logs are also subject of legal regulations in terms of what data is stored there and how it is stored.
624
+
625
+ 157
626
+ 00:12:38,000 --> 00:12:45,000
627
+ Each project through the data retention policy that describes all the details regarding what kinds of
628
+
629
+ 158
630
+ 00:12:45,000 --> 00:12:51,000
631
+ data, where for how long it can be stored, and we should strictly follow it.
632
+
633
+ 159
634
+ 00:12:52,000 --> 00:12:58,000
635
+ So be careful about logging surveillance of the session patches, but in some particular cases this
636
+
637
+ 160
638
+ 00:12:58,000 --> 00:13:02,000
639
+ can be allowed some insights about future lessons.
640
+
641
+ 161
642
+ 00:13:02,000 --> 00:13:08,000
643
+ We are also going to separate less than the mark logging in Java applications where I will share with
644
+
645
+ 162
646
+ 00:13:08,000 --> 00:13:09,000
647
+ you logging tools and techniques.
648
+
649
+ 163
650
+ 00:13:10,000 --> 00:13:14,000
651
+ For the sake of the demo, let's add one more console.
652
+
653
+ 164
654
+ 00:13:15,000 --> 00:13:20,000
655
+ Let's bring the here session attribute name and get a name from the amount.
656
+
657
+ 165
658
+ 00:13:21,000 --> 00:13:23,000
659
+ And another scene that we are going to create here.
660
+
661
+ 166
662
+ 00:13:24,000 --> 00:13:28,000
663
+ This session attributes value that we can also take from the event.
664
+
665
+ 167
666
+ 00:13:29,000 --> 00:13:31,000
667
+ Gray Jones.
668
+
669
+ 168
670
+ 00:13:31,000 --> 00:13:35,000
671
+ It never was supposed to see values here that we put in our.
672
+
673
+ 169
674
+ 00:13:37,000 --> 00:13:43,000
675
+ During the life cycle related events really see if they should be session event argument who can use
676
+
677
+ 170
678
+ 00:13:43,000 --> 00:13:43,000
679
+ it?
680
+
681
+ 171
682
+ 00:13:43,000 --> 00:13:49,000
683
+ The tags and references of parent session object perform any operations we need with it.
684
+
685
+ 172
686
+ 00:13:50,000 --> 00:13:57,000
687
+ So using event object commands and references to the related objects and data that can be helpful on
688
+
689
+ 173
690
+ 00:13:57,000 --> 00:14:02,000
691
+ the specific conditions and the bands union instrumentation of these methods.
692
+
693
+ 174
694
+ 00:14:02,000 --> 00:14:05,000
695
+ You can use method arguments as you need.
696
+
697
+ 175
698
+ 00:14:06,000 --> 00:14:07,000
699
+ Another important scene.
700
+
701
+ 176
702
+ 00:14:08,000 --> 00:14:14,000
703
+ We need to tell the Web server that this is a lease and that is it is needed to be registered and notified
704
+
705
+ 177
706
+ 00:14:14,000 --> 00:14:15,000
707
+ in case of events.
708
+
709
+ 178
710
+ 00:14:16,000 --> 00:14:19,000
711
+ As always, there are two ways to do this.
712
+
713
+ 179
714
+ 00:14:19,000 --> 00:14:23,000
715
+ We can do this with the help of that in annotation.
716
+
717
+ 180
718
+ 00:14:23,000 --> 00:14:31,000
719
+ This annotation does not have any other attributes besides description, but just margins across with
720
+
721
+ 181
722
+ 00:14:31,000 --> 00:14:39,000
723
+ this interface is enough to tell web server that we need to register this class as this and then other
724
+
725
+ 182
726
+ 00:14:39,000 --> 00:14:41,000
727
+ ways to configure least in the web xml.
728
+
729
+ 183
730
+ 00:14:42,000 --> 00:14:44,000
731
+ There is a separate element reserved for this.
732
+
733
+ 184
734
+ 00:14:45,000 --> 00:14:52,000
735
+ You can use this element and specify a listener class in order to register these evap server.
736
+
737
+ 185
738
+ 00:14:53,000 --> 00:14:55,000
739
+ Now let's run our application.
740
+
741
+ 186
742
+ 00:14:56,000 --> 00:15:00,000
743
+ If you watch the previous lesson, we created the use of less.
744
+
745
+ 187
746
+ 00:15:00,000 --> 00:15:08,000
747
+ The demo session works, we have session demo, so that is a great session and sets activity into this
748
+
749
+ 188
750
+ 00:15:08,000 --> 00:15:08,000
751
+ session.
752
+
753
+ 189
754
+ 00:15:09,000 --> 00:15:10,000
755
+ Let's call it.
756
+
757
+ 190
758
+ 00:15:12,000 --> 00:15:19,000
759
+ And you can see and console that session is great and attribute is added the session attribute name
760
+
761
+ 191
762
+ 00:15:19,000 --> 00:15:29,000
763
+ is the ones that we used in our so that that attribute we can open a.s.a.p session so that uncheck session
764
+
765
+ 192
766
+ 00:15:29,000 --> 00:15:30,000
767
+ attributes name and value.
768
+
769
+ 193
770
+ 00:15:31,000 --> 00:15:37,000
771
+ And if you would compare the values in the console and in the source code, you will discover that there
772
+
773
+ 194
774
+ 00:15:37,000 --> 00:15:46,000
775
+ is a scene that proves that we intercepted e man that we are one that now lets calls it so adds it contains
776
+
777
+ 195
778
+ 00:15:46,000 --> 00:15:53,000
779
+ it could invalidate the current session and in console we can see all relevant messages.
780
+
781
+ 196
782
+ 00:15:54,000 --> 00:16:00,000
783
+ Session is destroyed and when it is destroyed related attribute also was removed from.
784
+
785
+ 197
786
+ 00:16:01,000 --> 00:16:09,000
787
+ In a similar way we can create and reduce the for select conflicts and foster lets request the source
788
+
789
+ 198
790
+ 00:16:09,000 --> 00:16:15,000
791
+ code of all examples you will be able to find in attachments to the lesson and in case you would have
792
+
793
+ 199
794
+ 00:16:15,000 --> 00:16:15,000
795
+ some questions.
796
+
797
+ 200
798
+ 00:16:16,000 --> 00:16:20,000
799
+ Please let me know those and I will be happy to answer.
800
+
801
+ 201
802
+ 00:16:21,000 --> 00:16:29,000
803
+ We saw the live demo in order to not duplicate the similar demo for all possible types of events and
804
+
805
+ 202
806
+ 00:16:29,000 --> 00:16:30,000
807
+ event triggers.
808
+
809
+ 203
810
+ 00:16:30,000 --> 00:16:34,000
811
+ Let me present your slides with a summary on this slide.
812
+
813
+ 204
814
+ 00:16:34,000 --> 00:16:37,000
815
+ You can see a list of server context events.
816
+
817
+ 205
818
+ 00:16:38,000 --> 00:16:45,000
819
+ Also, you can see the class of the SNR and the massive to implement just principles for a minute if
820
+
821
+ 206
822
+ 00:16:45,000 --> 00:16:48,000
823
+ needed and read massive names attentively.
824
+
825
+ 207
826
+ 00:16:49,000 --> 00:16:51,000
827
+ In my opinion, massive names are sound.
828
+
829
+ 208
830
+ 00:16:51,000 --> 00:16:55,000
831
+ Describe in terms of what events they intercept.
832
+
833
+ 209
834
+ 00:16:56,000 --> 00:16:59,000
835
+ Even in case some massive reason that remains unclear for you.
836
+
837
+ 210
838
+ 00:17:00,000 --> 00:17:02,000
839
+ Please don't hesitate to ask questions.
840
+
841
+ 211
842
+ 00:17:03,000 --> 00:17:06,000
843
+ Those of you and I will be happy to answer.
844
+
845
+ 212
846
+ 00:17:07,000 --> 00:17:11,000
847
+ On this slide, you can find a similar table, but just for all session.
848
+
849
+ 213
850
+ 00:17:11,000 --> 00:17:15,000
851
+ The related events work with this slide in a similar way.
852
+
853
+ 214
854
+ 00:17:16,000 --> 00:17:23,000
855
+ Press pause, reads the slides, so feel free also to explore the source code of interfaces if you wish.
856
+
857
+ 215
858
+ 00:17:24,000 --> 00:17:27,000
859
+ And once you are ready, proceed to the next slide.
860
+
861
+ 216
862
+ 00:17:28,000 --> 00:17:32,000
863
+ And on this slide you can find all events related to this.
864
+
865
+ 217
866
+ 00:17:32,000 --> 00:17:33,000
867
+ So let's request.
868
+
869
+ 218
870
+ 00:17:34,000 --> 00:17:41,000
871
+ I am sure that after learning all this, you become at parole in events handling in general web applications.
872
+
873
+ 219
874
+ 00:17:41,000 --> 00:17:45,000
875
+ And I want to congratulate you with this zone.
876
+
877
+ 220
878
+ 00:17:45,000 --> 00:17:51,000
879
+ The one thing that we still need to learn today in the lesson is error handling in web applications.
880
+
881
+ 221
882
+ 00:17:52,000 --> 00:17:57,000
883
+ In some degree error handling is similar to events interception.
884
+
885
+ 222
886
+ 00:17:57,000 --> 00:18:05,000
887
+ So basically in the case of the event, which is error server for what is a request is a person's fig.
888
+
889
+ 223
890
+ 00:18:05,000 --> 00:18:10,000
891
+ as source, we can configure error and as a deployment descriptor.
892
+
893
+ 224
894
+ 00:18:10,000 --> 00:18:12,000
895
+ These are rabbits in a file.
896
+
897
+ 225
898
+ 00:18:12,000 --> 00:18:15,000
899
+ What we would consider as an exception.
900
+
901
+ 226
902
+ 00:18:15,000 --> 00:18:23,000
903
+ An exception is an event we should do is use execution of a program which disrupts the normal flow of
904
+
905
+ 227
906
+ 00:18:23,000 --> 00:18:25,000
907
+ the program's instructions.
908
+
909
+ 228
910
+ 00:18:26,000 --> 00:18:32,000
911
+ When assume that generates an error, the developers can handle those exceptions in various ways.
912
+
913
+ 229
914
+ 00:18:33,000 --> 00:18:41,000
915
+ For example, when a user tries to access a euro without proper authorization, a full suite error code
916
+
917
+ 230
918
+ 00:18:41,000 --> 00:18:43,000
919
+ is sent back to the client.
920
+
921
+ 231
922
+ 00:18:44,000 --> 00:18:50,000
923
+ We can handle this exception by describing configuration for error, handling things of that file.
924
+
925
+ 232
926
+ 00:18:51,000 --> 00:18:58,000
927
+ As developers, we have to handle these exceptions in order to describe them or behave as it should
928
+
929
+ 233
930
+ 00:18:58,000 --> 00:18:58,000
931
+ be followed.
932
+
933
+ 234
934
+ 00:18:58,000 --> 00:19:06,000
935
+ In the exceptional case, describing this behavior is called exception handling the different options.
936
+
937
+ 235
938
+ 00:19:06,000 --> 00:19:11,000
939
+ How we can handle exceptions in Java Web applications zero.
940
+
941
+ 236
942
+ 00:19:11,000 --> 00:19:13,000
943
+ We can handle exceptions programmatically.
944
+
945
+ 237
946
+ 00:19:14,000 --> 00:19:20,000
947
+ I mean, with the help of tracking blocks, we can cache exceptional cases and define the logic that
948
+
949
+ 238
950
+ 00:19:20,000 --> 00:19:22,000
951
+ will contain instructions.
952
+
953
+ 239
954
+ 00:19:23,000 --> 00:19:25,000
955
+ How to address exceptional cases.
956
+
957
+ 240
958
+ 00:19:26,000 --> 00:19:33,000
959
+ Another option is a declarative approach with the help of fixing the base configuration of every single
960
+
961
+ 241
962
+ 00:19:33,000 --> 00:19:33,000
963
+ file.
964
+
965
+ 242
966
+ 00:19:33,000 --> 00:19:36,000
967
+ We can configure rules for exception handling.
968
+
969
+ 243
970
+ 00:19:37,000 --> 00:19:41,000
971
+ We can return customized content as a client in case of an error.
972
+
973
+ 244
974
+ 00:19:42,000 --> 00:19:48,000
975
+ On this slide, you can see excellent tugs that can be used to configure resources for fluid you request
976
+
977
+ 245
978
+ 00:19:48,000 --> 00:19:49,000
979
+ in case of the error.
980
+
981
+ 246
982
+ 00:19:50,000 --> 00:19:57,000
983
+ We use error page excellent element that contains the following attributes described in the slide.
984
+
985
+ 247
986
+ 00:19:58,000 --> 00:20:00,000
987
+ Required attribute is the location.
988
+
989
+ 248
990
+ 00:20:01,000 --> 00:20:07,000
991
+ We have to specify the resources that we need to access in case of the exception we can set is a reference
992
+
993
+ 249
994
+ 00:20:07,000 --> 00:20:15,000
995
+ to some static resource, some proposed error HTML page, or we can set the reference to another so
996
+
997
+ 250
998
+ 00:20:15,000 --> 00:20:22,000
999
+ that we can also declare resources for specific Java exceptions or for specific error quotes.
1000
+
1001
+ 251
1002
+ 00:20:23,000 --> 00:20:24,000
1003
+ Let's watch demo.
1004
+
1005
+ 252
1006
+ 00:20:24,000 --> 00:20:28,000
1007
+ I believe it will be easier for you to understand this on real examples.
1008
+
1009
+ 253
1010
+ 00:20:29,000 --> 00:20:31,000
1011
+ I opened that axonal.
1012
+
1013
+ 254
1014
+ 00:20:32,000 --> 00:20:34,000
1015
+ The first lesson I prepared two examples here.
1016
+
1017
+ 255
1018
+ 00:20:35,000 --> 00:20:39,000
1019
+ The first one verifies is the error code of response.
1020
+
1021
+ 256
1022
+ 00:20:39,000 --> 00:20:47,000
1023
+ This is in case we set response code and after that container will be successful to resolve our error
1024
+
1025
+ 257
1026
+ 00:20:47,000 --> 00:20:52,000
1027
+ code and forwards at once request to the preconfigured resource.
1028
+
1029
+ 258
1030
+ 00:20:52,000 --> 00:20:58,000
1031
+ And another example shows how to configure error handling for this specific error type.
1032
+
1033
+ 259
1034
+ 00:20:58,000 --> 00:21:02,000
1035
+ As example, I configure the error handling for now point the exception.
1036
+
1037
+ 260
1038
+ 00:21:03,000 --> 00:21:07,000
1039
+ In most cases I first glance request to the error handler source.
1040
+
1041
+ 261
1042
+ 00:21:08,000 --> 00:21:09,000
1043
+ Let's look at it.
1044
+
1045
+ 262
1046
+ 00:21:10,000 --> 00:21:12,000
1047
+ This is a symbol that was named.
1048
+
1049
+ 263
1050
+ 00:21:12,000 --> 00:21:15,000
1051
+ HENDERSON Well, let's look.
1052
+
1053
+ 264
1054
+ 00:21:15,000 --> 00:21:16,000
1055
+ What do we have here?
1056
+
1057
+ 265
1058
+ 00:21:17,000 --> 00:21:22,000
1059
+ In case of the error, different attributes are placed in the request object.
1060
+
1061
+ 266
1062
+ 00:21:22,000 --> 00:21:30,000
1063
+ As you can see, I see special attribute names, flags and details about exception status code, server,
1064
+
1065
+ 267
1066
+ 00:21:30,000 --> 00:21:31,000
1067
+ name and request.
1068
+
1069
+ 268
1070
+ 00:21:33,000 --> 00:21:39,000
1071
+ After that I format responsive body with the help of email and send it back to the client.
1072
+
1073
+ 269
1074
+ 00:21:40,000 --> 00:21:44,000
1075
+ Also, I prepared the service to imitate the exceptional cases.
1076
+
1077
+ 270
1078
+ 00:21:45,000 --> 00:21:47,000
1079
+ Let me open stop error course.
1080
+
1081
+ 271
1082
+ 00:21:47,000 --> 00:21:49,000
1083
+ So this.
1084
+
1085
+ 272
1086
+ 00:21:49,000 --> 00:21:53,000
1087
+ So that sets for all three state of support in this response.
1088
+
1089
+ 273
1090
+ 00:21:54,000 --> 00:22:01,000
1091
+ This will make our error and the mechanism to forward the request is an error and that so and another.
1092
+
1093
+ 274
1094
+ 00:22:01,000 --> 00:22:03,000
1095
+ So what was the name of the exception?
1096
+
1097
+ 275
1098
+ 00:22:03,000 --> 00:22:06,000
1099
+ So it will generate no one exception.
1100
+
1101
+ 276
1102
+ 00:22:07,000 --> 00:22:12,000
1103
+ Looking to open a new compact and navigate a stop error euro.
1104
+
1105
+ 277
1106
+ 00:22:14,000 --> 00:22:23,000
1107
+ I see status quo and error information that includes name of the somewhat sound error code and based
1108
+
1109
+ 278
1110
+ 00:22:23,000 --> 00:22:24,000
1111
+ on the form on it.
1112
+
1113
+ 279
1114
+ 00:22:24,000 --> 00:22:27,000
1115
+ You can see that this is not defaults in the page.
1116
+
1117
+ 280
1118
+ 00:22:27,000 --> 00:22:30,000
1119
+ This is a page created by us.
1120
+
1121
+ 281
1122
+ 00:22:31,000 --> 00:22:37,000
1123
+ Now let's change your role and let's just assume that the generates no point.
1124
+
1125
+ 282
1126
+ 00:22:37,000 --> 00:22:39,000
1127
+ The exception I change you.
1128
+
1129
+ 283
1130
+ 00:22:39,000 --> 00:22:41,000
1131
+ There's an MP.
1132
+
1133
+ 284
1134
+ 00:22:41,000 --> 00:22:42,000
1135
+ I see.
1136
+
1137
+ 285
1138
+ 00:22:42,000 --> 00:22:45,000
1139
+ That error is 500 and zero.
1140
+
1141
+ 286
1142
+ 00:22:45,000 --> 00:22:51,000
1143
+ A lot of other details that we managed to fetch, as it ought to be from the request object.
1144
+
1145
+ 287
1146
+ 00:22:52,000 --> 00:22:53,000
1147
+ You can see all of them here.
1148
+
1149
+ 288
1150
+ 00:22:54,000 --> 00:23:00,000
1151
+ I can see certainly an exception because you lie even exception message.
1152
+
1153
+ 289
1154
+ 00:23:01,000 --> 00:23:05,000
1155
+ That's how we can handle exceptions in Java map application.
1156
+
1157
+ 290
1158
+ 00:23:05,000 --> 00:23:09,000
1159
+ Let's recap what we have learned in this lesson.
1160
+
1161
+ 291
1162
+ 00:23:10,000 --> 00:23:15,000
1163
+ In this lesson, you learned why we need events in the IT application.
1164
+
1165
+ 292
1166
+ 00:23:15,000 --> 00:23:23,000
1167
+ I explain what event listeners are really used, what kinds of events we can either set a handle.
1168
+
1169
+ 293
1170
+ 00:23:24,000 --> 00:23:29,000
1171
+ Together, we implemented our first listener and the essence of the lesson.
1172
+
1173
+ 294
1174
+ 00:23:29,000 --> 00:23:31,000
1175
+ We learned how to handle errors.
1176
+
1177
+ 295
1178
+ 00:23:31,000 --> 00:23:33,000
1179
+ These are application.
1180
+
1181
+ 296
1182
+ 00:23:34,000 --> 00:23:35,000
1183
+ Thanks a lot for your attention.
1184
+
1185
+ 297
1186
+ 00:23:35,000 --> 00:23:38,000
1187
+ Have a great day and see you in the next lesson.
1188
+
64 - Events Handling in Web Application/001 Source-of-web.xml-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
64 - Events Handling in Web Application/001 The-source-code-of-examples-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/exceptions
64 - Events Handling in Web Application/external-links.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+
2
+ 001 The-source-code-of-examples-from-the-lesson
3
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/exceptions
4
+
5
+ 001 Source-of-web.xml-from-the-lesson
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/WEB-INF/web.xml
65 - HTML & CSS/001 HTML Basics_en.srt ADDED
@@ -0,0 +1,1252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello Tim.
4
+
5
+ 2
6
+ 00:00:07,000 --> 00:00:10,000
7
+ Was this lesson was starts new and very important topic.
8
+
9
+ 3
10
+ 00:00:11,000 --> 00:00:11,000
11
+ Time out.
12
+
13
+ 4
14
+ 00:00:11,000 --> 00:00:14,000
15
+ This topic is important for everyone.
16
+
17
+ 5
18
+ 00:00:14,000 --> 00:00:20,000
19
+ No matter whether you are a friend and developer who is about to start learning JavaScript or you are
20
+
21
+ 6
22
+ 00:00:20,000 --> 00:00:28,000
23
+ a Java developer, learn Java that technologies including GCP and others, you have to know them out.
24
+
25
+ 7
26
+ 00:00:28,000 --> 00:00:32,000
27
+ And this is the first lesson and series of HTML lessons.
28
+
29
+ 8
30
+ 00:00:33,000 --> 00:00:40,000
31
+ We are going to learn what each the amount is, how briefly explains the history of HTML and will tell
32
+
33
+ 9
34
+ 00:00:40,000 --> 00:00:44,000
35
+ you about organizations who support them nowadays?
36
+
37
+ 10
38
+ 00:00:44,000 --> 00:00:47,000
39
+ In this lesson you will understand what a DOM is.
40
+
41
+ 11
42
+ 00:00:48,000 --> 00:00:54,000
43
+ Also, we'll talk about different HTML versions and name email features.
44
+
45
+ 12
46
+ 00:00:54,000 --> 00:00:59,000
47
+ Besides Seri, we are going to practice in our lesson together.
48
+
49
+ 13
50
+ 00:00:59,000 --> 00:01:05,000
51
+ We'll create our custom HTML page and we will learn basic HTML elements.
52
+
53
+ 14
54
+ 00:01:06,000 --> 00:01:09,000
55
+ I will explain what attributes of HTML elements are.
56
+
57
+ 15
58
+ 00:01:10,000 --> 00:01:15,000
59
+ Will learn how to create comments in HTML, how to create tables and this.
60
+
61
+ 16
62
+ 00:01:15,000 --> 00:01:20,000
63
+ And at the end of the lesson, you will learn how to work with Chrome Development Tools.
64
+
65
+ 17
66
+ 00:01:20,000 --> 00:01:22,000
67
+ Let's start our lesson.
68
+
69
+ 18
70
+ 00:01:23,000 --> 00:01:27,000
71
+ The first items that we have to discuss is the definition of HTML.
72
+
73
+ 19
74
+ 00:01:28,000 --> 00:01:29,000
75
+ Let's understand what are these?
76
+
77
+ 20
78
+ 00:01:30,000 --> 00:01:35,000
79
+ Each HTML is an acronym which stands for Hypertext Markup Language.
80
+
81
+ 21
82
+ 00:01:36,000 --> 00:01:38,000
83
+ It is used for creating web pages.
84
+
85
+ 22
86
+ 00:01:38,000 --> 00:01:44,000
87
+ Let's understand this definition better by understanding all chomps mentioned in it.
88
+
89
+ 23
90
+ 00:01:45,000 --> 00:01:47,000
91
+ What does hypertext mean?
92
+
93
+ 24
94
+ 00:01:48,000 --> 00:01:57,000
95
+ Hypertext simply means text within text at tax that has a link within it is a hypertext.
96
+
97
+ 25
98
+ 00:01:58,000 --> 00:02:05,000
99
+ Each time you click on a link which brings you to you that page you have clicked on the hypertext.
100
+
101
+ 26
102
+ 00:02:05,000 --> 00:02:12,000
103
+ Hypertext is a way to link the two or more back pages each HTML documents with each other.
104
+
105
+ 27
106
+ 00:02:13,000 --> 00:02:15,000
107
+ What is a markup language?
108
+
109
+ 28
110
+ 00:02:15,000 --> 00:02:21,000
111
+ A markup language is a computer language that is used to apply layout and formatting conventions to
112
+
113
+ 29
114
+ 00:02:21,000 --> 00:02:23,000
115
+ the tax document.
116
+
117
+ 30
118
+ 00:02:23,000 --> 00:02:29,000
119
+ All web browsers know how to read markup language to present information to the end user.
120
+
121
+ 31
122
+ 00:02:30,000 --> 00:02:37,000
123
+ So markup is a set of rules to indicate the positions of the elements on the web page.
124
+
125
+ 32
126
+ 00:02:38,000 --> 00:02:42,000
127
+ Markup Language makes text more interactive and dynamic.
128
+
129
+ 33
130
+ 00:02:42,000 --> 00:02:47,000
131
+ It can turn text into images, tables, links, etc..
132
+
133
+ 34
134
+ 00:02:48,000 --> 00:02:49,000
135
+ What is a web page?
136
+
137
+ 35
138
+ 00:02:50,000 --> 00:02:57,000
139
+ Every page is a document which is commonly read in HTML and translated by a web browser.
140
+
141
+ 36
142
+ 00:02:58,000 --> 00:03:06,000
143
+ Like everything else in that web page is a resource, and this resource also has its own indented file,
144
+
145
+ 37
146
+ 00:03:06,000 --> 00:03:10,000
147
+ so that page can be accessed via URL.
148
+
149
+ 38
150
+ 00:03:10,000 --> 00:03:17,000
151
+ That page can produce a static content or dynamic content was interesting.
152
+
153
+ 39
154
+ 00:03:17,000 --> 00:03:19,000
155
+ Now we can create a static map content.
156
+
157
+ 40
158
+ 00:03:20,000 --> 00:03:24,000
159
+ In other words was h html would describe some static content.
160
+
161
+ 41
162
+ 00:03:24,000 --> 00:03:27,000
163
+ Is it stored on the server side?
164
+
165
+ 42
166
+ 00:03:27,000 --> 00:03:35,000
167
+ Also we can write a program code that will help us to generate HTML pages dynamically, so we'll use
168
+
169
+ 43
170
+ 00:03:36,000 --> 00:03:39,000
171
+ them to generate new web content too.
172
+
173
+ 44
174
+ 00:03:39,000 --> 00:03:44,000
175
+ But dynamic content can be created only with the help of programming languages.
176
+
177
+ 45
178
+ 00:03:45,000 --> 00:03:53,000
179
+ Each HTML document is made up of many simple tasks and each email tag contains different content.
180
+
181
+ 46
182
+ 00:03:54,000 --> 00:03:57,000
183
+ Page HTML consists of a series of elements.
184
+
185
+ 47
186
+ 00:03:58,000 --> 00:04:01,000
187
+ External elements tells the browser how to display the content.
188
+
189
+ 48
190
+ 00:04:02,000 --> 00:04:05,000
191
+ This is, in short, what HTML is.
192
+
193
+ 49
194
+ 00:04:05,000 --> 00:04:09,000
195
+ Let's come to you unless known the key points from HTML history.
196
+
197
+ 50
198
+ 00:04:10,000 --> 00:04:19,000
199
+ In the late 1980s, the physicist Tim Berners-Lee, who was a contractor at CERN, proposed the system
200
+
201
+ 51
202
+ 00:04:19,000 --> 00:04:23,000
203
+ for CERN researchers in 1989.
204
+
205
+ 52
206
+ 00:04:23,000 --> 00:04:28,000
207
+ He wrote a memo proposing an Internet based hypertext system.
208
+
209
+ 53
210
+ 00:04:29,000 --> 00:04:33,000
211
+ Tim Berners-Lee is known as the father of simple.
212
+
213
+ 54
214
+ 00:04:33,000 --> 00:04:41,000
215
+ The first available description of HTML was a document called H HTML text proposed by Tim in the late
216
+
217
+ 55
218
+ 00:04:41,000 --> 00:04:48,000
219
+ 19/91 Tim Berners-Lee also known as a leader of W3C.
220
+
221
+ 56
222
+ 00:04:49,000 --> 00:04:59,000
223
+ What it is W3C is a World Wide Web consortium, also known as W3C is the main international standards
224
+
225
+ 57
226
+ 00:04:59,000 --> 00:05:00,000
227
+ organisation because of.
228
+
229
+ 58
230
+ 00:05:02,000 --> 00:05:07,000
231
+ Founded in 1994 and currently led by Tim Berners-Lee.
232
+
233
+ 59
234
+ 00:05:07,000 --> 00:05:15,000
235
+ The consortium is made up of member organisations that maintain full time staff working together in
236
+
237
+ 60
238
+ 00:05:15,000 --> 00:05:18,000
239
+ the development of standards for the World Wide Web.
240
+
241
+ 61
242
+ 00:05:19,000 --> 00:05:26,000
243
+ As of 21st March 2002, W3C had 459 members.
244
+
245
+ 62
246
+ 00:05:26,000 --> 00:05:35,000
247
+ W3C also engages in education and outreach, develops software and serves as an open forum for discussion
248
+
249
+ 63
250
+ 00:05:35,000 --> 00:05:36,000
251
+ about the event.
252
+
253
+ 64
254
+ 00:05:37,000 --> 00:05:46,000
255
+ On 28th May 2019, we see announced that Web Hypertext Application Technology Working Group would be
256
+
257
+ 65
258
+ 00:05:46,000 --> 00:05:51,000
259
+ the sole publisher of the H two email and the standards.
260
+
261
+ 66
262
+ 00:05:51,000 --> 00:05:55,000
263
+ ZG oh AM stands for the Document Object Model.
264
+
265
+ 67
266
+ 00:05:55,000 --> 00:05:56,000
267
+ What is it?
268
+
269
+ 68
270
+ 00:05:56,000 --> 00:06:04,000
271
+ It is a cross-platform and language independent interface that creates an X amount or HTML document
272
+
273
+ 69
274
+ 00:06:04,000 --> 00:06:08,000
275
+ as a 2D structure wherein each node is an object.
276
+
277
+ 70
278
+ 00:06:08,000 --> 00:06:16,000
279
+ Representing F course of the document is a map hypertext application technology working group show name
280
+
281
+ 71
282
+ 00:06:16,000 --> 00:06:25,000
283
+ is w h a t WG is a community of people interested in evolving email related technologies.
284
+
285
+ 72
286
+ 00:06:26,000 --> 00:06:34,000
287
+ The w h a t wg was founded by individuals from Apple, Mozilla Foundation and Opera Software.
288
+
289
+ 73
290
+ 00:06:34,000 --> 00:06:43,000
291
+ Leading Web browser vendors in 2000 for the W three W3C and W, H, A, T, W, G, and B publishing
292
+
293
+ 74
294
+ 00:06:43,000 --> 00:06:55,000
295
+ competing standards since 2012, while the W3C standard was identical to the w h 80 WG into 77, the
296
+
297
+ 75
298
+ 00:06:55,000 --> 00:07:00,000
299
+ standards have since progressively diverged due to different design decisions.
300
+
301
+ 76
302
+ 00:07:01,000 --> 00:07:02,000
303
+ W h a.
304
+
305
+ 77
306
+ 00:07:02,000 --> 00:07:02,000
307
+ T.
308
+
309
+ 78
310
+ 00:07:02,000 --> 00:07:03,000
311
+ W g.
312
+
313
+ 79
314
+ 00:07:03,000 --> 00:07:12,000
315
+ Leaving standard and the de facto web standard for some time since the time each HTML was invented.
316
+
317
+ 80
318
+ 00:07:12,000 --> 00:07:15,000
319
+ There are lots of similar versions in market.
320
+
321
+ 81
322
+ 00:07:15,000 --> 00:07:22,000
323
+ The brief introduction about h html version is given on the sly h demo version one.
324
+
325
+ 82
326
+ 00:07:22,000 --> 00:07:30,000
327
+ The first version of H html was 1.0, which was a bare bones version of H html language.
328
+
329
+ 83
330
+ 00:07:31,000 --> 00:07:34,000
331
+ And it was released in 1990.
332
+
333
+ 84
334
+ 00:07:34,000 --> 00:07:34,000
335
+ First.
336
+
337
+ 85
338
+ 00:07:35,000 --> 00:07:37,000
339
+ HMO version 2.0.
340
+
341
+ 86
342
+ 00:07:38,000 --> 00:07:46,000
343
+ This was the next version which was released in 1994, and it was standard language version for website
344
+
345
+ 87
346
+ 00:07:46,000 --> 00:07:46,000
347
+ design.
348
+
349
+ 88
350
+ 00:07:47,000 --> 00:07:56,000
351
+ HTML 2.0 was able to support extra features such as form based file upload form elements such as text
352
+
353
+ 89
354
+ 00:07:56,000 --> 00:07:58,000
355
+ books, option button, etc..
356
+
357
+ 90
358
+ 00:07:59,000 --> 00:08:01,000
359
+ Extended Version 3.2.
360
+
361
+ 91
362
+ 00:08:02,000 --> 00:08:07,000
363
+ This version was published by W3C in early 1997.
364
+
365
+ 92
366
+ 00:08:07,000 --> 00:08:14,000
367
+ The version was capable of creating tables and providing support for extra options for form elements.
368
+
369
+ 93
370
+ 00:08:15,000 --> 00:08:20,000
371
+ It can also support a map page with complex mathematical equations.
372
+
373
+ 94
374
+ 00:08:21,000 --> 00:08:26,000
375
+ It became an official standards for any browser to generate in 1997.
376
+
377
+ 95
378
+ 00:08:26,000 --> 00:08:34,000
379
+ To date is practically supported by most of the web browsers interest and now 4.01.
380
+
381
+ 96
382
+ 00:08:35,000 --> 00:08:42,000
383
+ This version was released on December 1999 and it is very stable version of a similar language.
384
+
385
+ 97
386
+ 00:08:43,000 --> 00:08:50,000
387
+ This version provides added support for stylesheet and script and ability for various multimedia elements.
388
+
389
+ 98
390
+ 00:08:51,000 --> 00:08:56,000
391
+ H HTML5 is the newest version of Hypertext Markup Language.
392
+
393
+ 99
394
+ 00:08:56,000 --> 00:09:01,000
395
+ The first draft of this version was announced in January 2008.
396
+
397
+ 100
398
+ 00:09:02,000 --> 00:09:11,000
399
+ As we already discussed, the two major organizations, one is World Wide Web consortium and another
400
+
401
+ 101
402
+ 00:09:11,000 --> 00:09:14,000
403
+ one is Web Hypertext Application Technology Working Group.
404
+
405
+ 102
406
+ 00:09:15,000 --> 00:09:24,000
407
+ In July 2000, well W, HKT, WG, and W3C decided on a degree of separation.
408
+
409
+ 103
410
+ 00:09:24,000 --> 00:09:32,000
411
+ Nevertheless, receival continues a system of certification work, focusing on a single definitive standard,
412
+
413
+ 104
414
+ 00:09:33,000 --> 00:09:41,000
415
+ which is considered as a snapshot by w h at wg w h a t w g.
416
+
417
+ 105
418
+ 00:09:41,000 --> 00:09:44,000
419
+ Harmonization will continue its work with h HTML5.
420
+
421
+ 106
422
+ 00:09:44,000 --> 00:09:46,000
423
+ As in living standards.
424
+
425
+ 107
426
+ 00:09:46,000 --> 00:09:54,000
427
+ The concept of living standards is that it is never complete and is always being updated and improved.
428
+
429
+ 108
430
+ 00:09:55,000 --> 00:09:59,000
431
+ New features can be added, but functionality will not be removed.
432
+
433
+ 109
434
+ 00:10:00,000 --> 00:10:10,000
435
+ On October 28th of 2014, H HTML five was released as a stable W3C recommendation, meaning the specification
436
+
437
+ 110
438
+ 00:10:10,000 --> 00:10:11,000
439
+ process is complete.
440
+
441
+ 111
442
+ 00:10:12,000 --> 00:10:16,000
443
+ ZC To begin brief overview of HTML versions.
444
+
445
+ 112
446
+ 00:10:16,000 --> 00:10:22,000
447
+ Now let's review HTML features amongst each HTML features.
448
+
449
+ 113
450
+ 00:10:22,000 --> 00:10:24,000
451
+ It is worth to highlight the following.
452
+
453
+ 114
454
+ 00:10:24,000 --> 00:10:32,000
455
+ The once based email is a very easy and simple then, which can be easily understood and quantified.
456
+
457
+ 115
458
+ 00:10:32,000 --> 00:10:38,000
459
+ Each email is a markup language, so it provides a flexible way to design web pages.
460
+
461
+ 116
462
+ 00:10:38,000 --> 00:10:40,000
463
+ How long was a text?
464
+
465
+ 117
466
+ 00:10:41,000 --> 00:10:48,000
467
+ H HTML is a platform independent because it can be displayed on any platform like Windows, Linux and
468
+
469
+ 118
470
+ 00:10:48,000 --> 00:10:56,000
471
+ Mac or Apps, etc. The main things of the client have to have is a map browser that can, understands
472
+
473
+ 119
474
+ 00:10:56,000 --> 00:11:02,000
475
+ and markup, so HTML can be easy to read on the mobile browser.
476
+
477
+ 120
478
+ 00:11:02,000 --> 00:11:03,000
479
+ Mobile web browsers.
480
+
481
+ 121
482
+ 00:11:04,000 --> 00:11:12,000
483
+ Each HTML is a case insensitive language, which means we can use the user in lowercase or uppercase
484
+
485
+ 122
486
+ 00:11:13,000 --> 00:11:15,000
487
+ and now it is time for a demo.
488
+
489
+ 123
490
+ 00:11:16,000 --> 00:11:23,000
491
+ We are going to create our first HTML page and learn main tasks and its structure.
492
+
493
+ 124
494
+ 00:11:24,000 --> 00:11:27,000
495
+ The first things that we need to do is to create a HTML file.
496
+
497
+ 125
498
+ 00:11:27,000 --> 00:11:34,000
499
+ I'm going to use a clips I.D., but you can use any OSI ID you want or even a notepad.
500
+
501
+ 126
502
+ 00:11:34,000 --> 00:11:39,000
503
+ The only things that you need to do is to create file was HTML extension.
504
+
505
+ 127
506
+ 00:11:39,000 --> 00:11:46,000
507
+ During my java course we great online store with my students and that's why I want to create all demo
508
+
509
+ 128
510
+ 00:11:46,000 --> 00:11:49,000
511
+ files in our project that we created to gather use.
512
+
513
+ 129
514
+ 00:11:49,000 --> 00:11:57,000
515
+ Of course I make my list right click on my source folder as C main bit that I select in view.
516
+
517
+ 130
518
+ 00:11:58,000 --> 00:12:00,000
519
+ And after that I select each HTML.
520
+
521
+ 131
522
+ 00:12:01,000 --> 00:12:04,000
523
+ After that, I need to give a name to the new file.
524
+
525
+ 132
526
+ 00:12:04,000 --> 00:12:06,000
527
+ Let's call it index HTML.
528
+
529
+ 133
530
+ 00:12:07,000 --> 00:12:13,000
531
+ Basically, I would recommend to click finish here because to be honest, there is not so much things
532
+
533
+ 134
534
+ 00:12:13,000 --> 00:12:15,000
535
+ that we can configure in the HTML file.
536
+
537
+ 135
538
+ 00:12:16,000 --> 00:12:20,000
539
+ Most of the changes will be done directly in the source file.
540
+
541
+ 136
542
+ 00:12:21,000 --> 00:12:27,000
543
+ But just for the sake of the demo, let's click next button on the next step.
544
+
545
+ 137
546
+ 00:12:27,000 --> 00:12:31,000
547
+ You can select each HTML template, the one you like the most.
548
+
549
+ 138
550
+ 00:12:31,000 --> 00:12:34,000
551
+ The latest version based on the is HTML class.
552
+
553
+ 139
554
+ 00:12:35,000 --> 00:12:37,000
555
+ So let's select a demo file.
556
+
557
+ 140
558
+ 00:12:38,000 --> 00:12:40,000
559
+ Now we can click finish.
560
+
561
+ 141
562
+ 00:12:41,000 --> 00:12:48,000
563
+ We created template index each HTML file specially for this nascent appropriate example in order to
564
+
565
+ 142
566
+ 00:12:48,000 --> 00:12:52,000
567
+ save time during a video recording and don't make you wait.
568
+
569
+ 143
570
+ 00:12:52,000 --> 00:12:59,000
571
+ And while I will create all necessary text, let me paste my example and walk you through it and leave
572
+
573
+ 144
574
+ 00:12:59,000 --> 00:13:00,000
575
+ my comments as we go through.
576
+
577
+ 145
578
+ 00:13:01,000 --> 00:13:04,000
579
+ In the first line, we can see the time declaration.
580
+
581
+ 146
582
+ 00:13:04,000 --> 00:13:05,000
583
+ What is it?
584
+
585
+ 147
586
+ 00:13:06,000 --> 00:13:08,000
587
+ It defines the document type.
588
+
589
+ 148
590
+ 00:13:08,000 --> 00:13:15,000
591
+ Or in other words, it instructs the browser about the version of each HTML on the screen.
592
+
593
+ 149
594
+ 00:13:15,000 --> 00:13:19,000
595
+ You can see typical declaration of page two amount of version five.
596
+
597
+ 150
598
+ 00:13:20,000 --> 00:13:23,000
599
+ Previous HTML versions have another doctor declaration.
600
+
601
+ 151
602
+ 00:13:24,000 --> 00:13:28,000
603
+ All h html file consists of h html elements.
604
+
605
+ 152
606
+ 00:13:29,000 --> 00:13:37,000
607
+ Whereas the minimal element is everything from the start to the end, top elements can be nested.
608
+
609
+ 153
610
+ 00:13:38,000 --> 00:13:41,000
611
+ This means that elements can contain all the elements.
612
+
613
+ 154
614
+ 00:13:42,000 --> 00:13:51,000
615
+ All h HTML documents consist of nested XAML elements because usually in HMO it is only one element that
616
+
617
+ 155
618
+ 00:13:51,000 --> 00:13:55,000
619
+ is called H HTML, all other elements unmasked at once.
620
+
621
+ 156
622
+ 00:13:56,000 --> 00:13:59,000
623
+ After that we have the core h html.
624
+
625
+ 157
626
+ 00:13:59,000 --> 00:14:01,000
627
+ These are the scrolls h html.
628
+
629
+ 158
630
+ 00:14:01,000 --> 00:14:06,000
631
+ This stuff informs the browser h html documents.
632
+
633
+ 159
634
+ 00:14:07,000 --> 00:14:10,000
635
+ Tags between each HTML tag describes a web document.
636
+
637
+ 160
638
+ 00:14:11,000 --> 00:14:17,000
639
+ It is a container for all other elements of h html except docs type declaration.
640
+
641
+ 161
642
+ 00:14:18,000 --> 00:14:26,000
643
+ The next element is that it should be the first element inside the HTML element which contains the metadata
644
+
645
+ 162
646
+ 00:14:27,000 --> 00:14:28,000
647
+ information about the document.
648
+
649
+ 163
650
+ 00:14:29,000 --> 00:14:35,000
651
+ In this method, metadata usually will place information for search Roberts keywords on this page and
652
+
653
+ 164
654
+ 00:14:35,000 --> 00:14:37,000
655
+ short page description.
656
+
657
+ 165
658
+ 00:14:37,000 --> 00:14:41,000
659
+ Also, we can configure text and image for the short preview.
660
+
661
+ 166
662
+ 00:14:41,000 --> 00:14:49,000
663
+ Do you know the key when you show the is a Facebook or in another place there is an image and short
664
+
665
+ 167
666
+ 00:14:49,000 --> 00:14:52,000
667
+ text description about the meaning you provided.
668
+
669
+ 168
670
+ 00:14:52,000 --> 00:14:54,000
671
+ It is also configured here.
672
+
673
+ 169
674
+ 00:14:55,000 --> 00:15:02,000
675
+ Let me show it to you so you can see how I passed the reference to the image description title.
676
+
677
+ 170
678
+ 00:15:03,000 --> 00:15:11,000
679
+ By the way, there is a difference between title mentioned in the pack and a title tag title from the
680
+
681
+ 171
682
+ 00:15:11,000 --> 00:15:11,000
683
+ separate.
684
+
685
+ 172
686
+ 00:15:11,000 --> 00:15:14,000
687
+ Tag is a name of the top in the browser.
688
+
689
+ 173
690
+ 00:15:15,000 --> 00:15:19,000
691
+ Also, you can see example of keywords for search engines.
692
+
693
+ 174
694
+ 00:15:19,000 --> 00:15:23,000
695
+ This is an element of search engine optimization process.
696
+
697
+ 175
698
+ 00:15:24,000 --> 00:15:29,000
699
+ If you have ever heard about E optimization, this is just small cars.
700
+
701
+ 176
702
+ 00:15:30,000 --> 00:15:36,000
703
+ Also, you can see this declaration, loads of charts that used to read the characters on this page.
704
+
705
+ 177
706
+ 00:15:37,000 --> 00:15:43,000
707
+ These are examples of heart pack and meta information that we can place inside.
708
+
709
+ 178
710
+ 00:15:43,000 --> 00:15:45,000
711
+ Remembers these examples.
712
+
713
+ 179
714
+ 00:15:46,000 --> 00:15:49,000
715
+ The hashtag must be closed because it bought.
716
+
717
+ 180
718
+ 00:15:49,000 --> 00:15:50,000
719
+ It opens.
720
+
721
+ 181
722
+ 00:15:51,000 --> 00:15:59,000
723
+ The next stack is body text between what it describes the content of the page as is visible to the end
724
+
725
+ 182
726
+ 00:15:59,000 --> 00:15:59,000
727
+ user.
728
+
729
+ 183
730
+ 00:16:00,000 --> 00:16:04,000
731
+ This stack contains the main content of the HTML document.
732
+
733
+ 184
734
+ 00:16:05,000 --> 00:16:08,000
735
+ In our example, we place a few different headings.
736
+
737
+ 185
738
+ 00:16:08,000 --> 00:16:17,000
739
+ For example, heading one and heading to each HTML headings I defined was h one to h six tax.
740
+
741
+ 186
742
+ 00:16:17,000 --> 00:16:23,000
743
+ Search engines use the headings to index the structure and content of your web pages.
744
+
745
+ 187
746
+ 00:16:24,000 --> 00:16:27,000
747
+ Users often scheme a page by its headings.
748
+
749
+ 188
750
+ 00:16:28,000 --> 00:16:31,000
751
+ It is important to use headings to show the document structure.
752
+
753
+ 189
754
+ 00:16:32,000 --> 00:16:36,000
755
+ Also, we have two different paragraphs in this document.
756
+
757
+ 190
758
+ 00:16:37,000 --> 00:16:44,000
759
+ Each paragraph is printed from the UI because verse dimensions at some elements will display correctly,
760
+
761
+ 191
762
+ 00:16:45,000 --> 00:16:49,000
763
+ even if you forget the end like this paragraph.
764
+
765
+ 192
766
+ 00:16:50,000 --> 00:16:53,000
767
+ So any case will not close paragraph element here.
768
+
769
+ 193
770
+ 00:16:53,000 --> 00:16:55,000
771
+ Nothing horrible will happen.
772
+
773
+ 194
774
+ 00:16:56,000 --> 00:17:04,000
775
+ But still it is recommended to close each page the amount that you cannot be sure how each HTML will
776
+
777
+ 195
778
+ 00:17:04,000 --> 00:17:04,000
779
+ be displayed.
780
+
781
+ 196
782
+ 00:17:05,000 --> 00:17:12,000
783
+ Large or small screens and resize windows will create different results with each demo.
784
+
785
+ 197
786
+ 00:17:12,000 --> 00:17:19,000
787
+ You can change the display by adding extra spaces or extra lines in a simple code.
788
+
789
+ 198
790
+ 00:17:20,000 --> 00:17:25,000
791
+ The browser will automatically remove any extra spaces and lines when the page is displayed.
792
+
793
+ 199
794
+ 00:17:26,000 --> 00:17:29,000
795
+ This should be done with special styles.
796
+
797
+ 200
798
+ 00:17:30,000 --> 00:17:33,000
799
+ We're going to see assess in a separate lesson.
800
+
801
+ 201
802
+ 00:17:34,000 --> 00:17:40,000
803
+ If you want to make a hyper reference to another page, then we have to use eight elements and each
804
+
805
+ 202
806
+ 00:17:41,000 --> 00:17:47,000
807
+ attribute attributes are used to provide additional information about HTML elements.
808
+
809
+ 203
810
+ 00:17:48,000 --> 00:17:54,000
811
+ For example, in case we want to open a link in the tap, then we have to use another attribute that
812
+
813
+ 204
814
+ 00:17:54,000 --> 00:17:57,000
815
+ is called target and value.
816
+
817
+ 205
818
+ 00:17:57,000 --> 00:18:02,000
819
+ Underscore that how I learned this from the official documentation.
820
+
821
+ 206
822
+ 00:18:03,000 --> 00:18:09,000
823
+ I believe if you manage to get to this lesson, you already know how to find information on the Internet,
824
+
825
+ 207
826
+ 00:18:09,000 --> 00:18:11,000
827
+ especially technical documentation.
828
+
829
+ 208
830
+ 00:18:12,000 --> 00:18:19,000
831
+ You can Google technical documentation for any HTML element and find all possible attributes of the
832
+
833
+ 209
834
+ 00:18:19,000 --> 00:18:21,000
835
+ element and its values.
836
+
837
+ 210
838
+ 00:18:22,000 --> 00:18:26,000
839
+ Then the standard attributes are Let me sum it up.
840
+
841
+ 211
842
+ 00:18:27,000 --> 00:18:29,000
843
+ All elements can have attributes.
844
+
845
+ 212
846
+ 00:18:30,000 --> 00:18:33,000
847
+ Attributes provide additional information about elements.
848
+
849
+ 213
850
+ 00:18:34,000 --> 00:18:37,000
851
+ Attributes are always specified in the start pack.
852
+
853
+ 214
854
+ 00:18:38,000 --> 00:18:43,000
855
+ Attributes usually common name value pairs like name value.
856
+
857
+ 215
858
+ 00:18:44,000 --> 00:18:48,000
859
+ The external standard does not require a lowercase attribute names.
860
+
861
+ 216
862
+ 00:18:49,000 --> 00:18:54,000
863
+ However, W3C recommends lowercase attributes in HTML.
864
+
865
+ 217
866
+ 00:18:54,000 --> 00:18:59,000
867
+ The Asian standard does not require quotes around attributes values.
868
+
869
+ 218
870
+ 00:19:00,000 --> 00:19:04,000
871
+ However, W3C recommends quotes in HMO.
872
+
873
+ 219
874
+ 00:19:05,000 --> 00:19:06,000
875
+ Single Quotes a double quotes.
876
+
877
+ 220
878
+ 00:19:07,000 --> 00:19:09,000
879
+ Double quotes around attributes.
880
+
881
+ 221
882
+ 00:19:09,000 --> 00:19:11,000
883
+ Values are the most common in HTML.
884
+
885
+ 222
886
+ 00:19:12,000 --> 00:19:19,000
887
+ But single quotes can also be used in some situations when the attributes value itself contains double
888
+
889
+ 223
890
+ 00:19:19,000 --> 00:19:19,000
891
+ quotes.
892
+
893
+ 224
894
+ 00:19:19,000 --> 00:19:22,000
895
+ It is necessary to use single quotes.
896
+
897
+ 225
898
+ 00:19:23,000 --> 00:19:27,000
899
+ One more thing that I'd like to know is how to use HTML comments.
900
+
901
+ 226
902
+ 00:19:28,000 --> 00:19:31,000
903
+ There is a specific syntax that looks like this.
904
+
905
+ 227
906
+ 00:19:31,000 --> 00:19:33,000
907
+ The comments are age html content.
908
+
909
+ 228
910
+ 00:19:34,000 --> 00:19:38,000
911
+ You can use this syntax to comment your HTML content.
912
+
913
+ 229
914
+ 00:19:39,000 --> 00:19:45,000
915
+ The image can be inserted easily using the IMG tag and its source attribute.
916
+
917
+ 230
918
+ 00:19:46,000 --> 00:19:49,000
919
+ Images are not technically inserted into that page.
920
+
921
+ 231
922
+ 00:19:50,000 --> 00:19:52,000
923
+ Images are linked to their pages.
924
+
925
+ 232
926
+ 00:19:53,000 --> 00:19:57,000
927
+ The image stack creates a holding space for the referenced image.
928
+
929
+ 233
930
+ 00:19:57,000 --> 00:19:59,000
931
+ The image stack is empty.
932
+
933
+ 234
934
+ 00:19:59,000 --> 00:20:05,000
935
+ It contains attributes only and doesn't have a closing to the image.
936
+
937
+ 235
938
+ 00:20:05,000 --> 00:20:07,000
939
+ Stock has two required attributes.
940
+
941
+ 236
942
+ 00:20:08,000 --> 00:20:08,000
943
+ Zero.
944
+
945
+ 237
946
+ 00:20:09,000 --> 00:20:14,000
947
+ S.A.C. specifies the cost as an image and all.
948
+
949
+ 238
950
+ 00:20:15,000 --> 00:20:21,000
951
+ Specifies an alternate text for the image in case image won't be loaded for some reasons.
952
+
953
+ 239
954
+ 00:20:22,000 --> 00:20:24,000
955
+ This tax will be displayed.
956
+
957
+ 240
958
+ 00:20:25,000 --> 00:20:25,000
959
+ Let me then.
960
+
961
+ 241
962
+ 00:20:25,000 --> 00:20:28,000
963
+ When you image here here you can see image stack.
964
+
965
+ 242
966
+ 00:20:29,000 --> 00:20:35,000
967
+ I will use the reference to the website of my learning online university where I store some media.
968
+
969
+ 243
970
+ 00:20:36,000 --> 00:20:44,000
971
+ Also pay attention to some optional attributes we can configure hide and weeds of the HTML element.
972
+
973
+ 244
974
+ 00:20:44,000 --> 00:20:46,000
975
+ This value is in pixels.
976
+
977
+ 245
978
+ 00:20:47,000 --> 00:20:54,000
979
+ That's why, depending on the screen resolution of the client, the physical size of the image might
980
+
981
+ 246
982
+ 00:20:54,000 --> 00:20:55,000
983
+ be different.
984
+
985
+ 247
986
+ 00:20:55,000 --> 00:21:01,000
987
+ You can also set a relative size in percents, just size in relation with the screen.
988
+
989
+ 248
990
+ 00:21:03,000 --> 00:21:05,000
991
+ WOZA was female.
992
+
993
+ 249
994
+ 00:21:05,000 --> 00:21:08,000
995
+ We can create tables to present data in a structured way.
996
+
997
+ 250
998
+ 00:21:09,000 --> 00:21:10,000
999
+ Everything is simple here.
1000
+
1001
+ 251
1002
+ 00:21:11,000 --> 00:21:12,000
1003
+ Let me explain.
1004
+
1005
+ 252
1006
+ 00:21:13,000 --> 00:21:13,000
1007
+ Zero.
1008
+
1009
+ 253
1010
+ 00:21:13,000 --> 00:21:14,000
1011
+ Table.
1012
+
1013
+ 254
1014
+ 00:21:14,000 --> 00:21:15,000
1015
+ Tech is cool.
1016
+
1017
+ 255
1018
+ 00:21:15,000 --> 00:21:15,000
1019
+ Table.
1020
+
1021
+ 256
1022
+ 00:21:16,000 --> 00:21:19,000
1023
+ This is logically easy to understand.
1024
+
1025
+ 257
1026
+ 00:21:20,000 --> 00:21:25,000
1027
+ After that, we have t r that you can read this table.
1028
+
1029
+ 258
1030
+ 00:21:26,000 --> 00:21:29,000
1031
+ I believe this will help you to remember it better.
1032
+
1033
+ 259
1034
+ 00:21:29,000 --> 00:21:31,000
1035
+ Table row may consist.
1036
+
1037
+ 260
1038
+ 00:21:32,000 --> 00:21:36,000
1039
+ These are from table headers or from table data.
1040
+
1041
+ 261
1042
+ 00:21:37,000 --> 00:21:42,000
1043
+ Each of these stacks represents new column Z, though one by one.
1044
+
1045
+ 262
1046
+ 00:21:43,000 --> 00:21:44,000
1047
+ Table has border attributes.
1048
+
1049
+ 263
1050
+ 00:21:44,000 --> 00:21:47,000
1051
+ It can define how second borders will be.
1052
+
1053
+ 264
1054
+ 00:21:48,000 --> 00:21:56,000
1055
+ So after the next hour that we have the next role, we're going to see how this looks like in a minute.
1056
+
1057
+ 265
1058
+ 00:21:57,000 --> 00:22:05,000
1059
+ And that's because we say that I would like to demo the date of this demo lease can be ordered and on
1060
+
1061
+ 266
1062
+ 00:22:05,000 --> 00:22:15,000
1063
+ order an order at least it starts with that you out that each list item starts with a l i fact list
1064
+
1065
+ 267
1066
+ 00:22:15,000 --> 00:22:16,000
1067
+ item.
1068
+
1069
+ 268
1070
+ 00:22:17,000 --> 00:22:25,000
1071
+ The list items will be marked with bullets by default and order at least starts with a or l tag.
1072
+
1073
+ 269
1074
+ 00:22:26,000 --> 00:22:28,000
1075
+ Each list item starts with a l.
1076
+
1077
+ 270
1078
+ 00:22:28,000 --> 00:22:32,000
1079
+ I take this same as in an order.
1080
+
1081
+ 271
1082
+ 00:22:32,000 --> 00:22:36,000
1083
+ At least the list items will be marked with numbers by default.
1084
+
1085
+ 272
1086
+ 00:22:37,000 --> 00:22:42,000
1087
+ Let's open our HTML page now and take into account we are dealing with static content.
1088
+
1089
+ 273
1090
+ 00:22:43,000 --> 00:22:51,000
1091
+ We shouldn't run our web server on your file system, usually h html files by default associated with
1092
+
1093
+ 274
1094
+ 00:22:51,000 --> 00:22:53,000
1095
+ your default web browser.
1096
+
1097
+ 275
1098
+ 00:22:53,000 --> 00:22:55,000
1099
+ So it would be enough.
1100
+
1101
+ 276
1102
+ 00:22:55,000 --> 00:22:59,000
1103
+ Just double click them to open them in your favorite browser.
1104
+
1105
+ 277
1106
+ 00:22:59,000 --> 00:23:06,000
1107
+ Inside the eclipse only we can make most radically open ways and select the web browser.
1108
+
1109
+ 278
1110
+ 00:23:06,000 --> 00:23:11,000
1111
+ Eclipse will use built in web browser to present the content of our web page.
1112
+
1113
+ 279
1114
+ 00:23:12,000 --> 00:23:14,000
1115
+ Pay attention to the title of the tab.
1116
+
1117
+ 280
1118
+ 00:23:15,000 --> 00:23:17,000
1119
+ You can see different headings.
1120
+
1121
+ 281
1122
+ 00:23:17,000 --> 00:23:19,000
1123
+ Paragraph values looks similar.
1124
+
1125
+ 282
1126
+ 00:23:20,000 --> 00:23:23,000
1127
+ We can also test hyper references.
1128
+
1129
+ 283
1130
+ 00:23:23,000 --> 00:23:31,000
1131
+ The first one or direct us to another website and the second one will open in a new tab.
1132
+
1133
+ 284
1134
+ 00:23:32,000 --> 00:23:36,000
1135
+ As you can see, that is how hypertext markup language works.
1136
+
1137
+ 285
1138
+ 00:23:37,000 --> 00:23:42,000
1139
+ Here you can see two images with size a set in pixels and with relative size.
1140
+
1141
+ 286
1142
+ 00:23:43,000 --> 00:23:47,000
1143
+ Table was configured with precise order and order at least.
1144
+
1145
+ 287
1146
+ 00:23:48,000 --> 00:23:51,000
1147
+ Let me also show you one more thing.
1148
+
1149
+ 288
1150
+ 00:23:52,000 --> 00:23:58,000
1151
+ Let's open this page in Chrome browser, because browsers usually have advanced tools for debugging
1152
+
1153
+ 289
1154
+ 00:23:58,000 --> 00:24:00,000
1155
+ and inspections of the web content.
1156
+
1157
+ 290
1158
+ 00:24:01,000 --> 00:24:05,000
1159
+ Make mouse right, click in the area and select inspect.
1160
+
1161
+ 291
1162
+ 00:24:06,000 --> 00:24:08,000
1163
+ Or you can just click F12 key.
1164
+
1165
+ 292
1166
+ 00:24:09,000 --> 00:24:14,000
1167
+ This will open development tools when you select elements menu.
1168
+
1169
+ 293
1170
+ 00:24:14,000 --> 00:24:17,000
1171
+ You can investigate all elements on the web page.
1172
+
1173
+ 294
1174
+ 00:24:17,000 --> 00:24:23,000
1175
+ You can even change elements on the fly and see how representation will be changed.
1176
+
1177
+ 295
1178
+ 00:24:24,000 --> 00:24:28,000
1179
+ For example, let me change hidden icons ahead in three.
1180
+
1181
+ 296
1182
+ 00:24:29,000 --> 00:24:34,000
1183
+ I can do it easily by clicking twice, most likely a little bit late things.
1184
+
1185
+ 297
1186
+ 00:24:34,000 --> 00:24:40,000
1187
+ Of course we are going to know what to assess is and you will be able also to change easily.
1188
+
1189
+ 298
1190
+ 00:24:40,000 --> 00:24:46,000
1191
+ See, assess here on the fly in order to test how changes will affect current view.
1192
+
1193
+ 299
1194
+ 00:24:47,000 --> 00:24:49,000
1195
+ That's all what I wanted to share with you today.
1196
+
1197
+ 300
1198
+ 00:24:49,000 --> 00:24:52,000
1199
+ Let's recap what we have learned in this lesson.
1200
+
1201
+ 301
1202
+ 00:24:53,000 --> 00:24:58,000
1203
+ In this lesson we'll go to what amount is also explained.
1204
+
1205
+ 302
1206
+ 00:24:58,000 --> 00:25:09,000
1207
+ History of h html will support h html and learn such organizations as W3C and w h t WG.
1208
+
1209
+ 303
1210
+ 00:25:10,000 --> 00:25:15,000
1211
+ Now you know what the end goal is really different html versions.
1212
+
1213
+ 304
1214
+ 00:25:16,000 --> 00:25:20,000
1215
+ During the lesson, I draw attention to the main h html features.
1216
+
1217
+ 305
1218
+ 00:25:21,000 --> 00:25:24,000
1219
+ Together, we created our first h html page.
1220
+
1221
+ 306
1222
+ 00:25:25,000 --> 00:25:31,000
1223
+ We have used the basic HTML file structure and we learned main HTML elements.
1224
+
1225
+ 307
1226
+ 00:25:31,000 --> 00:25:39,000
1227
+ I explained what h html animals attributes are also very simple comments, tables and lists.
1228
+
1229
+ 308
1230
+ 00:25:40,000 --> 00:25:44,000
1231
+ And at the end of the lesson I showed you how to work with Chrome.
1232
+
1233
+ 309
1234
+ 00:25:44,000 --> 00:25:45,000
1235
+ That's those.
1236
+
1237
+ 310
1238
+ 00:25:45,000 --> 00:25:47,000
1239
+ That's all for this lesson.
1240
+
1241
+ 311
1242
+ 00:25:47,000 --> 00:25:49,000
1243
+ Thanks a lot for your attention.
1244
+
1245
+ 312
1246
+ 00:25:49,000 --> 00:25:51,000
1247
+ Have a great day and see you.
1248
+
1249
+ 313
1250
+ 00:25:51,000 --> 00:25:52,000
1251
+ Next lesson.
1252
+
65 - HTML & CSS/001 Source-code-of-the-HTML-file-example-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/index.html
65 - HTML & CSS/002 CSS-source-code.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/css/styles.css
65 - HTML & CSS/002 HTML-with-CSS-source-code.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/css-demo.html
65 - HTML & CSS/002 СSS Basics_en.srt ADDED
@@ -0,0 +1,1312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, team.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:10,000
7
+ In this lesson, we're going to learn what Koskinen style sheets are.
8
+
9
+ 3
10
+ 00:00:11,000 --> 00:00:19,000
11
+ We'll start from the of basic definitions, like what is a thesis and what its goals will review advantages
12
+
13
+ 4
14
+ 00:00:19,000 --> 00:00:21,000
15
+ of to assess and why we have to use it.
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:29,000
19
+ After learning, this piece of theory will jump to more practical topics and we'll start note and see
20
+
21
+ 6
22
+ 00:00:29,000 --> 00:00:30,000
23
+ syntax.
24
+
25
+ 7
26
+ 00:00:30,000 --> 00:00:35,000
27
+ Important part of this lesson will be understanding of theses selectors.
28
+
29
+ 8
30
+ 00:00:35,000 --> 00:00:44,000
31
+ We're going to learn the element idea plus universal and group and selectors separately will review
32
+
33
+ 9
34
+ 00:00:44,000 --> 00:00:45,000
35
+ attributes selectors.
36
+
37
+ 10
38
+ 00:00:46,000 --> 00:00:53,000
39
+ I will explain what civic classes in CSR we're going to have practical activity today with funeral and
40
+
41
+ 11
42
+ 00:00:53,000 --> 00:01:00,000
43
+ CAC files will learn how the work was in line to assess the child's assessed and external.
44
+
45
+ 12
46
+ 00:01:00,000 --> 00:01:05,000
47
+ To assess, I'm going to show you how to work with sucess in Chrome death.
48
+
49
+ 13
50
+ 00:01:05,000 --> 00:01:11,000
51
+ Those will learn how to use comments and systems and that answers a lesson.
52
+
53
+ 14
54
+ 00:01:11,000 --> 00:01:15,000
55
+ We're going to talk about the whole list of SAS properties.
56
+
57
+ 15
58
+ 00:01:15,000 --> 00:01:17,000
59
+ Let's start our lesson.
60
+
61
+ 16
62
+ 00:01:18,000 --> 00:01:25,000
63
+ Let's learn what a C assess s c says is an acronym that stands for Cascading Style Sheets.
64
+
65
+ 17
66
+ 00:01:26,000 --> 00:01:33,000
67
+ It is a stylesheet language which is used to describe the look and form lining of a document and in
68
+
69
+ 18
70
+ 00:01:33,000 --> 00:01:37,000
71
+ markup language it provides an additional feature to h html.
72
+
73
+ 19
74
+ 00:01:37,000 --> 00:01:46,000
75
+ This is generally used was HTML to change the style of web pages and user either faces to assess is
76
+
77
+ 20
78
+ 00:01:46,000 --> 00:01:53,000
79
+ used together with H, HTML and JavaScript in most websites nowadays to create user interfaces for web
80
+
81
+ 21
82
+ 00:01:53,000 --> 00:02:02,000
83
+ applications and user interfaces for many mobile applications, the name scanning comes from specified
84
+
85
+ 22
86
+ 00:02:02,000 --> 00:02:09,000
87
+ priorities key to determine which style rule applies if more than one launches a particular element,
88
+
89
+ 23
90
+ 00:02:10,000 --> 00:02:13,000
91
+ this cascading priority scale is predictable.
92
+
93
+ 24
94
+ 00:02:14,000 --> 00:02:22,000
95
+ He says, is used to define styles for your pages, including the design, layout and variations in
96
+
97
+ 25
98
+ 00:02:22,000 --> 00:02:30,000
99
+ display for different devices and screen sizes when tasks like form and color are to use for added to
100
+
101
+ 26
102
+ 00:02:30,000 --> 00:02:39,000
103
+ the Asian or 3.2 specification, it started a nightmare for web developers development of large websites
104
+
105
+ 27
106
+ 00:02:39,000 --> 00:02:47,000
107
+ where fonts and color information that added to every single page became a long and expensive process.
108
+
109
+ 28
110
+ 00:02:48,000 --> 00:02:56,000
111
+ To solve this problem, the World Wide Web consortium created to assess, see, assess and remove this
112
+
113
+ 29
114
+ 00:02:56,000 --> 00:02:58,000
115
+ style from modern forms of page.
116
+
117
+ 30
118
+ 00:02:59,000 --> 00:03:03,000
119
+ The style definitions are normally safe in external cases files.
120
+
121
+ 31
122
+ 00:03:04,000 --> 00:03:09,000
123
+ So to sum it up, here are a few important points about assess.
124
+
125
+ 32
126
+ 00:03:10,000 --> 00:03:15,000
127
+ First of all, definition see says stands for canyon style sheets.
128
+
129
+ 33
130
+ 00:03:16,000 --> 00:03:21,000
131
+ These says describes how each HTML elements are to be displayed on the screen.
132
+
133
+ 34
134
+ 00:03:22,000 --> 00:03:24,000
135
+ This saves a lot of work.
136
+
137
+ 35
138
+ 00:03:24,000 --> 00:03:28,000
139
+ You can control the layout of multiple web pages all at once.
140
+
141
+ 36
142
+ 00:03:29,000 --> 00:03:33,000
143
+ External style sheets are stored in CCIS files.
144
+
145
+ 37
146
+ 00:03:34,000 --> 00:03:37,000
147
+ Let's briefly talk about theses versions and variations.
148
+
149
+ 38
150
+ 00:03:38,000 --> 00:03:41,000
151
+ CS SAS has various levels and profiles.
152
+
153
+ 39
154
+ 00:03:41,000 --> 00:03:50,000
155
+ Each level of CS SAS builds upon the last typically and a new features and typically denoted as theses
156
+
157
+ 40
158
+ 00:03:50,000 --> 00:03:58,000
159
+ one two substitutes as a three and C assess, four profiles are typically a subset of one or more levels
160
+
161
+ 41
162
+ 00:03:58,000 --> 00:04:02,000
163
+ of C assessed build for a particular device or user interface.
164
+
165
+ 42
166
+ 00:04:03,000 --> 00:04:09,000
167
+ Currently, there are profiles for mobile devices, printers and television sets.
168
+
169
+ 43
170
+ 00:04:09,000 --> 00:04:15,000
171
+ Profiles should not be confused with media types which were added in C.
172
+
173
+ 44
174
+ 00:04:15,000 --> 00:04:22,000
175
+ Assess to the first user specification to become an official W3C Recommendation Enthusiast Level one
176
+
177
+ 45
178
+ 00:04:23,000 --> 00:04:26,000
179
+ published on 17th December 1996.
180
+
181
+ 46
182
+ 00:04:27,000 --> 00:04:36,000
183
+ Since this Level two specification was developed by W3C and published as a recommendation in May 1998.
184
+
185
+ 47
186
+ 00:04:36,000 --> 00:04:44,000
187
+ Unlike Scissors two, which is a large single specification defined in various features, theses three
188
+
189
+ 48
190
+ 00:04:44,000 --> 00:04:49,000
191
+ is divided into several separate documents called modules.
192
+
193
+ 49
194
+ 00:04:49,000 --> 00:04:59,000
195
+ Each module adds new capabilities or extends features defined in C says to preserve in backwards compatibility.
196
+
197
+ 50
198
+ 00:04:59,000 --> 00:05:06,000
199
+ There is no single integrated services for specification because the specification has been split into
200
+
201
+ 51
202
+ 00:05:06,000 --> 00:05:10,000
203
+ many separate modules which level independently.
204
+
205
+ 52
206
+ 00:05:11,000 --> 00:05:18,000
207
+ Let's now discuss goals of use and to assess the main goal of t assess is to separate concerns between
208
+
209
+ 53
210
+ 00:05:18,000 --> 00:05:21,000
211
+ the presentation and content.
212
+
213
+ 54
214
+ 00:05:22,000 --> 00:05:24,000
215
+ It wasn't always been like this.
216
+
217
+ 55
218
+ 00:05:24,000 --> 00:05:25,000
219
+ Long time ago.
220
+
221
+ 56
222
+ 00:05:25,000 --> 00:05:34,000
223
+ You created each page and you only could style your elements inside the document sets, patterns, colors,
224
+
225
+ 57
226
+ 00:05:34,000 --> 00:05:35,000
227
+ etc..
228
+
229
+ 58
230
+ 00:05:36,000 --> 00:05:37,000
231
+ Is it so bad?
232
+
233
+ 59
234
+ 00:05:37,000 --> 00:05:39,000
235
+ Let's think about it.
236
+
237
+ 60
238
+ 00:05:39,000 --> 00:05:48,000
239
+ By the way, even today we can style HD elements inside a document by adding style attributes and adding
240
+
241
+ 61
242
+ 00:05:48,000 --> 00:05:51,000
243
+ value to this attribute later today.
244
+
245
+ 62
246
+ 00:05:51,000 --> 00:05:57,000
247
+ As a practical demo, I'm going to show you how to use in Line Sucess.
248
+
249
+ 63
250
+ 00:05:57,000 --> 00:06:01,000
251
+ But this can work with one single page at the university.
252
+
253
+ 64
254
+ 00:06:01,000 --> 00:06:04,000
255
+ This is not the best solution for the production scale.
256
+
257
+ 65
258
+ 00:06:04,000 --> 00:06:05,000
259
+ Why?
260
+
261
+ 66
262
+ 00:06:05,000 --> 00:06:11,000
263
+ Imagine that you have dozens of web pages and you have the same green button on each page.
264
+
265
+ 67
266
+ 00:06:12,000 --> 00:06:12,000
267
+ What should you do?
268
+
269
+ 68
270
+ 00:06:13,000 --> 00:06:18,000
271
+ That style attribute to each element on each page where you have this button.
272
+
273
+ 69
274
+ 00:06:19,000 --> 00:06:20,000
275
+ Okay.
276
+
277
+ 70
278
+ 00:06:20,000 --> 00:06:20,000
279
+ This would be fun.
280
+
281
+ 71
282
+ 00:06:21,000 --> 00:06:28,000
283
+ But even more fun to come when you would realize that you need to make changes to the boss and style.
284
+
285
+ 72
286
+ 00:06:29,000 --> 00:06:33,000
287
+ Imagine the T to change its color from green to the light green.
288
+
289
+ 73
290
+ 00:06:34,000 --> 00:06:40,000
291
+ This would mean that you need to update this style in all documents where you have this element.
292
+
293
+ 74
294
+ 00:06:41,000 --> 00:06:44,000
295
+ This is not the best way to approach this challenge.
296
+
297
+ 75
298
+ 00:06:44,000 --> 00:06:50,000
299
+ That's why separation of concerns between the content and presentation is a good idea.
300
+
301
+ 76
302
+ 00:06:51,000 --> 00:06:58,000
303
+ You have to use scratch styles for elements and you have each HTML file that describes the content of
304
+
305
+ 77
306
+ 00:06:58,000 --> 00:06:59,000
307
+ the page.
308
+
309
+ 78
310
+ 00:07:00,000 --> 00:07:07,000
311
+ When you need to adjust styles, you fix to assess and you can use the same sucess on different HMO
312
+
313
+ 79
314
+ 00:07:07,000 --> 00:07:08,000
315
+ pages.
316
+
317
+ 80
318
+ 00:07:08,000 --> 00:07:15,000
319
+ In this particular example, you can change color of the button in one place in this file, and color
320
+
321
+ 81
322
+ 00:07:15,000 --> 00:07:23,000
323
+ will be changed on all web pages where this element is used, among other goals that you want to reach
324
+
325
+ 82
326
+ 00:07:23,000 --> 00:07:25,000
327
+ with the help of sucess.
328
+
329
+ 83
330
+ 00:07:25,000 --> 00:07:31,000
331
+ It is worth mentioning the following wants this operation to improve content accessibility.
332
+
333
+ 84
334
+ 00:07:32,000 --> 00:07:38,000
335
+ To provide more flexibility and control in the specification of the presentation characteristics is
336
+
337
+ 85
338
+ 00:07:38,000 --> 00:07:46,000
339
+ also can be named as one of the goals to enable multiple web pages to share for modern by specifying
340
+
341
+ 86
342
+ 00:07:46,000 --> 00:07:54,000
343
+ irrelevancy assessed in a separate file, which reduces complexity and repetition in the structural
344
+
345
+ 87
346
+ 00:07:54,000 --> 00:07:54,000
347
+ content.
348
+
349
+ 88
350
+ 00:07:55,000 --> 00:08:00,000
351
+ Enables us to use this file to be cached and improves the page load speed.
352
+
353
+ 89
354
+ 00:08:00,000 --> 00:08:09,000
355
+ The decrease of pages that she has a file is formatted to use us also has rules for alternate for modern
356
+
357
+ 90
358
+ 00:08:09,000 --> 00:08:12,000
359
+ it was a quantum is accessed on a mobile device.
360
+
361
+ 91
362
+ 00:08:13,000 --> 00:08:17,000
363
+ CSX can describe styles for specific events with elements.
364
+
365
+ 92
366
+ 00:08:17,000 --> 00:08:21,000
367
+ For example, the change color of the bottom on hover event.
368
+
369
+ 93
370
+ 00:08:22,000 --> 00:08:28,000
371
+ This when the mouse pointer is over the element on the web page, just as an example.
372
+
373
+ 94
374
+ 00:08:29,000 --> 00:08:32,000
375
+ And now let's discuss advantages of using sucess.
376
+
377
+ 95
378
+ 00:08:33,000 --> 00:08:42,000
379
+ This solves a big problem because you assess facts like font color, background style, element alignments,
380
+
381
+ 96
382
+ 00:08:42,000 --> 00:08:46,000
383
+ water and size have to be repeated on every web page.
384
+
385
+ 97
386
+ 00:08:46,000 --> 00:08:49,000
387
+ This was a very long process.
388
+
389
+ 98
390
+ 00:08:49,000 --> 00:08:55,000
391
+ For example, like we already discussed, when we talk about users goals, if you are developing a large
392
+
393
+ 99
394
+ 00:08:55,000 --> 00:09:04,000
395
+ website where fonts and conservation are added on every single page, it will become a long and expensive
396
+
397
+ 100
398
+ 00:09:04,000 --> 00:09:05,000
399
+ process.
400
+
401
+ 101
402
+ 00:09:06,000 --> 00:09:08,000
403
+ You says was created to solve this problem.
404
+
405
+ 102
406
+ 00:09:08,000 --> 00:09:11,000
407
+ It was a W3C recommendation.
408
+
409
+ 103
410
+ 00:09:12,000 --> 00:09:20,000
411
+ To say so a lot of time since a style definitions are safe and external uses files so it is possible
412
+
413
+ 104
414
+ 00:09:20,000 --> 00:09:28,000
415
+ to change his entire website by changing just one file provides more attributes to assess.
416
+
417
+ 105
418
+ 00:09:28,000 --> 00:09:36,000
419
+ Provides more detailed attributes is in plain HTML two defines the load and feel of the website that
420
+
421
+ 106
422
+ 00:09:36,000 --> 00:09:41,000
423
+ to have gotten see assessing the managers and believes that now we are ready to proceed was not enough
424
+
425
+ 107
426
+ 00:09:41,000 --> 00:09:44,000
427
+ to assess impacts that see.
428
+
429
+ 108
430
+ 00:09:44,000 --> 00:09:52,000
431
+ The SAS rule consists of a selector and the declaration block the selector that points to the H2 element
432
+
433
+ 109
434
+ 00:09:52,000 --> 00:09:53,000
435
+ you want to style.
436
+
437
+ 110
438
+ 00:09:54,000 --> 00:09:59,000
439
+ This declaration law contains one or more declarations separated by semicolons.
440
+
441
+ 111
442
+ 00:10:00,000 --> 00:10:06,000
443
+ Each declaration includes access, property, name and the value separated by column.
444
+
445
+ 112
446
+ 00:10:07,000 --> 00:10:13,000
447
+ Multiple C says declarations are separated with semicolons and declaration.
448
+
449
+ 113
450
+ 00:10:13,000 --> 00:10:16,000
451
+ Blocks are surrounded by candidate bases.
452
+
453
+ 114
454
+ 00:10:16,000 --> 00:10:17,000
455
+ What is?
456
+
457
+ 115
458
+ 00:10:17,000 --> 00:10:18,000
459
+ It's a selector.
460
+
461
+ 116
462
+ 00:10:19,000 --> 00:10:26,000
463
+ Let's use a selector selects each element of musical elements that you want to style.
464
+
465
+ 117
466
+ 00:10:26,000 --> 00:10:32,000
467
+ It is important for us to know how to use these selectors because we are going to use them not only
468
+
469
+ 118
470
+ 00:10:32,000 --> 00:10:38,000
471
+ in those files, we can also use them in JavaScript code and even in Java code.
472
+
473
+ 119
474
+ 00:10:39,000 --> 00:10:41,000
475
+ For example, the surveying of cab driver.
476
+
477
+ 120
478
+ 00:10:42,000 --> 00:10:50,000
479
+ We can search animals by to use a selector from Java code and we will use to assess selectors to find
480
+
481
+ 121
482
+ 00:10:50,000 --> 00:10:53,000
483
+ elements on the map page with the help of JavaScript.
484
+
485
+ 122
486
+ 00:10:54,000 --> 00:11:00,000
487
+ So just believe me, we have to learn how to work the selectors and this is important.
488
+
489
+ 123
490
+ 00:11:01,000 --> 00:11:08,000
491
+ So see us as selectors are used to find will select the each terminal animals we want to style.
492
+
493
+ 124
494
+ 00:11:09,000 --> 00:11:14,000
495
+ We can divide census selectors into five main categories.
496
+
497
+ 125
498
+ 00:11:15,000 --> 00:11:25,000
499
+ C SS element selector CSA selector csa s+ selector to associate reversal selector and C is SAS select.
500
+
501
+ 126
502
+ 00:11:26,000 --> 00:11:30,000
503
+ In this lesson I will explain to SAS selectors.
504
+
505
+ 127
506
+ 00:11:31,000 --> 00:11:33,000
507
+ Let's start from element selector.
508
+
509
+ 128
510
+ 00:11:34,000 --> 00:11:39,000
511
+ The element selector selects elements based on the element name.
512
+
513
+ 129
514
+ 00:11:40,000 --> 00:11:46,000
515
+ It can be absolutely any HTML element and internal embraces will specify its styles.
516
+
517
+ 130
518
+ 00:11:47,000 --> 00:11:55,000
519
+ On this slide you can see example where I use a paragraph element to declare styles for all paragraph
520
+
521
+ 131
522
+ 00:11:55,000 --> 00:11:55,000
523
+ elements.
524
+
525
+ 132
526
+ 00:11:56,000 --> 00:11:59,000
527
+ This is how element selector slide.
528
+
529
+ 133
530
+ 00:12:00,000 --> 00:12:06,000
531
+ Zaidi selector uses ID attributes of an Asian element to select a specific element.
532
+
533
+ 134
534
+ 00:12:07,000 --> 00:12:16,000
535
+ The idea of an element is unique within a page, so the idea selector is used to select one unique element.
536
+
537
+ 135
538
+ 00:12:17,000 --> 00:12:24,000
539
+ This is important to understand because with the help of other selectors like Element Selector, you
540
+
541
+ 136
542
+ 00:12:24,000 --> 00:12:31,000
543
+ can select multiple elements at once, but was a selector only one element per page.
544
+
545
+ 137
546
+ 00:12:31,000 --> 00:12:39,000
547
+ To select an element with a specific A-G has a character followed by the idea of the element like you
548
+
549
+ 138
550
+ 00:12:39,000 --> 00:12:41,000
551
+ see in the example on the slide.
552
+
553
+ 139
554
+ 00:12:42,000 --> 00:12:53,000
555
+ So we have a shimmer element with a car and c ss for the specified element, use the attribute of each
556
+
557
+ 140
558
+ 00:12:53,000 --> 00:12:53,000
559
+ HTML element.
560
+
561
+ 141
562
+ 00:12:54,000 --> 00:12:56,000
563
+ Each element.
564
+
565
+ 142
566
+ 00:12:56,000 --> 00:12:57,000
567
+ Map this actually.
568
+
569
+ 143
570
+ 00:12:58,000 --> 00:13:06,000
571
+ Za cos select a selects HMO animals with a specific class attribute to select elements with a specific
572
+
573
+ 144
574
+ 00:13:06,000 --> 00:13:11,000
575
+ class right and period character followed by the class name.
576
+
577
+ 145
578
+ 00:13:11,000 --> 00:13:15,000
579
+ This selector is used very often, in my opinion.
580
+
581
+ 146
582
+ 00:13:15,000 --> 00:13:19,000
583
+ It also allows us to select multiple HTML elements at once.
584
+
585
+ 147
586
+ 00:13:20,000 --> 00:13:26,000
587
+ Example You can see that my paragraph element has class attribute with value center.
588
+
589
+ 148
590
+ 00:13:27,000 --> 00:13:35,000
591
+ We can also specify that styles apply only to paragraph elements that have class center attention.
592
+
593
+ 149
594
+ 00:13:35,000 --> 00:13:39,000
595
+ There is no space between P and period characters.
596
+
597
+ 150
598
+ 00:13:40,000 --> 00:13:41,000
599
+ Can you see this?
600
+
601
+ 151
602
+ 00:13:42,000 --> 00:13:45,000
603
+ This means paragraph week's class center.
604
+
605
+ 152
606
+ 00:13:46,000 --> 00:13:52,000
607
+ But what will happen in case we'll put space between B and the Earth character?
608
+
609
+ 153
610
+ 00:13:53,000 --> 00:14:00,000
611
+ In this case, this would mean that I want to select all elements with class center that a massive inside
612
+
613
+ 154
614
+ 00:14:00,000 --> 00:14:03,000
615
+ the paragraph element fills a difference.
616
+
617
+ 155
618
+ 00:14:04,000 --> 00:14:11,000
619
+ Usually we use space to build more complex and more unique selectors for our HTML elements.
620
+
621
+ 156
622
+ 00:14:11,000 --> 00:14:16,000
623
+ This is similar to the namespace concept of packages concepts in Java.
624
+
625
+ 157
626
+ 00:14:17,000 --> 00:14:24,000
627
+ We need to find a way to separate one elements from another and we can do it by specifying more concrete.
628
+
629
+ 158
630
+ 00:14:25,000 --> 00:14:25,000
631
+ C assessed.
632
+
633
+ 159
634
+ 00:14:25,000 --> 00:14:26,000
635
+ Selecting.
636
+
637
+ 160
638
+ 00:14:27,000 --> 00:14:30,000
639
+ And what if our animal has more than one class?
640
+
641
+ 161
642
+ 00:14:31,000 --> 00:14:33,000
643
+ By the way, this is pretty a common situation.
644
+
645
+ 162
646
+ 00:14:33,000 --> 00:14:36,000
647
+ One element has more than one class.
648
+
649
+ 163
650
+ 00:14:36,000 --> 00:14:40,000
651
+ Classes are separated by space in the female element.
652
+
653
+ 164
654
+ 00:14:41,000 --> 00:14:49,000
655
+ Our selector also will march this element in case each element has at least one class from our test
656
+
657
+ 165
658
+ 00:14:49,000 --> 00:14:49,000
659
+ selector.
660
+
661
+ 166
662
+ 00:14:50,000 --> 00:14:57,000
663
+ But in case we want to create a selection as it would select only elements that have these two classes
664
+
665
+ 167
666
+ 00:14:57,000 --> 00:14:58,000
667
+ simultaneously.
668
+
669
+ 168
670
+ 00:14:59,000 --> 00:15:03,000
671
+ Then we need to list classes without space in our to test select.
672
+
673
+ 169
674
+ 00:15:04,000 --> 00:15:11,000
675
+ So you should remember that enthusiast selectors space means nested elements.
676
+
677
+ 170
678
+ 00:15:12,000 --> 00:15:16,000
679
+ The next selector we're going to discuss is universal selector.
680
+
681
+ 171
682
+ 00:15:17,000 --> 00:15:21,000
683
+ The universal selector selects all elements on the page.
684
+
685
+ 172
686
+ 00:15:22,000 --> 00:15:28,000
687
+ You can apply the selector when you need to select style properties to all elements on the page.
688
+
689
+ 173
690
+ 00:15:29,000 --> 00:15:34,000
691
+ The group and selector select all the h html elements with the same style definitions.
692
+
693
+ 174
694
+ 00:15:35,000 --> 00:15:42,000
695
+ For example, we can have multiple selectors, but that actually describes the same styles for elements.
696
+
697
+ 175
698
+ 00:15:43,000 --> 00:15:44,000
699
+ Just think of the example in this slide.
700
+
701
+ 176
702
+ 00:15:45,000 --> 00:15:51,000
703
+ We have the same styles for H1, H2 and paragraph elements.
704
+
705
+ 177
706
+ 00:15:52,000 --> 00:15:57,000
707
+ It will be data to group the selectors to minimise code to group selectors.
708
+
709
+ 178
710
+ 00:15:58,000 --> 00:16:02,000
711
+ Separate each selector was a comma and that's it.
712
+
713
+ 179
714
+ 00:16:03,000 --> 00:16:09,000
715
+ There is also one interest the group of selectors that they used not very often, but still I believe
716
+
717
+ 180
718
+ 00:16:09,000 --> 00:16:11,000
719
+ that would be interesting for you to know.
720
+
721
+ 181
722
+ 00:16:12,000 --> 00:16:14,000
723
+ There are so-called attributes selectors.
724
+
725
+ 182
726
+ 00:16:15,000 --> 00:16:21,000
727
+ It is possible to style each female elements as it has specific attributes or attributes, values and
728
+
729
+ 183
730
+ 00:16:21,000 --> 00:16:29,000
731
+ even more we can specify whether we want to select element is the starlet and the specific sequence
732
+
733
+ 184
734
+ 00:16:29,000 --> 00:16:33,000
735
+ of characters or just contains some char sequence.
736
+
737
+ 185
738
+ 00:16:34,000 --> 00:16:38,000
739
+ Please reserve pause for a minute and explore examples from this slide.
740
+
741
+ 186
742
+ 00:16:39,000 --> 00:16:46,000
743
+ Examples of the slides should help you to understand to selectors data and in case you would have any
744
+
745
+ 187
746
+ 00:16:46,000 --> 00:16:53,000
747
+ questions related to add to the selectors, please do not hesitate to ask them in comments below.
748
+
749
+ 188
750
+ 00:16:53,000 --> 00:16:53,000
751
+ This video.
752
+
753
+ 189
754
+ 00:16:55,000 --> 00:16:57,000
755
+ Now let's learn what I see.
756
+
757
+ 190
758
+ 00:16:57,000 --> 00:17:03,000
759
+ Since the classes are the CAC, the class is a keyword, added the selector.
760
+
761
+ 191
762
+ 00:17:03,000 --> 00:17:08,000
763
+ That's insofar as a special state of the selected element or elements.
764
+
765
+ 192
766
+ 00:17:09,000 --> 00:17:14,000
767
+ For example, hover can be used to change your bottle's color.
768
+
769
+ 193
770
+ 00:17:14,000 --> 00:17:23,000
771
+ Once the user point hovers over, you see the classes that you apply styled an element not only in relation
772
+
773
+ 194
774
+ 00:17:23,000 --> 00:17:30,000
775
+ to the content of the documentary, but also in relation to external factors like the history of the
776
+
777
+ 195
778
+ 00:17:30,000 --> 00:17:40,000
779
+ navigator visited, for example, the status of its content like check on certain form elements or the
780
+
781
+ 196
782
+ 00:17:40,000 --> 00:17:47,000
783
+ position of the mouse like hover, which lets you know if the mouse is over an element or not.
784
+
785
+ 197
786
+ 00:17:48,000 --> 00:17:50,000
787
+ There are really a lot of difference to the classes.
788
+
789
+ 198
790
+ 00:17:51,000 --> 00:17:54,000
791
+ I don't see a lot of sense to go over each of them.
792
+
793
+ 199
794
+ 00:17:55,000 --> 00:18:02,000
795
+ I would just leave the least of all the classes on the slide in the most cases, state that is described
796
+
797
+ 200
798
+ 00:18:02,000 --> 00:18:07,000
799
+ by the class is clear by its name in case the name is confusing.
800
+
801
+ 201
802
+ 00:18:08,000 --> 00:18:15,000
803
+ Just find the reference in the internet or ask in commas to this veto and I will be happy to reply.
804
+
805
+ 202
806
+ 00:18:16,000 --> 00:18:18,000
807
+ We have a lot of cereal already.
808
+
809
+ 203
810
+ 00:18:18,000 --> 00:18:21,000
811
+ It is time for practical exercise.
812
+
813
+ 204
814
+ 00:18:22,000 --> 00:18:27,000
815
+ In this practical exercise, we're going to learn how to apply to assess the HTML elements.
816
+
817
+ 205
818
+ 00:18:28,000 --> 00:18:37,000
819
+ There are three possible ways of inserting a style sheet zero in line sucess in child to assess external
820
+
821
+ 206
822
+ 00:18:37,000 --> 00:18:38,000
823
+ sucess.
824
+
825
+ 207
826
+ 00:18:39,000 --> 00:18:41,000
827
+ Let's review these examples one by one.
828
+
829
+ 208
830
+ 00:18:42,000 --> 00:18:48,000
831
+ Especially for this lesson, I created a new team of files at the school to assess them.
832
+
833
+ 209
834
+ 00:18:48,000 --> 00:18:56,000
835
+ TMA If you don't know what a simple file is and how to create it, please refer to a previous lesson
836
+
837
+ 210
838
+ 00:18:56,000 --> 00:19:04,000
839
+ and you will be able to find this demo file in attachments to the lesson in order you would practice
840
+
841
+ 211
842
+ 00:19:04,000 --> 00:19:07,000
843
+ on your local computer in this demo file.
844
+
845
+ 212
846
+ 00:19:07,000 --> 00:19:11,000
847
+ I have three different elements to demonstrate different scenarios.
848
+
849
+ 213
850
+ 00:19:12,000 --> 00:19:20,000
851
+ Let's start from inline sucess and inline style may be used to apply a unique style for a single element.
852
+
853
+ 214
854
+ 00:19:20,000 --> 00:19:27,000
855
+ While it is technically possible, this option is not recommended because as you already know from this
856
+
857
+ 215
858
+ 00:19:27,000 --> 00:19:33,000
859
+ awesome mixing of presentation and content is not the best thing that we can do.
860
+
861
+ 216
862
+ 00:19:34,000 --> 00:19:42,000
863
+ But I believe it is also important to note this technical capability to use inline styles at the start
864
+
865
+ 217
866
+ 00:19:42,000 --> 00:19:43,000
867
+ to the relevant element.
868
+
869
+ 218
870
+ 00:19:44,000 --> 00:19:50,000
871
+ The style activity can contain any serious property like you see in this example.
872
+
873
+ 219
874
+ 00:19:51,000 --> 00:19:58,000
875
+ Our heading two contains inline to assess with set color to the rest.
876
+
877
+ 220
878
+ 00:19:59,000 --> 00:20:02,000
879
+ The next example is an example on channel style.
880
+
881
+ 221
882
+ 00:20:03,000 --> 00:20:05,000
883
+ What is it and how we can use it?
884
+
885
+ 222
886
+ 00:20:06,000 --> 00:20:12,000
887
+ An internal stylesheet may be used if one single HTML page has a unique style.
888
+
889
+ 223
890
+ 00:20:13,000 --> 00:20:19,000
891
+ The internal style is defined inside the style element inside the head section.
892
+
893
+ 224
894
+ 00:20:20,000 --> 00:20:26,000
895
+ In our particular case, we have an channel style sheet and we set what we call potatoes.
896
+
897
+ 225
898
+ 00:20:26,000 --> 00:20:29,000
899
+ That was a class in Charles's SAS demo.
900
+
901
+ 226
902
+ 00:20:31,000 --> 00:20:34,000
903
+ And a set example is about to use an external to assess them.
904
+
905
+ 227
906
+ 00:20:35,000 --> 00:20:39,000
907
+ That tension that in my folder I have another folder.
908
+
909
+ 228
910
+ 00:20:39,000 --> 00:20:44,000
911
+ So the school says this folder is accessible from the Internet.
912
+
913
+ 229
914
+ 00:20:44,000 --> 00:20:51,000
915
+ This is important because in this case clients will be able to reach might see styles.
916
+
917
+ 230
918
+ 00:20:51,000 --> 00:21:00,000
919
+ In that folder I have file was name style to assess this would be the files I can use in different files.
920
+
921
+ 231
922
+ 00:21:00,000 --> 00:21:03,000
923
+ Let's open it inside.
924
+
925
+ 232
926
+ 00:21:03,000 --> 00:21:06,000
927
+ I have declaration only for one class so far.
928
+
929
+ 233
930
+ 00:21:07,000 --> 00:21:09,000
931
+ And pay attention column.
932
+
933
+ 234
934
+ 00:21:09,000 --> 00:21:14,000
935
+ However, as we know already, this is C the class is.
936
+
937
+ 235
938
+ 00:21:14,000 --> 00:21:16,000
939
+ It describes some state of the element.
940
+
941
+ 236
942
+ 00:21:17,000 --> 00:21:25,000
943
+ This means that I select elements with class external to assess them and on hover state with these elements
944
+
945
+ 237
946
+ 00:21:25,000 --> 00:21:26,000
947
+ style will be applied.
948
+
949
+ 238
950
+ 00:21:27,000 --> 00:21:31,000
951
+ Let's change the name on Hover State.
952
+
953
+ 239
954
+ 00:21:32,000 --> 00:21:38,000
955
+ For more practical scenes, I'd like to show you in this exercise our Commons insistence.
956
+
957
+ 240
958
+ 00:21:39,000 --> 00:21:45,000
959
+ Ever since Single Share Commons, I used to explain the code and may have one.
960
+
961
+ 241
962
+ 00:21:45,000 --> 00:21:48,000
963
+ You added the source code at a later date.
964
+
965
+ 242
966
+ 00:21:48,000 --> 00:21:50,000
967
+ Comments are ignored by browsers.
968
+
969
+ 243
970
+ 00:21:51,000 --> 00:21:57,000
971
+ Use slash and asterisk, open common and asterisk and slash to close comma.
972
+
973
+ 244
974
+ 00:21:58,000 --> 00:22:02,000
975
+ But the clearing of styles and externalities says file is not enough.
976
+
977
+ 245
978
+ 00:22:03,000 --> 00:22:09,000
979
+ We also have to tell each team that we want to use this to assess on the page how to do this.
980
+
981
+ 246
982
+ 00:22:10,000 --> 00:22:12,000
983
+ Let's get back to this.
984
+
985
+ 247
986
+ 00:22:12,000 --> 00:22:13,000
987
+ A simple demo.
988
+
989
+ 248
990
+ 00:22:14,000 --> 00:22:18,000
991
+ Pay attention to the increments that I put inside my head.
992
+
993
+ 249
994
+ 00:22:19,000 --> 00:22:28,000
995
+ It has to add to this they are a rule that has a value stylesheet and a graph that contains passed as
996
+
997
+ 250
998
+ 00:22:28,000 --> 00:22:31,000
999
+ a thesis file that I want to use on this page.
1000
+
1001
+ 251
1002
+ 00:22:32,000 --> 00:22:36,000
1003
+ Usually this is relative pass to my sucess file.
1004
+
1005
+ 252
1006
+ 00:22:36,000 --> 00:22:44,000
1007
+ In our particular case, I refer to the thesis folder that is located on the same level as our demo
1008
+
1009
+ 253
1010
+ 00:22:44,000 --> 00:22:48,000
1011
+ html and those are styles to assess file inside.
1012
+
1013
+ 254
1014
+ 00:22:49,000 --> 00:22:55,000
1015
+ Let's open our Ishmael demo in browser and make sure that all styles applied successfully.
1016
+
1017
+ 255
1018
+ 00:22:56,000 --> 00:22:58,000
1019
+ We can see that first line was in line.
1020
+
1021
+ 256
1022
+ 00:22:58,000 --> 00:23:00,000
1023
+ Styles has a red color as expected.
1024
+
1025
+ 257
1026
+ 00:23:01,000 --> 00:23:03,000
1027
+ The second line has different forms.
1028
+
1029
+ 258
1030
+ 00:23:03,000 --> 00:23:10,000
1031
+ My black reset is in channel two sets and the third line change color to me.
1032
+
1033
+ 259
1034
+ 00:23:10,000 --> 00:23:19,000
1035
+ When we hover over Z element, Everson drops and this also proves is that Excel says is present on the
1036
+
1037
+ 260
1038
+ 00:23:19,000 --> 00:23:19,000
1039
+ page.
1040
+
1041
+ 261
1042
+ 00:23:20,000 --> 00:23:26,000
1043
+ Let me show one more scene in Chrome that is now is the greatest lesson our just showed you how you
1044
+
1045
+ 262
1046
+ 00:23:26,000 --> 00:23:30,000
1047
+ can open from dev tools and review elements there.
1048
+
1049
+ 263
1050
+ 00:23:31,000 --> 00:23:39,000
1051
+ Now we have to assess first of all, you can check whether something says was loaded or not.
1052
+
1053
+ 264
1054
+ 00:23:39,000 --> 00:23:48,000
1055
+ That is important to check in case you see that your styles are not applied on the page formats, tab
1056
+
1057
+ 265
1058
+ 00:23:49,000 --> 00:23:50,000
1059
+ and the load page.
1060
+
1061
+ 266
1062
+ 00:23:51,000 --> 00:23:59,000
1063
+ You can filter all its users files in order to be sure that your thesis resource is all gray.
1064
+
1065
+ 267
1066
+ 00:23:59,000 --> 00:24:02,000
1067
+ We can see the statuses of hundreds.
1068
+
1069
+ 268
1070
+ 00:24:02,000 --> 00:24:02,000
1071
+ Okay.
1072
+
1073
+ 269
1074
+ 00:24:02,000 --> 00:24:03,000
1075
+ For this resource.
1076
+
1077
+ 270
1078
+ 00:24:04,000 --> 00:24:04,000
1079
+ Amazing.
1080
+
1081
+ 271
1082
+ 00:24:05,000 --> 00:24:10,000
1083
+ So next thing that I would like to show is that you have separate space here for review of styles.
1084
+
1085
+ 272
1086
+ 00:24:11,000 --> 00:24:14,000
1087
+ Let's just click Elements one more time.
1088
+
1089
+ 273
1090
+ 00:24:14,000 --> 00:24:18,000
1091
+ You can select Element and explore its styles.
1092
+
1093
+ 274
1094
+ 00:24:19,000 --> 00:24:24,000
1095
+ Usually I use this area to test some styles before putting them into the thesis file.
1096
+
1097
+ 275
1098
+ 00:24:25,000 --> 00:24:28,000
1099
+ For example, let's see how pattern attribute was.
1100
+
1101
+ 276
1102
+ 00:24:28,000 --> 00:24:32,000
1103
+ Value 20 pixels will look like on the element.
1104
+
1105
+ 277
1106
+ 00:24:32,000 --> 00:24:34,000
1107
+ The interface is intuitive.
1108
+
1109
+ 278
1110
+ 00:24:35,000 --> 00:24:42,000
1111
+ You click with mouse left click and after that specify attribute name and attribute value.
1112
+
1113
+ 279
1114
+ 00:24:42,000 --> 00:24:50,000
1115
+ Everything is simple here, so you can either add new styles or modify existing style supply.
1116
+
1117
+ 280
1118
+ 00:24:51,000 --> 00:24:57,000
1119
+ Also, you can disable the labels in another cool tweet that I want to teach you.
1120
+
1121
+ 281
1122
+ 00:24:57,000 --> 00:24:59,000
1123
+ Pay attention to this half button.
1124
+
1125
+ 282
1126
+ 00:25:00,000 --> 00:25:07,000
1127
+ This button will help you to imitate states on the element in order to investigate styles of our see
1128
+
1129
+ 283
1130
+ 00:25:07,000 --> 00:25:08,000
1131
+ the classes.
1132
+
1133
+ 284
1134
+ 00:25:09,000 --> 00:25:16,000
1135
+ For example, I know this is on whole my element changes color theory, but how to investigate this?
1136
+
1137
+ 285
1138
+ 00:25:16,000 --> 00:25:19,000
1139
+ I take the pointer here on top.
1140
+
1141
+ 286
1142
+ 00:25:19,000 --> 00:25:23,000
1143
+ After that, I select elements that they need with this pointer.
1144
+
1145
+ 287
1146
+ 00:25:24,000 --> 00:25:28,000
1147
+ And now I can imitate State on hover by selecting this checkbox.
1148
+
1149
+ 288
1150
+ 00:25:29,000 --> 00:25:35,000
1151
+ Let's now collapse this menu and here I can work with styles that are applied on Hover State.
1152
+
1153
+ 289
1154
+ 00:25:36,000 --> 00:25:42,000
1155
+ In case you have different styles applied to this element, you can easily investigate to what exactly
1156
+
1157
+ 290
1158
+ 00:25:42,000 --> 00:25:45,000
1159
+ to select selector styles are applied.
1160
+
1161
+ 291
1162
+ 00:25:46,000 --> 00:25:48,000
1163
+ Is everything clear for you?
1164
+
1165
+ 292
1166
+ 00:25:48,000 --> 00:25:55,000
1167
+ In case you have any questions, please feel free to ask any questions in comments to this video and
1168
+
1169
+ 293
1170
+ 00:25:55,000 --> 00:25:57,000
1171
+ I will be happy to answer those.
1172
+
1173
+ 294
1174
+ 00:25:58,000 --> 00:26:01,000
1175
+ One more interesting question to discuss in this lesson.
1176
+
1177
+ 295
1178
+ 00:26:01,000 --> 00:26:05,000
1179
+ What style will be used once there is more than one style?
1180
+
1181
+ 296
1182
+ 00:26:05,000 --> 00:26:08,000
1183
+ Specify one single element.
1184
+
1185
+ 297
1186
+ 00:26:09,000 --> 00:26:16,000
1187
+ All the styles in the page will cascade into a new visual style sheet by following the rules.
1188
+
1189
+ 298
1190
+ 00:26:16,000 --> 00:26:25,000
1191
+ Where number one is the highest priority one in one style, that is declared inside an external element.
1192
+
1193
+ 299
1194
+ 00:26:26,000 --> 00:26:29,000
1195
+ Number two, external and internal style sheets.
1196
+
1197
+ 300
1198
+ 00:26:30,000 --> 00:26:32,000
1199
+ And number three, browser default.
1200
+
1201
+ 301
1202
+ 00:26:33,000 --> 00:26:41,000
1203
+ So and in one style has the highest priority and will override external and internal styles of browser
1204
+
1205
+ 302
1206
+ 00:26:41,000 --> 00:26:42,000
1207
+ defaults.
1208
+
1209
+ 303
1210
+ 00:26:43,000 --> 00:26:50,000
1211
+ Regarding all these properties, I'd like to say that this is just impossible to list, all possible
1212
+
1213
+ 304
1214
+ 00:26:50,000 --> 00:26:53,000
1215
+ to assess properties, even on a few slots.
1216
+
1217
+ 305
1218
+ 00:26:54,000 --> 00:26:57,000
1219
+ That's why I would recommend you refer to this.
1220
+
1221
+ 306
1222
+ 00:26:57,000 --> 00:27:05,000
1223
+ He says references is in there that some resources like that from a sealer or that dogs publish their
1224
+
1225
+ 307
1226
+ 00:27:05,000 --> 00:27:06,000
1227
+ thesis references.
1228
+
1229
+ 308
1230
+ 00:27:07,000 --> 00:27:15,000
1231
+ Therefore, during the course of the most popular says properties, but you see one of them even more
1232
+
1233
+ 309
1234
+ 00:27:15,000 --> 00:27:18,000
1235
+ than to explore external resources.
1236
+
1237
+ 310
1238
+ 00:27:19,000 --> 00:27:25,000
1239
+ At least after this lesson, you already know how to read the information about says and apply it on
1240
+
1241
+ 311
1242
+ 00:27:25,000 --> 00:27:26,000
1243
+ practice.
1244
+
1245
+ 312
1246
+ 00:27:27,000 --> 00:27:30,000
1247
+ Let's recap what we have learned in this lesson.
1248
+
1249
+ 313
1250
+ 00:27:31,000 --> 00:27:32,000
1251
+ Wow.
1252
+
1253
+ 314
1254
+ 00:27:32,000 --> 00:27:35,000
1255
+ We have learned really a lot of different things today.
1256
+
1257
+ 315
1258
+ 00:27:36,000 --> 00:27:38,000
1259
+ We learned what is at sea.
1260
+
1261
+ 316
1262
+ 00:27:38,000 --> 00:27:41,000
1263
+ Assess now you know the main goals of us.
1264
+
1265
+ 317
1266
+ 00:27:42,000 --> 00:27:48,000
1267
+ What discussed advantages of the US after that began to see this violence?
1268
+
1269
+ 318
1270
+ 00:27:48,000 --> 00:27:54,000
1271
+ Defensive actors include an element, a deep plus universal group.
1272
+
1273
+ 319
1274
+ 00:27:54,000 --> 00:28:02,000
1275
+ And add to this Magnus really and what see the classes are also you saw how we can use common sense
1276
+
1277
+ 320
1278
+ 00:28:02,000 --> 00:28:03,000
1279
+ to assess class.
1280
+
1281
+ 321
1282
+ 00:28:03,000 --> 00:28:11,000
1283
+ After this lesson, we know how to work was in line to assess internal and external, to assess use
1284
+
1285
+ 322
1286
+ 00:28:11,000 --> 00:28:19,000
1287
+ of practical example, how to work with the assess and also how to work with see assess the harm that
1288
+
1289
+ 323
1290
+ 00:28:19,000 --> 00:28:19,000
1291
+ flows.
1292
+
1293
+ 324
1294
+ 00:28:20,000 --> 00:28:25,000
1295
+ At the end of the last year, you went to find all possible to assess properties.
1296
+
1297
+ 325
1298
+ 00:28:25,000 --> 00:28:26,000
1299
+ Description.
1300
+
1301
+ 326
1302
+ 00:28:27,000 --> 00:28:28,000
1303
+ That's all for this lesson.
1304
+
1305
+ 327
1306
+ 00:28:29,000 --> 00:28:30,000
1307
+ Thanks a lot for your attention.
1308
+
1309
+ 328
1310
+ 00:28:31,000 --> 00:28:33,000
1311
+ Have a great day and see you in the next lesson.
1312
+
65 - HTML & CSS/003 HTML Forms_en.srt ADDED
@@ -0,0 +1,1380 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:07,000
7
+ Yes, to them.
8
+
9
+ 3
10
+ 00:00:07,000 --> 00:00:13,000
11
+ Then they were going that very important lesson because that they will review topics that this applies
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:15,000
15
+ in practice very often.
16
+
17
+ 5
18
+ 00:00:15,000 --> 00:00:18,000
19
+ Today we're going to talk about eight forms.
20
+
21
+ 6
22
+ 00:00:19,000 --> 00:00:23,000
23
+ We'll start from understanding of what a simple form is.
24
+
25
+ 7
26
+ 00:00:23,000 --> 00:00:29,000
27
+ I will explain why we need a system of forms and where we have learned to use them.
28
+
29
+ 8
30
+ 00:00:29,000 --> 00:00:34,000
31
+ After that, we'll start detailed review of a simple form.
32
+
33
+ 9
34
+ 00:00:34,000 --> 00:00:42,000
35
+ Elements will start you from as a form element, and after that we'll discuss nested HTML form elements.
36
+
37
+ 10
38
+ 00:00:43,000 --> 00:00:49,000
39
+ During the lesson, we will review different input types and attributes of the input elements.
40
+
41
+ 11
42
+ 00:00:49,000 --> 00:00:53,000
43
+ Also, we are going to have practice to be unreal.
44
+
45
+ 12
46
+ 00:00:53,000 --> 00:01:01,000
47
+ Example will create our first HTML form in Gaza, will use a difference between disabled and we've only
48
+
49
+ 13
50
+ 00:01:01,000 --> 00:01:08,000
51
+ attribute will answer the question what hidden attributes are and how former said looks.
52
+
53
+ 14
54
+ 00:01:08,000 --> 00:01:13,000
55
+ I will show you to know form, validation and many other differences.
56
+
57
+ 15
58
+ 00:01:14,000 --> 00:01:20,000
59
+ As in the last one, I'm going to show you how to submit form data to the server and process on the
60
+
61
+ 16
62
+ 00:01:20,000 --> 00:01:21,000
63
+ server side.
64
+
65
+ 17
66
+ 00:01:21,000 --> 00:01:23,000
67
+ Let's start our lesson.
68
+
69
+ 18
70
+ 00:01:24,000 --> 00:01:29,000
71
+ Let's understand first what each HTML forms are and why they are so important.
72
+
73
+ 19
74
+ 00:01:30,000 --> 00:01:33,000
75
+ And small form is used to collect the user input.
76
+
77
+ 20
78
+ 00:01:34,000 --> 00:01:38,000
79
+ The user input is most often sent to the Center for processing.
80
+
81
+ 21
82
+ 00:01:39,000 --> 00:01:44,000
83
+ It is important because it was a single form, so we can actually submit information to the web server
84
+
85
+ 22
86
+ 00:01:45,000 --> 00:01:47,000
87
+ for further processing and storage.
88
+
89
+ 23
90
+ 00:01:47,000 --> 00:01:54,000
91
+ That's why some forms are so important for user interaction with our web application.
92
+
93
+ 24
94
+ 00:01:54,000 --> 00:01:55,000
95
+ They send mail.
96
+
97
+ 25
98
+ 00:01:55,000 --> 00:02:00,000
99
+ That form is made up of one or more form controls.
100
+
101
+ 26
102
+ 00:02:00,000 --> 00:02:03,000
103
+ The controls can be single on one.
104
+
105
+ 27
106
+ 00:02:03,000 --> 00:02:08,000
107
+ That's fields, dropdown boxes, buttons, checkboxes or radio buttons and others.
108
+
109
+ 28
110
+ 00:02:09,000 --> 00:02:13,000
111
+ They're mostly created using the equal elements also.
112
+
113
+ 29
114
+ 00:02:13,000 --> 00:02:14,000
115
+ Yes.
116
+
117
+ 30
118
+ 00:02:14,000 --> 00:02:16,000
119
+ Some other elements to learn about to.
120
+
121
+ 31
122
+ 00:02:17,000 --> 00:02:23,000
123
+ Considering the fact that all my students in progress of creation of online store, it is critically
124
+
125
+ 32
126
+ 00:02:23,000 --> 00:02:26,000
127
+ important for us to learn how to use forms.
128
+
129
+ 33
130
+ 00:02:26,000 --> 00:02:29,000
131
+ What are typical examples of using forms?
132
+
133
+ 34
134
+ 00:02:29,000 --> 00:02:38,000
135
+ And one of the simplest examples of using forms it was to mention is a phone was sign in for wanting
136
+
137
+ 35
138
+ 00:02:38,000 --> 00:02:41,000
139
+ to submit information about logging and password to the server.
140
+
141
+ 36
142
+ 00:02:41,000 --> 00:02:49,000
143
+ In order to authenticate the user in our application sign up form, we need to get information from
144
+
145
+ 37
146
+ 00:02:49,000 --> 00:02:56,000
147
+ and the user to create account for him inside our application submit order form.
148
+
149
+ 38
150
+ 00:02:57,000 --> 00:03:03,000
151
+ In case we talk about online store, we need to have opportunity to select the product that we want
152
+
153
+ 39
154
+ 00:03:03,000 --> 00:03:03,000
155
+ to buy.
156
+
157
+ 40
158
+ 00:03:03,000 --> 00:03:12,000
159
+ My specified quantity and other information oh was our purchase and pass information to the server that
160
+
161
+ 41
162
+ 00:03:12,000 --> 00:03:19,000
163
+ we want to buy this product, performing the search, uploading the file, filtering the content and
164
+
165
+ 42
166
+ 00:03:19,000 --> 00:03:21,000
167
+ many other examples.
168
+
169
+ 43
170
+ 00:03:21,000 --> 00:03:28,000
171
+ Without them, of course, it is literally impossible to create web application nowadays and ensure
172
+
173
+ 44
174
+ 00:03:28,000 --> 00:03:32,000
175
+ user interaction is there, but that's not.
176
+
177
+ 45
178
+ 00:03:32,000 --> 00:03:34,000
179
+ Now is a form element.
180
+
181
+ 46
182
+ 00:03:34,000 --> 00:03:44,000
183
+ The basic tags that you need to use to create a system for this form that is a form element is a container
184
+
185
+ 47
186
+ 00:03:44,000 --> 00:03:51,000
187
+ for different types of inputs, elements such as text fields, checkboxes, radio buttons, subnet buttons,
188
+
189
+ 48
190
+ 00:03:51,000 --> 00:03:59,000
191
+ etc. On this slide, you can also see a list of all attributes of the form element, the most popular
192
+
193
+ 49
194
+ 00:03:59,000 --> 00:04:04,000
195
+ among them, and we are going to use and practice our action.
196
+
197
+ 50
198
+ 00:04:04,000 --> 00:04:10,000
199
+ And mass action is to specify of their formal descent and mass.
200
+
201
+ 51
202
+ 00:04:10,000 --> 00:04:16,000
203
+ It is to specify the masses that will be used to send for data.
204
+
205
+ 52
206
+ 00:04:17,000 --> 00:04:25,000
207
+ Also, it is worth mentions of team of all inputs may be validated automatically in case we specify
208
+
209
+ 53
210
+ 00:04:25,000 --> 00:04:35,000
211
+ concrete data type in order to disable such validations we can use to validate add to be present portions
212
+
213
+ 54
214
+ 00:04:35,000 --> 00:04:40,000
215
+ of video to explore these slides and read description of other attributes.
216
+
217
+ 55
218
+ 00:04:40,000 --> 00:04:46,000
219
+ In case you have questions regarding any of these, add to this please ask your question.
220
+
221
+ 56
222
+ 00:04:46,000 --> 00:04:47,000
223
+ You close this video.
224
+
225
+ 57
226
+ 00:04:48,000 --> 00:04:50,000
227
+ Once you wrap all slide.
228
+
229
+ 58
230
+ 00:04:50,000 --> 00:04:52,000
231
+ We are good to proceed with the next slide.
232
+
233
+ 59
234
+ 00:04:53,000 --> 00:05:00,000
235
+ As I already said, one of the key attributes of the fourth element is mass, and I like to have a separate
236
+
237
+ 60
238
+ 00:05:00,000 --> 00:05:04,000
239
+ slide explaining important scenes about central thing of form.
240
+
241
+ 61
242
+ 00:05:05,000 --> 00:05:10,000
243
+ With different masses, we can submit form using again of both mass.
244
+
245
+ 62
246
+ 00:05:11,000 --> 00:05:18,000
247
+ Each option has its important CS to remember scenes that you should remember about some meaningful way
248
+
249
+ 63
250
+ 00:05:18,000 --> 00:05:22,000
251
+ to get mass of all input data sent.
252
+
253
+ 64
254
+ 00:05:22,000 --> 00:05:23,000
255
+ We are get mass.
256
+
257
+ 65
258
+ 00:05:23,000 --> 00:05:27,000
259
+ It will be appended to a euro in name value pairs.
260
+
261
+ 66
262
+ 00:05:27,000 --> 00:05:28,000
263
+ Why?
264
+
265
+ 67
266
+ 00:05:28,000 --> 00:05:32,000
267
+ Because get requests don't have the message body.
268
+
269
+ 68
270
+ 00:05:33,000 --> 00:05:36,000
271
+ That's why there is a very important safety amendment.
272
+
273
+ 69
274
+ 00:05:36,000 --> 00:05:45,000
275
+ He never used to get massive to send sensitive data because the submitted form data is visible in the
276
+
277
+ 70
278
+ 00:05:45,000 --> 00:05:45,000
279
+ euro.
280
+
281
+ 71
282
+ 00:05:46,000 --> 00:05:49,000
283
+ And this is not a secure approach of passing data.
284
+
285
+ 72
286
+ 00:05:50,000 --> 00:05:53,000
287
+ Also with some meaningful news and get the message.
288
+
289
+ 73
290
+ 00:05:53,000 --> 00:06:00,000
291
+ You have to remember that the maxi rise of euro is limited to 2048 characters.
292
+
293
+ 74
294
+ 00:06:00,000 --> 00:06:03,000
295
+ That's why it will be impossible to pass.
296
+
297
+ 75
298
+ 00:06:03,000 --> 00:06:11,000
299
+ Huge amounts of information will get massive using a team of four, but in which cases send inform we
300
+
301
+ 76
302
+ 00:06:11,000 --> 00:06:13,000
303
+ get massive is useful.
304
+
305
+ 77
306
+ 00:06:14,000 --> 00:06:18,000
307
+ Imagine that we search and result in our online store.
308
+
309
+ 78
310
+ 00:06:18,000 --> 00:06:26,000
311
+ In this case, this helpful to store search query in the U around because this allows us to share search
312
+
313
+ 79
314
+ 00:06:26,000 --> 00:06:28,000
315
+ results with other users.
316
+
317
+ 80
318
+ 00:06:28,000 --> 00:06:35,000
319
+ Just by sharing Z, we also we can bookmark such query in order to navigate to the search results first.
320
+
321
+ 81
322
+ 00:06:36,000 --> 00:06:43,000
323
+ And it is also good to use gets massive from non-secure data like where is sweet in Google.
324
+
325
+ 82
326
+ 00:06:44,000 --> 00:06:51,000
327
+ And he refuses to remember about where his foreign data is sent me to post.
328
+
329
+ 83
330
+ 00:06:51,000 --> 00:06:55,000
331
+ My asset is appended inside the body of the ECB request.
332
+
333
+ 84
334
+ 00:06:56,000 --> 00:07:01,000
335
+ That means that submitted form data is not shown in the euro.
336
+
337
+ 85
338
+ 00:07:02,000 --> 00:07:10,000
339
+ On the contrary, to get massive, both mass has no size limitations and can be used to send large amounts
340
+
341
+ 86
342
+ 00:07:10,000 --> 00:07:11,000
343
+ of data.
344
+
345
+ 87
346
+ 00:07:11,000 --> 00:07:19,000
347
+ But we also have to consider that all submissions with force can be bookmarked in browser.
348
+
349
+ 88
350
+ 00:07:20,000 --> 00:07:23,000
351
+ These are important things you have to remember about form.
352
+
353
+ 89
354
+ 00:07:23,000 --> 00:07:25,000
355
+ Submission was get and post message.
356
+
357
+ 90
358
+ 00:07:26,000 --> 00:07:27,000
359
+ Let's move on.
360
+
361
+ 91
362
+ 00:07:28,000 --> 00:07:30,000
363
+ Based on the form may have different elements.
364
+
365
+ 92
366
+ 00:07:31,000 --> 00:07:40,000
367
+ On this slide, you can see the main single form elements that we can use each team for their input.
368
+
369
+ 93
370
+ 00:07:40,000 --> 00:07:48,000
371
+ Tax theory label field set legend select of the group option.
372
+
373
+ 94
374
+ 00:07:48,000 --> 00:07:57,000
375
+ Martin gave the list and actually the form element itself is it can contain any of the mentioned elements.
376
+
377
+ 95
378
+ 00:07:57,000 --> 00:08:00,000
379
+ Let's briefly review each of these elements.
380
+
381
+ 96
382
+ 00:08:01,000 --> 00:08:08,000
383
+ Input element allows us to input some data as it is going to be sent with the form and form.
384
+
385
+ 97
386
+ 00:08:09,000 --> 00:08:11,000
387
+ The input may have different types.
388
+
389
+ 98
390
+ 00:08:11,000 --> 00:08:13,000
391
+ We are going to discuss this separately.
392
+
393
+ 99
394
+ 00:08:14,000 --> 00:08:15,000
395
+ Thanks.
396
+
397
+ 100
398
+ 00:08:15,000 --> 00:08:21,000
399
+ Sarah is a multi line text input label defines the label for an input element.
400
+
401
+ 101
402
+ 00:08:22,000 --> 00:08:24,000
403
+ Was a full set element.
404
+
405
+ 102
406
+ 00:08:24,000 --> 00:08:27,000
407
+ You can create group of related elements in the form.
408
+
409
+ 103
410
+ 00:08:28,000 --> 00:08:35,000
411
+ Legend allows you to achieve different level of presentation of your form to the end user by defining
412
+
413
+ 104
414
+ 00:08:35,000 --> 00:08:37,000
415
+ the caption for the field set element.
416
+
417
+ 105
418
+ 00:08:38,000 --> 00:08:42,000
419
+ So legend element is used inside field set element.
420
+
421
+ 106
422
+ 00:08:43,000 --> 00:08:51,000
423
+ Another interesting element is a select album that can contain different option groups or just different
424
+
425
+ 107
426
+ 00:08:51,000 --> 00:08:51,000
427
+ options.
428
+
429
+ 108
430
+ 00:08:52,000 --> 00:08:57,000
431
+ This regular dropdown is most likely you already saw on different websites.
432
+
433
+ 109
434
+ 00:08:58,000 --> 00:09:06,000
435
+ For example, when you select manufacture of the use car on the website and you have predefined options.
436
+
437
+ 110
438
+ 00:09:07,000 --> 00:09:10,000
439
+ Bottom is just the bottom is a feature.
440
+
441
+ 111
442
+ 00:09:10,000 --> 00:09:15,000
443
+ With the help of JavaScript, we can attach different events lenders to events associated with this
444
+
445
+ 112
446
+ 00:09:15,000 --> 00:09:16,000
447
+ model.
448
+
449
+ 113
450
+ 00:09:17,000 --> 00:09:24,000
451
+ For example, to create a code that will be executed on bottom click event make the least elements somewhat
452
+
453
+ 114
454
+ 00:09:24,000 --> 00:09:26,000
455
+ similar to select element.
456
+
457
+ 115
458
+ 00:09:26,000 --> 00:09:33,000
459
+ It also represents dropdown, but with a select element, we have fixed the list of values to be used
460
+
461
+ 116
462
+ 00:09:33,000 --> 00:09:41,000
463
+ in the input with a data list we have drop down was recommendations, but you still can enter your option
464
+
465
+ 117
466
+ 00:09:41,000 --> 00:09:44,000
467
+ to be on a limited amount of business cases.
468
+
469
+ 118
470
+ 00:09:44,000 --> 00:09:46,000
471
+ One data list element is used.
472
+
473
+ 119
474
+ 00:09:47,000 --> 00:09:51,000
475
+ I would say that the using of select elements is more common.
476
+
477
+ 120
478
+ 00:09:52,000 --> 00:09:55,000
479
+ These are key elements also h html for.
480
+
481
+ 121
482
+ 00:09:56,000 --> 00:09:59,000
483
+ And the inputs may have different types.
484
+
485
+ 122
486
+ 00:09:59,000 --> 00:10:10,000
487
+ The different form controls ensure zero button checkbox color the date time local email file, hidden
488
+
489
+ 123
490
+ 00:10:10,000 --> 00:10:15,000
491
+ image, mos number, password, radio and other types.
492
+
493
+ 124
494
+ 00:10:16,000 --> 00:10:23,000
495
+ You can see on the slide different types may help us with built in HTML validation for the format of
496
+
497
+ 125
498
+ 00:10:23,000 --> 00:10:32,000
499
+ input value and some of the input types may ensure better user experience when you use mobile devices.
500
+
501
+ 126
502
+ 00:10:32,000 --> 00:10:40,000
503
+ For example, when you use number input time and want to input data on your mobile device, your keyboard
504
+
505
+ 127
506
+ 00:10:40,000 --> 00:10:48,000
507
+ is turned into a numbers instead of letters and similar examples with other input types.
508
+
509
+ 128
510
+ 00:10:48,000 --> 00:10:51,000
511
+ As you can see, there really are a lot of them.
512
+
513
+ 129
514
+ 00:10:52,000 --> 00:10:58,000
515
+ Let's not spend time with you and each input type in this lesson we're going to review is the most popular
516
+
517
+ 130
518
+ 00:10:58,000 --> 00:11:00,000
519
+ and widely used input types.
520
+
521
+ 131
522
+ 00:11:01,000 --> 00:11:06,000
523
+ In case you would have any questions related to the input type that we'll talk about during the lesson
524
+
525
+ 132
526
+ 00:11:07,000 --> 00:11:13,000
527
+ or from the least you can see on the screen, please ask your question below the 3D and I will be happy
528
+
529
+ 133
530
+ 00:11:13,000 --> 00:11:14,000
531
+ to answer.
532
+
533
+ 134
534
+ 00:11:15,000 --> 00:11:21,000
535
+ There are some common attributes and restrictions that may be applied to the inputs in the HDMI forum.
536
+
537
+ 135
538
+ 00:11:22,000 --> 00:11:24,000
539
+ Let's use the most popular ones.
540
+
541
+ 136
542
+ 00:11:25,000 --> 00:11:28,000
543
+ All activities from the slide you can use was inputs elements.
544
+
545
+ 137
546
+ 00:11:29,000 --> 00:11:33,000
547
+ -- attitude is simple and very popular.
548
+
549
+ 138
550
+ 00:11:33,000 --> 00:11:39,000
551
+ We can use it was a checkbox or radio bottom little bit that could be used as a live demo.
552
+
553
+ 139
554
+ 00:11:39,000 --> 00:11:41,000
555
+ I'm going to show you how it works.
556
+
557
+ 140
558
+ 00:11:42,000 --> 00:11:45,000
559
+ Ensure it press selects the choice for user.
560
+
561
+ 141
562
+ 00:11:46,000 --> 00:11:49,000
563
+ Disabled is also very popular, actually.
564
+
565
+ 142
566
+ 00:11:49,000 --> 00:11:54,000
567
+ It is used for the same people with updates in the field.
568
+
569
+ 143
570
+ 00:11:54,000 --> 00:12:00,000
571
+ It is used when, for example, we need to present information for a user in the future.
572
+
573
+ 144
574
+ 00:12:01,000 --> 00:12:05,000
575
+ But we can allow a user to change this film.
576
+
577
+ 145
578
+ 00:12:06,000 --> 00:12:13,000
579
+ Still, we should be very careful with this attitude because not only we know how to use the browser
580
+
581
+ 146
582
+ 00:12:14,000 --> 00:12:22,000
583
+ and we can easily make the form input type enabled again just by removing this attribute from the page
584
+
585
+ 147
586
+ 00:12:22,000 --> 00:12:23,000
587
+ source code.
588
+
589
+ 148
590
+ 00:12:23,000 --> 00:12:28,000
591
+ So it is never heard of explanations of back and side.
592
+
593
+ 149
594
+ 00:12:29,000 --> 00:12:35,000
595
+ In most cases, full lions is achieved just for the visual presentation and the indications that editing
596
+
597
+ 150
598
+ 00:12:35,000 --> 00:12:39,000
599
+ of the current input is not needed at the moment.
600
+
601
+ 151
602
+ 00:12:39,000 --> 00:12:44,000
603
+ The only attribute in some degree is similar to the disabled.
604
+
605
+ 152
606
+ 00:12:44,000 --> 00:12:53,000
607
+ It also makes input not editable, but the main difference that with all the elements is just not editable
608
+
609
+ 153
610
+ 00:12:53,000 --> 00:13:01,000
611
+ but gets sent once the form submits and disabled element isn't editable and isn't sent on.
612
+
613
+ 154
614
+ 00:13:01,000 --> 00:13:05,000
615
+ Submit things unless you inside them.
616
+
617
+ 155
618
+ 00:13:05,000 --> 00:13:07,000
619
+ I'm going to show you this difference.
620
+
621
+ 156
622
+ 00:13:08,000 --> 00:13:15,000
623
+ Required does not allow a user to proceed with the form submission until the value will be inserted
624
+
625
+ 157
626
+ 00:13:15,000 --> 00:13:15,000
627
+ into input.
628
+
629
+ 158
630
+ 00:13:16,000 --> 00:13:21,000
631
+ Use this attribute for the input fields important to be sent on the back end.
632
+
633
+ 159
634
+ 00:13:22,000 --> 00:13:25,000
635
+ And never forget that this is just content.
636
+
637
+ 160
638
+ 00:13:25,000 --> 00:13:32,000
639
+ Validation from them can be easily enhanced by modification of the page source code in their files.
640
+
641
+ 161
642
+ 00:13:33,000 --> 00:13:35,000
643
+ Never forget about the consolidation.
644
+
645
+ 162
646
+ 00:13:36,000 --> 00:13:39,000
647
+ We're going to discuss this topic separately to.
648
+
649
+ 163
650
+ 00:13:40,000 --> 00:13:46,000
651
+ Actually there is not so much secret than the best way to know this topic is on practice.
652
+
653
+ 164
654
+ 00:13:47,000 --> 00:13:52,000
655
+ So let me start screen sharing and explanation of practical examples.
656
+
657
+ 165
658
+ 00:13:52,000 --> 00:13:58,000
659
+ As usual, you will be able to find the source code of all examples in attachments to the lesson to
660
+
661
+ 166
662
+ 00:13:58,000 --> 00:14:01,000
663
+ save time during the video recording.
664
+
665
+ 167
666
+ 00:14:01,000 --> 00:14:03,000
667
+ I prepared examples before the lesson.
668
+
669
+ 168
670
+ 00:14:04,000 --> 00:14:05,000
671
+ Let me walk you through the examples.
672
+
673
+ 169
674
+ 00:14:05,000 --> 00:14:07,000
675
+ Line by line.
676
+
677
+ 170
678
+ 00:14:07,000 --> 00:14:09,000
679
+ I open a single file.
680
+
681
+ 171
682
+ 00:14:09,000 --> 00:14:16,000
683
+ Examples of the scope for them or a is simple for and is described is a form tab.
684
+
685
+ 172
686
+ 00:14:16,000 --> 00:14:19,000
687
+ This style has two main attributes.
688
+
689
+ 173
690
+ 00:14:20,000 --> 00:14:26,000
691
+ Zero action contains a resource and address where four will be sent.
692
+
693
+ 174
694
+ 00:14:27,000 --> 00:14:31,000
695
+ In this case, I'll specify form demo address.
696
+
697
+ 175
698
+ 00:14:31,000 --> 00:14:37,000
699
+ I also create a demonstration that that is maps to this address linking this lesson.
700
+
701
+ 176
702
+ 00:14:37,000 --> 00:14:44,000
703
+ I'm going to show the implementation of form demo select and how data from the form is parts is frozen.
704
+
705
+ 177
706
+ 00:14:45,000 --> 00:14:52,000
707
+ The second batch is masked in this image to specify a message that is going to be used to send the data
708
+
709
+ 178
710
+ 00:14:52,000 --> 00:14:55,000
711
+ each time a force may be sent with it.
712
+
713
+ 179
714
+ 00:14:55,000 --> 00:15:01,000
715
+ Yet, of course, the methods in our particular case I want to submit form post message.
716
+
717
+ 180
718
+ 00:15:02,000 --> 00:15:06,000
719
+ This means that the form content will pass in the request body.
720
+
721
+ 181
722
+ 00:15:07,000 --> 00:15:13,000
723
+ Those are attributes of the form pack itself, but form consists of different inputs.
724
+
725
+ 182
726
+ 00:15:13,000 --> 00:15:19,000
727
+ As you already know, the first simple terms that we are going to use today and probably is the most
728
+
729
+ 183
730
+ 00:15:19,000 --> 00:15:21,000
731
+ popular is text.
732
+
733
+ 184
734
+ 00:15:22,000 --> 00:15:28,000
735
+ Use this input type for any text information you need to gather forms a user it can be a is a first
736
+
737
+ 185
738
+ 00:15:28,000 --> 00:15:31,000
739
+ thing unless you use a registration process.
740
+
741
+ 186
742
+ 00:15:31,000 --> 00:15:38,000
743
+ For example, attaching also to the attribute of the equals name actually will be used on the civil
744
+
745
+ 187
746
+ 00:15:38,000 --> 00:15:41,000
747
+ side to extract the value from this.
748
+
749
+ 188
750
+ 00:15:43,000 --> 00:15:43,000
751
+ Systematically.
752
+
753
+ 189
754
+ 00:15:44,000 --> 00:15:51,000
755
+ It allows to speak once a piece of the text improve control in terms of characters marks Landsat to
756
+
757
+ 190
758
+ 00:15:52,000 --> 00:15:57,000
759
+ allow us to specify a maximum number of characters a user can enter into the textbox.
760
+
761
+ 191
762
+ 00:15:58,000 --> 00:16:00,000
763
+ Also, we have a placeholder attribute.
764
+
765
+ 192
766
+ 00:16:01,000 --> 00:16:05,000
767
+ Use this attribute when you use to give a hand to the end user.
768
+
769
+ 193
770
+ 00:16:05,000 --> 00:16:07,000
771
+ What value should be answered here?
772
+
773
+ 194
774
+ 00:16:08,000 --> 00:16:13,000
775
+ In this case, we leave the field to enter the first name in the field.
776
+
777
+ 195
778
+ 00:16:14,000 --> 00:16:19,000
779
+ Let me also open this time allocation, web browser and demo in parallel.
780
+
781
+ 196
782
+ 00:16:20,000 --> 00:16:24,000
783
+ As you can see is a text field has last longer than AWS.
784
+
785
+ 197
786
+ 00:16:25,000 --> 00:16:29,000
787
+ This is because we set special attributes value for this.
788
+
789
+ 198
790
+ 00:16:30,000 --> 00:16:36,000
791
+ And when I try to insert text in this field, I can enter more.
792
+
793
+ 199
794
+ 00:16:36,000 --> 00:16:40,000
795
+ The maximum leave that will be set is achieved with max lengths.
796
+
797
+ 200
798
+ 00:16:41,000 --> 00:16:49,000
799
+ Z Stan characters lets you use a next input that will start from zero review of the source code.
800
+
801
+ 201
802
+ 00:16:50,000 --> 00:16:53,000
803
+ So let's get back to Eclipse.
804
+
805
+ 202
806
+ 00:16:54,000 --> 00:17:01,000
807
+ Parcells in good time will hide from the use or various answer in this field, but they actually will
808
+
809
+ 203
810
+ 00:17:01,000 --> 00:17:02,000
811
+ be sent to the SIM.
812
+
813
+ 204
814
+ 00:17:03,000 --> 00:17:07,000
815
+ It may have similar additional activities as previous input.
816
+
817
+ 205
818
+ 00:17:08,000 --> 00:17:13,000
819
+ I just decided to not copy ZO because we already saw how they may be applied.
820
+
821
+ 206
822
+ 00:17:14,000 --> 00:17:16,000
823
+ Let's now look at the demo.
824
+
825
+ 207
826
+ 00:17:16,000 --> 00:17:17,000
827
+ Is it possible?
828
+
829
+ 208
830
+ 00:17:18,000 --> 00:17:19,000
831
+ Most likely.
832
+
833
+ 209
834
+ 00:17:19,000 --> 00:17:25,000
835
+ You've faced with cases on other websites one user logging or registration.
836
+
837
+ 210
838
+ 00:17:26,000 --> 00:17:27,000
839
+ Your password is hidden.
840
+
841
+ 211
842
+ 00:17:28,000 --> 00:17:29,000
843
+ By the way.
844
+
845
+ 212
846
+ 00:17:29,000 --> 00:17:34,000
847
+ You'll really know how to use tools and what is password input time.
848
+
849
+ 213
850
+ 00:17:35,000 --> 00:17:43,000
851
+ So you're is it takes was it password to check it or in case you use passwords, it distorts as a chrome
852
+
853
+ 214
854
+ 00:17:43,000 --> 00:17:52,000
855
+ storage and to remembering you can inspect this element in dev tools and just to change input type does
856
+
857
+ 215
858
+ 00:17:52,000 --> 00:17:57,000
859
+ attacks and here's password to we enter let's continue.
860
+
861
+ 216
862
+ 00:17:58,000 --> 00:18:01,000
863
+ The next single target is email.
864
+
865
+ 217
866
+ 00:18:01,000 --> 00:18:04,000
867
+ There is nothing special at this stage to demo.
868
+
869
+ 218
870
+ 00:18:05,000 --> 00:18:12,000
871
+ If you have ever noticed on your mobile device, then when you fill out the field, start email, your
872
+
873
+ 219
874
+ 00:18:12,000 --> 00:18:20,000
875
+ keyboard is changed automatically and you have add sign and become key on the keyboard in order to ensure
876
+
877
+ 220
878
+ 00:18:20,000 --> 00:18:26,000
879
+ a nice user experience while entering your email and also before submitting such forms.
880
+
881
+ 221
882
+ 00:18:26,000 --> 00:18:33,000
883
+ The fourth interesting observation of the email field will be done to ensure that the format of female
884
+
885
+ 222
886
+ 00:18:33,000 --> 00:18:38,000
887
+ is visa requirements described as MFC 822.
888
+
889
+ 223
890
+ 00:18:39,000 --> 00:18:41,000
891
+ The following input is data.
892
+
893
+ 224
894
+ 00:18:42,000 --> 00:18:47,000
895
+ It provides us with nice data that simplifies navigation between dates.
896
+
897
+ 225
898
+ 00:18:48,000 --> 00:18:50,000
899
+ Let me show it to you in browser.
900
+
901
+ 226
902
+ 00:18:51,000 --> 00:18:57,000
903
+ So instead of the regular text field, you can use date speaker that means something like this.
904
+
905
+ 227
906
+ 00:18:58,000 --> 00:19:02,000
907
+ It is much easier to select the data you need according to the predefined formats.
908
+
909
+ 228
910
+ 00:19:03,000 --> 00:19:10,000
911
+ Also, I make this input mandatory for the user to fill out by adding the required attribute.
912
+
913
+ 229
914
+ 00:19:10,000 --> 00:19:13,000
915
+ I'm going to show you how this works.
916
+
917
+ 230
918
+ 00:19:13,000 --> 00:19:17,000
919
+ One will submit the for the form controls.
920
+
921
+ 231
922
+ 00:19:17,000 --> 00:19:19,000
923
+ Also popular in several forms.
924
+
925
+ 232
926
+ 00:19:19,000 --> 00:19:22,000
927
+ I'm talking about radio buttons and checkboxes.
928
+
929
+ 233
930
+ 00:19:23,000 --> 00:19:30,000
931
+ Usually radio buttons are used to select one of the proposed options and checkboxes I used.
932
+
933
+ 234
934
+ 00:19:30,000 --> 00:19:37,000
935
+ One Multiple options allow for selection pant actions in case I have two radio buttons with the same
936
+
937
+ 235
938
+ 00:19:37,000 --> 00:19:39,000
939
+ name but with different values.
940
+
941
+ 236
942
+ 00:19:41,000 --> 00:19:41,000
943
+ Move Semaphore.
944
+
945
+ 237
946
+ 00:19:41,000 --> 00:19:48,000
947
+ And we'll understand that in this case, only one radio button should be selected and the value of the
948
+
949
+ 238
950
+ 00:19:48,000 --> 00:19:53,000
951
+ selected radio button will be sent as a seven in my checkbooks input type.
952
+
953
+ 239
954
+ 00:19:53,000 --> 00:20:00,000
955
+ I use check to get this out and it is used to select checkbox by default.
956
+
957
+ 240
958
+ 00:20:01,000 --> 00:20:04,000
959
+ The Chrome browser Xanadu exists.
960
+
961
+ 241
962
+ 00:20:05,000 --> 00:20:12,000
963
+ I believe this equal time is also for me that you let me select the French radio balance.
964
+
965
+ 242
966
+ 00:20:13,000 --> 00:20:21,000
967
+ You can see is that when I select another, I give them the first one become I'm selected and my checkbox
968
+
969
+ 243
970
+ 00:20:21,000 --> 00:20:22,000
971
+ is checked by default.
972
+
973
+ 244
974
+ 00:20:23,000 --> 00:20:26,000
975
+ I can remove checkbox if I don't need it.
976
+
977
+ 245
978
+ 00:20:27,000 --> 00:20:32,000
979
+ Well you thought zero zero view of the slides about disabled and read on the attributes.
980
+
981
+ 246
982
+ 00:20:33,000 --> 00:20:34,000
983
+ Let's see how they work.
984
+
985
+ 247
986
+ 00:20:35,000 --> 00:20:37,000
987
+ I have to include with text type.
988
+
989
+ 248
990
+ 00:20:38,000 --> 00:20:45,000
991
+ One is disabled and another one is where the only was the help of value, attribute and hopefully default
992
+
993
+ 249
994
+ 00:20:45,000 --> 00:20:47,000
995
+ value in these inputs.
996
+
997
+ 250
998
+ 00:20:48,000 --> 00:20:54,000
999
+ If we could explore these inputs in the browser, we are going to find that they look similar in terms
1000
+
1001
+ 251
1002
+ 00:20:54,000 --> 00:20:57,000
1003
+ that we can edit names of them.
1004
+
1005
+ 252
1006
+ 00:20:58,000 --> 00:21:06,000
1007
+ And you can see one difference disabled input is grayed out while we are going equal to the looks like
1008
+
1009
+ 253
1010
+ 00:21:06,000 --> 00:21:07,000
1011
+ all other equals.
1012
+
1013
+ 254
1014
+ 00:21:07,000 --> 00:21:09,000
1015
+ We just can edit it.
1016
+
1017
+ 255
1018
+ 00:21:10,000 --> 00:21:14,000
1019
+ One will submit the form to the service that we're going to see.
1020
+
1021
+ 256
1022
+ 00:21:14,000 --> 00:21:19,000
1023
+ The main difference is the value from the disabled field will be absent.
1024
+
1025
+ 257
1026
+ 00:21:19,000 --> 00:21:21,000
1027
+ These are for data.
1028
+
1029
+ 258
1030
+ 00:21:22,000 --> 00:21:29,000
1031
+ And that's a really important type of thing is hidden while let me show it to you in the third party
1032
+
1033
+ 259
1034
+ 00:21:29,000 --> 00:21:31,000
1035
+ I use hidden thought.
1036
+
1037
+ 260
1038
+ 00:21:31,000 --> 00:21:39,000
1039
+ One needs to imagine that you want to update the user or existing problem and user don't care about
1040
+
1041
+ 261
1042
+ 00:21:39,000 --> 00:21:41,000
1043
+ its own idea in the system.
1044
+
1045
+ 262
1046
+ 00:21:41,000 --> 00:21:48,000
1047
+ Anyway, user can change this ID and the user doesn't want to know it's indeed.
1048
+
1049
+ 263
1050
+ 00:21:48,000 --> 00:21:56,000
1051
+ The same story was updated product and product and taking into account shipping protocol has no state
1052
+
1053
+ 264
1054
+ 00:21:56,000 --> 00:22:01,000
1055
+ when it tells the server what exactly user in the system or product.
1056
+
1057
+ 265
1058
+ 00:22:01,000 --> 00:22:03,000
1059
+ We want to update this one.
1060
+
1061
+ 266
1062
+ 00:22:03,000 --> 00:22:10,000
1063
+ I want to pass information is a form but I don't want to make it reasonable for the end user can understand
1064
+
1065
+ 267
1066
+ 00:22:10,000 --> 00:22:17,000
1067
+ this user homework when will work on the product that the user update single forms.
1068
+
1069
+ 268
1070
+ 00:22:17,000 --> 00:22:24,000
1071
+ You would use this information and you will use hidden form release and yeah, I use similarly achievement
1072
+
1073
+ 269
1074
+ 00:22:24,000 --> 00:22:26,000
1075
+ to pass some information in this field.
1076
+
1077
+ 270
1078
+ 00:22:27,000 --> 00:22:32,000
1079
+ Let's look at how it looks like in the web browser and use a web browser.
1080
+
1081
+ 271
1082
+ 00:22:32,000 --> 00:22:38,000
1083
+ As you can see, zero is and the input because we don't want a browser.
1084
+
1085
+ 272
1086
+ 00:22:38,000 --> 00:22:45,000
1087
+ Our end user was information that he or she doesn't need but that we still need because this is server
1088
+
1089
+ 273
1090
+ 00:22:46,000 --> 00:22:47,000
1091
+ was all us information.
1092
+
1093
+ 274
1094
+ 00:22:49,000 --> 00:22:57,000
1095
+ Next to them is Select Select Input that allows us to create a drop down with different options.
1096
+
1097
+ 275
1098
+ 00:22:57,000 --> 00:23:02,000
1099
+ In this example, it is suggested to select a car from the predefined list of options.
1100
+
1101
+ 276
1102
+ 00:23:06,000 --> 00:23:09,000
1103
+ And that's the input that is called reset.
1104
+
1105
+ 277
1106
+ 00:23:09,000 --> 00:23:13,000
1107
+ And it is used to reset the state of the theme of form.
1108
+
1109
+ 278
1110
+ 00:23:13,000 --> 00:23:14,000
1111
+ Let me show it to you.
1112
+
1113
+ 279
1114
+ 00:23:15,000 --> 00:23:23,000
1115
+ I also have value achieved here because resetting the top is displayed like a bottom is very active.
1116
+
1117
+ 280
1118
+ 00:23:23,000 --> 00:23:26,000
1119
+ It allows me to configure a label on the bottom.
1120
+
1121
+ 281
1122
+ 00:23:26,000 --> 00:23:29,000
1123
+ Let's check how reset works on practice.
1124
+
1125
+ 282
1126
+ 00:23:30,000 --> 00:23:35,000
1127
+ When I click on the reset button all our equals at zero, obviously.
1128
+
1129
+ 283
1130
+ 00:23:35,000 --> 00:23:38,000
1131
+ Besides, we go in and disable inputs.
1132
+
1133
+ 284
1134
+ 00:23:39,000 --> 00:23:42,000
1135
+ And so that is because every single type is a submit.
1136
+
1137
+ 285
1138
+ 00:23:43,000 --> 00:23:48,000
1139
+ This is one of the key input types that actually allows us to send from data.
1140
+
1141
+ 286
1142
+ 00:23:48,000 --> 00:23:51,000
1143
+ Those are similar, similar to the asset input type.
1144
+
1145
+ 287
1146
+ 00:23:52,000 --> 00:23:59,000
1147
+ Submit input type is also displayed as a bottom and label key to configure it with the help of value.
1148
+
1149
+ 288
1150
+ 00:24:01,000 --> 00:24:05,000
1151
+ For the sake of example, letting it go, sign up next on the bottom.
1152
+
1153
+ 289
1154
+ 00:24:06,000 --> 00:24:14,000
1155
+ Actually form submission represents is a creation of the request with the mass specified instant message
1156
+
1157
+ 290
1158
+ 00:24:14,000 --> 00:24:22,000
1159
+ attribute of the form tag is a resource specified in the action attribute of the form that the submitting
1160
+
1161
+ 291
1162
+ 00:24:22,000 --> 00:24:25,000
1163
+ code is our last element for this form.
1164
+
1165
+ 292
1166
+ 00:24:25,000 --> 00:24:29,000
1167
+ Let's now go back to the web browser and submit this form.
1168
+
1169
+ 293
1170
+ 00:24:30,000 --> 00:24:38,000
1171
+ Let's include some data and let's put regular text in the mail, but not in the mail address.
1172
+
1173
+ 294
1174
+ 00:24:38,000 --> 00:24:41,000
1175
+ Also, let's negate the input empty.
1176
+
1177
+ 295
1178
+ 00:24:42,000 --> 00:24:51,000
1179
+ Now let's try to submit the form and you can see that the nation works as expected, because I said
1180
+
1181
+ 296
1182
+ 00:24:51,000 --> 00:24:58,000
1183
+ that there's going to be an email in this input, but entering a regular text instead said Let me figure
1184
+
1185
+ 297
1186
+ 00:24:58,000 --> 00:25:00,000
1187
+ this math at sign.
1188
+
1189
+ 298
1190
+ 00:25:01,000 --> 00:25:03,000
1191
+ That's a means to form one more time.
1192
+
1193
+ 299
1194
+ 00:25:04,000 --> 00:25:07,000
1195
+ And this time form tells me that's required.
1196
+
1197
+ 300
1198
+ 00:25:07,000 --> 00:25:09,000
1199
+ Equal is not populated.
1200
+
1201
+ 301
1202
+ 00:25:09,000 --> 00:25:10,000
1203
+ Was equal.
1204
+
1205
+ 302
1206
+ 00:25:11,000 --> 00:25:15,000
1207
+ Do you remember that we used to acquired our TV was the input.
1208
+
1209
+ 303
1210
+ 00:25:16,000 --> 00:25:19,000
1211
+ I need to fix this by selecting a date picker.
1212
+
1213
+ 304
1214
+ 00:25:20,000 --> 00:25:22,000
1215
+ Now we can submit the form.
1216
+
1217
+ 305
1218
+ 00:25:23,000 --> 00:25:29,000
1219
+ The first reasons are for I want to draw attention to one more additional fact.
1220
+
1221
+ 306
1222
+ 00:25:29,000 --> 00:25:34,000
1223
+ The first lesson I started as a server and pay attention to the address.
1224
+
1225
+ 307
1226
+ 00:25:35,000 --> 00:25:41,000
1227
+ I opened my demo HTML form on the server but not on the file system.
1228
+
1229
+ 308
1230
+ 00:25:42,000 --> 00:25:49,000
1231
+ I need to have my server up and running in order to process that data from the, for instance, a web.
1232
+
1233
+ 309
1234
+ 00:25:50,000 --> 00:25:52,000
1235
+ Now let's submit the form.
1236
+
1237
+ 310
1238
+ 00:25:53,000 --> 00:26:00,000
1239
+ And we see the data from the form published on another source, Beth mentions that we see all the data
1240
+
1241
+ 311
1242
+ 00:26:00,000 --> 00:26:05,000
1243
+ that we search for besides disabled input.
1244
+
1245
+ 312
1246
+ 00:26:06,000 --> 00:26:12,000
1247
+ How we managed to take this information from the form of data and send it back and as a response.
1248
+
1249
+ 313
1250
+ 00:26:12,000 --> 00:26:15,000
1251
+ Let's explore the source code of the server.
1252
+
1253
+ 314
1254
+ 00:26:15,000 --> 00:26:17,000
1255
+ So this map is a form demo euro.
1256
+
1257
+ 315
1258
+ 00:26:18,000 --> 00:26:25,000
1259
+ I open the source code of the form demo so that you can find the source code of this server in attachments
1260
+
1261
+ 316
1262
+ 00:26:25,000 --> 00:26:26,000
1263
+ to the lesson.
1264
+
1265
+ 317
1266
+ 00:26:27,000 --> 00:26:33,000
1267
+ EMERSON What I do here is just overriding, of course the message because the for the Sydney was it
1268
+
1269
+ 318
1270
+ 00:26:33,000 --> 00:26:39,000
1271
+ was the message and the from the request parameters using Tsarnaevs.
1272
+
1273
+ 319
1274
+ 00:26:40,000 --> 00:26:47,000
1275
+ So the name specific here is a gift from the massive should be the same as the value of the name attribute
1276
+
1277
+ 320
1278
+ 00:26:47,000 --> 00:26:52,000
1279
+ of input element in our estimate for is it's clear.
1280
+
1281
+ 321
1282
+ 00:26:53,000 --> 00:26:54,000
1283
+ Just look at here.
1284
+
1285
+ 322
1286
+ 00:26:54,000 --> 00:27:04,000
1287
+ I have email from the name in the cell that sends email parental needs to know form and legs is I printed
1288
+
1289
+ 323
1290
+ 00:27:04,000 --> 00:27:06,000
1291
+ all the input photos.
1292
+
1293
+ 324
1294
+ 00:27:07,000 --> 00:27:13,000
1295
+ If you understand this example, this is great because you already know what to do next.
1296
+
1297
+ 325
1298
+ 00:27:13,000 --> 00:27:14,000
1299
+ This is data.
1300
+
1301
+ 326
1302
+ 00:27:15,000 --> 00:27:23,000
1303
+ Just imagine that once you get various forms of food, you can perceive user was user registration or
1304
+
1305
+ 327
1306
+ 00:27:23,000 --> 00:27:32,000
1307
+ was user log into the app and redirection to another pages or was returning some error message you can
1308
+
1309
+ 328
1310
+ 00:27:32,000 --> 00:27:37,000
1311
+ proceed was in any court and implementation of any business logic in the.
1312
+
1313
+ 329
1314
+ 00:27:38,000 --> 00:27:44,000
1315
+ You're got to have opportunity to practice your skills in writing HTML forms during the home task.
1316
+
1317
+ 330
1318
+ 00:27:45,000 --> 00:27:50,000
1319
+ But as of now, that's all what I wanted to discuss with you in scope of this lesson.
1320
+
1321
+ 331
1322
+ 00:27:50,000 --> 00:27:53,000
1323
+ Let's recap what we have learned today.
1324
+
1325
+ 332
1326
+ 00:27:54,000 --> 00:27:59,000
1327
+ In this lesson, we learn what a simple form is and when to use it.
1328
+
1329
+ 333
1330
+ 00:28:00,000 --> 00:28:06,000
1331
+ We learned main form elements include an input element and different input types.
1332
+
1333
+ 334
1334
+ 00:28:07,000 --> 00:28:11,000
1335
+ We learn key input element attributes and restrictions.
1336
+
1337
+ 335
1338
+ 00:28:12,000 --> 00:28:17,000
1339
+ After this lesson, you know, what is the difference between disabled and remotely activist?
1340
+
1341
+ 336
1342
+ 00:28:18,000 --> 00:28:23,000
1343
+ Also together, we created our first H demo for you.
1344
+
1345
+ 337
1346
+ 00:28:23,000 --> 00:28:28,000
1347
+ In the demo we reviewed many different things, including the demo of Human Achievements.
1348
+
1349
+ 338
1350
+ 00:28:29,000 --> 00:28:31,000
1351
+ You saw how former set verbs.
1352
+
1353
+ 339
1354
+ 00:28:32,000 --> 00:28:38,000
1355
+ We learned how h item of validation can prevent invalid user input on the from them.
1356
+
1357
+ 340
1358
+ 00:28:39,000 --> 00:28:47,000
1359
+ After that, we saw how we can submit full data to this server and learned how to process from input
1360
+
1361
+ 341
1362
+ 00:28:47,000 --> 00:28:47,000
1363
+ on the back end.
1364
+
1365
+ 342
1366
+ 00:28:48,000 --> 00:28:49,000
1367
+ On the seller side.
1368
+
1369
+ 343
1370
+ 00:28:50,000 --> 00:28:51,000
1371
+ That's all for this lesson.
1372
+
1373
+ 344
1374
+ 00:28:51,000 --> 00:28:53,000
1375
+ Thanks a lot for your attention.
1376
+
1377
+ 345
1378
+ 00:28:53,000 --> 00:28:56,000
1379
+ Have a great day and see you in the next lesson.
1380
+
65 - HTML & CSS/003 Source-code-of-HTML-example-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/form-demo.html
65 - HTML & CSS/003 Source-code-of-the-Java-Servlet-example-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/FormDemoServlet.java
65 - HTML & CSS/external-links.txt ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ 001 Source-code-of-the-HTML-file-example-from-the-lesson
3
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/index.html
4
+
5
+ 002 HTML-with-CSS-source-code
6
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/css-demo.html
7
+
8
+ 002 CSS-source-code
9
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/css/styles.css
10
+
11
+ 003 Source-code-of-HTML-example-from-the-lesson
12
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/form-demo.html
13
+
14
+ 003 Source-code-of-the-Java-Servlet-example-from-the-lesson
15
+ https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/FormDemoServlet.java
66 - ===== HTML & CSS Interview Preparation =====/001 Part 1 HTML Interview - Questions and Answers.html ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Part 1 HTML Interview - Questions and Answers</title>
7
+
8
+ <style>
9
+ * {
10
+ box-sizing: border-box;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ body {
15
+ font-family: var(--font-stack-text);
16
+ font-weight: 400;
17
+ line-height: 1.4;
18
+ font-size: 1.6rem;
19
+ color: #2d2f31;
20
+ }
21
+ .container {
22
+ position: relative;
23
+ height: 100%;
24
+ overflow-y: auto;
25
+ }
26
+ .content {
27
+ padding: 3.2rem 4.8rem;
28
+ word-break: break-word;
29
+ max-width: 69.6rem;
30
+ margin: 0 auto;
31
+ }
32
+ .heading {
33
+ margin-bottom: 24px;
34
+ font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", Helvetica, Arial, sans-serif,
35
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
36
+ font-weight: 700;
37
+ line-height: 1.2;
38
+ letter-spacing: 0;
39
+ font-size: 32px;
40
+ max-width: 36em;
41
+ }
42
+ .article-asset-container {
43
+ padding: 2.4rem;
44
+ }
45
+ .article-asset-container p {
46
+ font-size: 19px;
47
+ }
48
+ code {
49
+ background-color: #fff;
50
+ border: 1px solid #d1d7dc;
51
+ color: #b4690e;
52
+ font-size: 80%;
53
+ padding: 0.2rem 0.4rem;
54
+ font-family: sfmono-regular, Consolas, liberation mono, Menlo, Courier, monospace;
55
+ }
56
+ p {
57
+ font-weight: 400;
58
+ }
59
+ </style>
60
+ </head>
61
+ <body>
62
+ <div class="container">
63
+ <div class="content">
64
+ <div class="heading">Part 1 HTML Interview - Questions and Answers</div>
65
+ <div class="article-asset-container"><ul><li><p><strong>WHAT IS HTML?</strong></p></li></ul><p><br></p><p>HTML (HyperText Markup Language, HTML) is a markup language. You are using HTML to mark up a text document. In other words, it is responsible for the location in the document of your texts, drawings, tables intended for life on the Internet - this is in simple words.</p><p>In other words, web page consists from different elements, and HTML helps to define the placement of web page elements relatively to each other.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS A DOCTYPE AND WHY IS IT NEEDED?</strong></p></li></ul><p><br></p><p>DOCTYPE is a Document Type Definition (DTD), the rules by which a particular XML or (X)HTML document (web page) is validated. Through this entry, the browser determines which version of the DTD is used in a given document. And it is needed so that browsers correctly display the markup of the document. If you do not specify DOCTYPE, then the browser will add "something from itself", and each browser will add its own "something from itself". As a result, there can be no talk of any cross-browser compatibility.</p><p><br></p><p><br></p><p><br></p><ul><li><p><strong>HOW DOES DIV DIFFERENT FROM SPAN?</strong></p></li></ul><p><br></p><p>div is a block container and span is inline. Containers are something that anything else can be nested in. div is used for block layout and span is for text. div forms a block from what is in it from a new line and after it the element comes from a new line (if you do not change the behavior with CSS), and the span does not create new line and "fits".</p><p><br></p><p><br></p><ul><li><p><strong>HOW ARE COMMENTS IN HTML?</strong></p></li></ul><p><br></p><p>&lt;!-- like this→</p><p><br></p><p><br></p><ul><li><p><strong>LINKS. HOW TO SET THE ADDRESS OF THE DOCUMENT TO GO TO?</strong></p></li></ul><p><br></p><p>&lt;a href="https://it-bulls.com/example/example.html"&gt;Absolute Link&lt;/a&gt;</p><p>&lt;a href="../../example/example.html"&gt;Relative link&lt;/a&gt;</p><p><br></p><p><br></p><ul><li><p><strong>HOW TO MAKE A LINK TO EMAIL?</strong></p></li></ul><p><br></p><p>&lt;a href="mailto:testmail@mail.com"&gt;E-mail me&lt;/a&gt;</p><p><br></p><p><br></p><ul><li><p><strong>WHAT DO THE &lt;EM&gt;&lt;/EM&gt; TAGS DO?</strong></p></li></ul><p><br></p><p>Display enclosed text in italics.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS &lt;OL&gt;&lt;/OL&gt;, &lt;UL&gt;&lt;/UL&gt; AND &lt;LI&gt;&lt;/LI&gt; ?</strong></p></li></ul><p><br></p><p>The &lt;ol&gt;&lt;ol&gt; tag sets up an ordered list. Each list item must begin and end with &lt;li&gt;&lt;li&gt; tags. If a style sheet is applied to the &lt;ol&gt; tag, then the &lt;li&gt; elements inherit these properties. The &lt;ul&gt; tag sets up an unordered (bulleted) list.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT DO WE USUALLY PUT INTO THE HEAD TAG?</strong></p></li></ul><p><br></p><p>This tag includes:</p><ul><li><p>The title tag: This is a very important tag, especially from an SEO standpoint. How is it prescribed? With &lt;title&gt;&lt;/title&gt; tags. That is, it turns out something like this: &lt;title&gt;The title of your web document&lt;/title&gt;;</p></li><li><p>Meta tags. Meta tags are mainly needed for three things: to register the encoding, description and keywords.</p></li><li><p>Also, inside the head tags, the path to the style sheet is written, this is how the web page and the style sheet are linked, or CSS is written directly on the page, inside the style tags.</p></li><li><p>All kinds of scripts are listed inside the head tag. How do they connect to the HTML page? Script tags are written indicating the type of language, and inside them, either the script code is written, or the src attribute is used with a value that indicates the path to the script.</p></li></ul><p><br></p><p><br></p><p><br></p><ul><li><p><strong>WHY ARE THE TAGS &lt;DL&gt;,&lt;DT&gt;,&lt;DD&gt; NEEDED?</strong></p></li></ul><p><br></p><p>The &lt;dl&gt;,&lt;dt&gt;,&lt;dd&gt; tags are designed to create a list of definitions. Each such list begins with a &lt;dl&gt; container, which includes a &lt;dt&gt; tag that creates a term and a &lt;dd&gt; tag that defines that term. The closing &lt;/dd&gt; tag is optional because the next tag signals the end of the previous element. However, it is good practice to close all tags.</p><p><br></p><p>For example:<br><br>&lt;dl&gt;</p><p>&lt;dt&gt;Coffee&lt;/dt&gt;</p><p>&lt;dd&gt;Black hot drink&lt;/dd&gt;</p><p>&lt;dt&gt;Milk&lt;/dt&gt;</p><p>&lt;dd&gt;White cold drink&lt;/dd&gt;</p><p>&lt;/dl&gt;</p><p><br></p><p><br></p><ul><li><p><strong>WHY DO THE &lt;TR&gt;, &lt;TH&gt;, &lt;TD&gt; TAGS NEED?</strong></p></li></ul><p><br></p><p>The &lt;tr&gt; tag serves as a container for creating a table row. Each cell within such a row can be specified using the &lt;th&gt; or &lt;td&gt; tag. &lt;th&gt; is designed to create one table cell, which is designated as a header cell. The text in such a cell is displayed by the browser usually in bold and centered. The &lt;th&gt; tag must be placed inside the &lt;tr&gt; container, which in turn is placed inside the &lt;table&gt; tag. &lt;td&gt; is for creating one table cell. The &lt;td&gt; tag must be placed inside the &lt;tr&gt; container, which in turn is placed inside the &lt;table&gt; tag.</p><p><br></p><p><br></p><ul><li><p><strong>IN WHICH CASE IS IT BETTER TO WRITE HTML CODE?</strong></p></li></ul><p><br></p><p>Previously, it was thought to be irrelevant. But with the advent of XHTML, this question has a definite answer - we write all tags, attributes and predefined values in lower case.</p><p><br></p><p><br></p><ul><li><p><strong>IS IT MANDATORY TO WRITE ALT IN &lt;IMG&gt;?</strong></p></li></ul><p><br></p><p>Yes. This is required by the standard, and common sense, as well. Some users still disable pictures and some use text or even voice browsers. If the picture does not carry any semantic load (design element, "spacer", etc.), then you can put the value alt="" in the &lt;img&gt; tag.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS ENTITIES?</strong></p></li></ul><p><br></p><p>Entities are combinations of the &amp; sign and an alphabetic or numeric code after it, designed to replace characters that cannot occur "pure" in HTML text, such as the "&lt;" character.</p><p><br></p></div>
66
+ </div>
67
+ </div>
68
+ </body>
69
+ </html>
66 - ===== HTML & CSS Interview Preparation =====/002 Part 2 CSS Interview - Questions and Answers.html ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Part 2 CSS Interview - Questions and Answers</title>
7
+
8
+ <style>
9
+ * {
10
+ box-sizing: border-box;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ body {
15
+ font-family: var(--font-stack-text);
16
+ font-weight: 400;
17
+ line-height: 1.4;
18
+ font-size: 1.6rem;
19
+ color: #2d2f31;
20
+ }
21
+ .container {
22
+ position: relative;
23
+ height: 100%;
24
+ overflow-y: auto;
25
+ }
26
+ .content {
27
+ padding: 3.2rem 4.8rem;
28
+ word-break: break-word;
29
+ max-width: 69.6rem;
30
+ margin: 0 auto;
31
+ }
32
+ .heading {
33
+ margin-bottom: 24px;
34
+ font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", Helvetica, Arial, sans-serif,
35
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
36
+ font-weight: 700;
37
+ line-height: 1.2;
38
+ letter-spacing: 0;
39
+ font-size: 32px;
40
+ max-width: 36em;
41
+ }
42
+ .article-asset-container {
43
+ padding: 2.4rem;
44
+ }
45
+ .article-asset-container p {
46
+ font-size: 19px;
47
+ }
48
+ code {
49
+ background-color: #fff;
50
+ border: 1px solid #d1d7dc;
51
+ color: #b4690e;
52
+ font-size: 80%;
53
+ padding: 0.2rem 0.4rem;
54
+ font-family: sfmono-regular, Consolas, liberation mono, Menlo, Courier, monospace;
55
+ }
56
+ p {
57
+ font-weight: 400;
58
+ }
59
+ </style>
60
+ </head>
61
+ <body>
62
+ <div class="container">
63
+ <div class="content">
64
+ <div class="heading">Part 2 CSS Interview - Questions and Answers</div>
65
+ <div class="article-asset-container"><ul><li><p><strong>WHAT IS CSS?</strong></p></li></ul><p><br></p><p>Cascading Style Sheets (CSS) - cascading style sheets, is a formal language for describing the appearance of a document written using a markup language. Stylesheets are an attempt to separate page design details from its structure and content.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS THE DIFFERENCE BETWEEN #MY AND .MY?</strong></p></li></ul><p><br></p><p>#my - id CSS selector.</p><p>.my is a class CSS selector.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS THE DIFFERENCE BETWEEN MARGIN AND PADDING?</strong></p></li></ul><p><br></p><p>margin - outer margin (outside from the block borders to the rest of the page elements);</p><p><br></p><p>padding - inner padding (inside from block borders to content).</p><p><br></p><p>Let's say we have an object with a border around it. Here margin is the outer margin and padding is the inner margin. Or we have a paragraph of text. Therefore, margin is an indent from other neighboring objects (left, right side of the screen, neighboring paragraphs, various surrounding pictures). And padding is inner padding. If we set padding: 50px for this paragraph, then the letters themselves will not start from the edge of the paragraph, but with an indent of 50 pixels.</p><p><br></p><p><br></p><ul><li><p><strong>WHY ARE CSS STYLESHEETS CALLED CASCADE?</strong></p></li></ul><p><br></p><p>The word "cascading" means that the output of each tag in a document can be influenced by several style specifications at once, forming a hierarchical system. For example, document-specific specifications can be overridden by a style file that is common to all documents on the server.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS ALTERNATIVE STYLESHEETS?</strong></p></li></ul><p><br></p><p>An alternate style sheet is a style sheet that defines styles to be used instead of the default styles. For example, the user can make a choice, depending on their preferences, if we prepare one style sheet for the small screen and another for the visually impaired (with large fonts). Alternative styles allow the user to make a choice of the most appropriate of them.</p><p><br></p><p><br></p><p><br></p><ul><li><p><strong>WHAT IS THE DIFFERENCE BETWEEN THE VALUES 0 AND AUTO IN THE MARGIN PROPERTY?</strong></p></li></ul><p><br></p><p>In vertical margins, auto always means 0. In horizontal margins, auto means 0 only if the width property is also auto.</p><p><br></p><p><br></p><ul><li><p><strong>WHAT PROPERTY DOES THE BACK COLOR SET?</strong></p></li></ul><p><br></p><p>background-color.</p><p><br></p><p><br></p><ul><li><p><strong>HOW ARE COMMENTS ARE USED IN CSS?</strong></p></li></ul><p><br></p><p>/* like this */</p><p><br></p><p><br></p><p><br></p><ul><li><p><strong>HOW TO SET RED COLOR FOR ALL ELEMENTS WITH CLASS RED?</strong></p></li></ul><p><br></p><p>.red { background-color:red; }</p><p><br></p><p><br></p><ul><li><p><strong>HOW TO REMOVE THE UNDERLINE FOR ALL LINKS ON THE PAGE?</strong></p></li></ul><p><br></p><p>a { text-decoration:none; }</p><p><br></p><p><br></p><ul><li><p><strong>HOW TO BOLD TEXT IN ALL &lt;P&gt; ELEMENTS?</strong></p></li></ul><p><br></p><p>p { font-weight: bold; }</p><p><br></p><p><br></p><ul><li><p><strong>WHAT DOES THE CLEAR PROPERTY DO?</strong></p></li></ul><p><br></p><p>Sets which side of an element is not allowed to be wrapped around by other elements. If float is set to wrap around an element, then clear overrides its effect for the specified sides.</p><p><br></p></div>
66
+ </div>
67
+ </div>
68
+ </body>
69
+ </html>
67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/001 Exam HTML, CSS, Servlets, Web Filters & Web Server_en.srt ADDED
@@ -0,0 +1,1276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, Jim.
4
+
5
+ 2
6
+ 00:00:07,000 --> 00:00:09,000
7
+ And this video we're going to you a whole cast.
8
+
9
+ 3
10
+ 00:00:09,000 --> 00:00:12,000
11
+ And also we'll reveal the solution to the home dustbin.
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:13,000
15
+ After this video.
16
+
17
+ 5
18
+ 00:00:13,000 --> 00:00:20,000
19
+ You will realize how much things you already can do because in this home task, we'll use all the noise
20
+
21
+ 6
22
+ 00:00:20,000 --> 00:00:24,000
23
+ that we got in previous lessons to create our own online store web application.
24
+
25
+ 7
26
+ 00:00:25,000 --> 00:00:28,000
27
+ You as a whole course go from zero to the first job.
28
+
29
+ 8
30
+ 00:00:28,000 --> 00:00:30,000
31
+ We welcome creation of this online store.
32
+
33
+ 9
34
+ 00:00:30,000 --> 00:00:34,000
35
+ From the very beginning, we learned a lot of basics.
36
+
37
+ 10
38
+ 00:00:34,000 --> 00:00:42,000
39
+ We created our console online store after the learned databases and many other different topics, including
40
+
41
+ 11
42
+ 00:00:42,000 --> 00:00:46,000
43
+ Build Tools, Now Garden and many other different things.
44
+
45
+ 12
46
+ 00:00:46,000 --> 00:00:51,000
47
+ And now when we learned HTML, CSS, yes, web server.
48
+
49
+ 13
50
+ 00:00:51,000 --> 00:00:57,000
51
+ So this technology, we're good to proceed with the creation and deployment of our first online store.
52
+
53
+ 14
54
+ 00:00:58,000 --> 00:01:04,000
55
+ As a prerequisite for this home task, you have to be sure that you completed home task about databases
56
+
57
+ 15
58
+ 00:01:04,000 --> 00:01:06,000
59
+ and now cart.
60
+
61
+ 16
62
+ 00:01:06,000 --> 00:01:12,000
63
+ And if not, it seems that you have enough knowledge about relational databases and DBC to implement
64
+
65
+ 17
66
+ 00:01:12,000 --> 00:01:14,000
67
+ this piece of the functionality.
68
+
69
+ 18
70
+ 00:01:15,000 --> 00:01:17,000
71
+ I already completed this homework.
72
+
73
+ 19
74
+ 00:01:17,000 --> 00:01:21,000
75
+ I have all the details described in the Google Docs as usual.
76
+
77
+ 20
78
+ 00:01:22,000 --> 00:01:25,000
79
+ You can find this Google doc in attachments to the lesson.
80
+
81
+ 21
82
+ 00:01:26,000 --> 00:01:29,000
83
+ Take your time to read through very attentively.
84
+
85
+ 22
86
+ 00:01:30,000 --> 00:01:33,000
87
+ I shared with you a lot of the details about the implementation.
88
+
89
+ 23
90
+ 00:01:33,000 --> 00:01:35,000
91
+ Gave you a lot of hints.
92
+
93
+ 24
94
+ 00:01:36,000 --> 00:01:42,000
95
+ This document also contains the designs and a reference to the source code as a solution at the bottom.
96
+
97
+ 25
98
+ 00:01:43,000 --> 00:01:44,000
99
+ So pay attention.
100
+
101
+ 26
102
+ 00:01:44,000 --> 00:01:49,000
103
+ My solution of this task here is the bottom of the file.
104
+
105
+ 27
106
+ 00:01:49,000 --> 00:01:57,000
107
+ You can click on the reference and open is accompanied with all changes on the top or to open the project
108
+
109
+ 28
110
+ 00:01:57,000 --> 00:01:58,000
111
+ on the top.
112
+
113
+ 29
114
+ 00:01:59,000 --> 00:02:05,000
115
+ The difference is obvious considering that the project will be modified and we have as classes do and
116
+
117
+ 30
118
+ 00:02:05,000 --> 00:02:07,000
119
+ we have other topics to review and to learn.
120
+
121
+ 31
122
+ 00:02:08,000 --> 00:02:12,000
123
+ All this means that the project will be modified as it goes through the course.
124
+
125
+ 32
126
+ 00:02:13,000 --> 00:02:19,000
127
+ As you may understand, the project become more complex in comparison with console application and it
128
+
129
+ 33
130
+ 00:02:19,000 --> 00:02:25,000
131
+ is really hard to create templates for each home task and keep each solution separately.
132
+
133
+ 34
134
+ 00:02:26,000 --> 00:02:32,000
135
+ What I recommend you instead is to explore commit history of the project, to understand how project
136
+
137
+ 35
138
+ 00:02:32,000 --> 00:02:36,000
139
+ evolved and check content of the specific commit.
140
+
141
+ 36
142
+ 00:02:37,000 --> 00:02:43,000
143
+ Like with this home task for example, to free to check out as a specific commit to explore the state
144
+
145
+ 37
146
+ 00:02:43,000 --> 00:02:44,000
147
+ of the system.
148
+
149
+ 38
150
+ 00:02:45,000 --> 00:02:45,000
151
+ All that to me.
152
+
153
+ 39
154
+ 00:02:46,000 --> 00:02:53,000
155
+ Let me explain your whole task and what I want you to implement in the real example and was my solution
156
+
157
+ 40
158
+ 00:02:54,000 --> 00:02:55,000
159
+ this task.
160
+
161
+ 41
162
+ 00:02:55,000 --> 00:03:01,000
163
+ I wanted to implement a few pages, zero homepage signing and sign up.
164
+
165
+ 42
166
+ 00:03:01,000 --> 00:03:02,000
167
+ That's it.
168
+
169
+ 43
170
+ 00:03:03,000 --> 00:03:10,000
171
+ Besides your implementation, we also need to make some of the you can use some UI templates and adjust
172
+
173
+ 44
174
+ 00:03:10,000 --> 00:03:18,000
175
+ them to match your needs or you can create UI from scratch in case you want to use estimates your system
176
+
177
+ 45
178
+ 00:03:18,000 --> 00:03:18,000
179
+ needs.
180
+
181
+ 46
182
+ 00:03:19,000 --> 00:03:22,000
183
+ I shared a link with you in the home task Google doc.
184
+
185
+ 47
186
+ 00:03:23,000 --> 00:03:27,000
187
+ We have to implement the home page with header in header.
188
+
189
+ 48
190
+ 00:03:27,000 --> 00:03:31,000
191
+ We should have two models signing and sign up.
192
+
193
+ 49
194
+ 00:03:32,000 --> 00:03:34,000
195
+ We also can have place for logo here.
196
+
197
+ 50
198
+ 00:03:34,000 --> 00:03:39,000
199
+ Surgical language switcher and main content area.
200
+
201
+ 51
202
+ 00:03:40,000 --> 00:03:43,000
203
+ Pay attention that each page developed during this task should have.
204
+
205
+ 52
206
+ 00:03:44,000 --> 00:03:45,000
207
+ Nice looking fabric.
208
+
209
+ 53
210
+ 00:03:45,000 --> 00:03:51,000
211
+ Com fabric is something what is located in the top in browser.
212
+
213
+ 54
214
+ 00:03:51,000 --> 00:04:00,000
215
+ You can see that I called page nice so far online store and here is an icon of sofa nearby that sits
216
+
217
+ 55
218
+ 00:04:00,000 --> 00:04:02,000
219
+ on the home page for this task.
220
+
221
+ 56
222
+ 00:04:02,000 --> 00:04:10,000
223
+ Let's continue in case we are not locked in and we try to access admin panel resource map directly,
224
+
225
+ 57
226
+ 00:04:11,000 --> 00:04:13,000
227
+ then we resurrect the design name for.
228
+
229
+ 58
230
+ 00:04:14,000 --> 00:04:17,000
231
+ But before signing me, let's create our user.
232
+
233
+ 59
234
+ 00:04:17,000 --> 00:04:21,000
235
+ Here we have leave to navigate to the sign that page.
236
+
237
+ 60
238
+ 00:04:21,000 --> 00:04:26,000
239
+ Or we can navigate to the sign up page from the home page.
240
+
241
+ 61
242
+ 00:04:26,000 --> 00:04:30,000
243
+ This is also a requirement for the task that you have to implement.
244
+
245
+ 62
246
+ 00:04:31,000 --> 00:04:36,000
247
+ Implement this for good reaction to the signing page for not logged in users.
248
+
249
+ 63
250
+ 00:04:36,000 --> 00:04:38,000
251
+ With the help of that filters.
252
+
253
+ 64
254
+ 00:04:39,000 --> 00:04:43,000
255
+ So the next stage that we need to implement is a sign up page.
256
+
257
+ 65
258
+ 00:04:44,000 --> 00:04:48,000
259
+ When I click on the sign up page, I'm redirected to another page.
260
+
261
+ 66
262
+ 00:04:49,000 --> 00:04:54,000
263
+ We'll learn a element and we have examples with direction to.
264
+
265
+ 67
266
+ 00:04:54,000 --> 00:04:57,000
267
+ So you have to know how to implement this direction.
268
+
269
+ 68
270
+ 00:04:58,000 --> 00:05:02,000
271
+ Q We have simple registration for the following fields.
272
+
273
+ 69
274
+ 00:05:02,000 --> 00:05:10,000
275
+ First name, last name, email, password, repeat password and submit button.
276
+
277
+ 70
278
+ 00:05:11,000 --> 00:05:19,000
279
+ Also, I have a link to the signing page in case user already has an account and wants to sign me.
280
+
281
+ 71
282
+ 00:05:20,000 --> 00:05:23,000
283
+ You need to implement a regular registration seasonality.
284
+
285
+ 72
286
+ 00:05:24,000 --> 00:05:30,000
287
+ I will not dive deep into the logic of the registration flow because I am sure you already pass through
288
+
289
+ 73
290
+ 00:05:30,000 --> 00:05:33,000
291
+ the registration flow multiple times on different websites.
292
+
293
+ 74
294
+ 00:05:34,000 --> 00:05:36,000
295
+ Let's just register an account.
296
+
297
+ 75
298
+ 00:05:37,000 --> 00:05:38,000
299
+ First name.
300
+
301
+ 76
302
+ 00:05:39,000 --> 00:05:40,000
303
+ Last name.
304
+
305
+ 77
306
+ 00:05:41,000 --> 00:05:42,000
307
+ First email.
308
+
309
+ 78
310
+ 00:05:43,000 --> 00:05:44,000
311
+ Address password.
312
+
313
+ 79
314
+ 00:05:45,000 --> 00:05:47,000
315
+ Let's go the sign up button.
316
+
317
+ 80
318
+ 00:05:48,000 --> 00:05:53,000
319
+ In case of a successful registration, I'm redirected to the signing page.
320
+
321
+ 81
322
+ 00:05:54,000 --> 00:05:56,000
323
+ Here is how sending page looks like.
324
+
325
+ 82
326
+ 00:05:57,000 --> 00:06:00,000
327
+ But the slogan prison lets me command whatever just happened.
328
+
329
+ 83
330
+ 00:06:01,000 --> 00:06:07,000
331
+ My jump from zero at the first job cause we learned how to work with a relational database.
332
+
333
+ 84
334
+ 00:06:08,000 --> 00:06:10,000
335
+ Will learn what that part is.
336
+
337
+ 85
338
+ 00:06:10,000 --> 00:06:13,000
339
+ And we also had a whole task to implement.
340
+
341
+ 86
342
+ 00:06:13,000 --> 00:06:16,000
343
+ Now for different entities in our application.
344
+
345
+ 87
346
+ 00:06:16,000 --> 00:06:18,000
347
+ So what is happening?
348
+
349
+ 88
350
+ 00:06:18,000 --> 00:06:20,000
351
+ Action on the backend.
352
+
353
+ 89
354
+ 00:06:20,000 --> 00:06:22,000
355
+ I use that solution.
356
+
357
+ 90
358
+ 00:06:23,000 --> 00:06:25,000
359
+ One when was restriction forms submitted?
360
+
361
+ 91
362
+ 00:06:25,000 --> 00:06:32,000
363
+ It is sent to server that I use the code that takes parameters from the form and process data.
364
+
365
+ 92
366
+ 00:06:32,000 --> 00:06:38,000
367
+ Does it now or is that any can since my new user is a database.
368
+
369
+ 93
370
+ 00:06:39,000 --> 00:06:44,000
371
+ So the scope of this task I use a solution from the previous task about database.
372
+
373
+ 94
374
+ 00:06:45,000 --> 00:06:52,000
375
+ In case you skipped lessons about databases and now partner, you should also consider database implementation
376
+
377
+ 95
378
+ 00:06:53,000 --> 00:06:56,000
379
+ and persistence of the implementation in your application.
380
+
381
+ 96
382
+ 00:06:57,000 --> 00:07:01,000
383
+ Because in scope of this task, we need to use persistence storage.
384
+
385
+ 97
386
+ 00:07:01,000 --> 00:07:07,000
387
+ So once we register with the user, we can log in using our credentials.
388
+
389
+ 98
390
+ 00:07:07,000 --> 00:07:12,000
391
+ I use the emails that I use for registration and associated passwords.
392
+
393
+ 99
394
+ 00:07:13,000 --> 00:07:16,000
395
+ After a successful log in, I redirected to the home page.
396
+
397
+ 100
398
+ 00:07:17,000 --> 00:07:17,000
399
+ Amazing.
400
+
401
+ 101
402
+ 00:07:18,000 --> 00:07:20,000
403
+ Everything works as expected.
404
+
405
+ 102
406
+ 00:07:20,000 --> 00:07:21,000
407
+ That's great.
408
+
409
+ 103
410
+ 00:07:22,000 --> 00:07:29,000
411
+ By default, each new registered user is assigned to the customer role, and one of the requirements
412
+
413
+ 104
414
+ 00:07:29,000 --> 00:07:35,000
415
+ application is that users with a role customer can't access admin related resources.
416
+
417
+ 105
418
+ 00:07:36,000 --> 00:07:43,000
419
+ So in case I will try to reach my panel now I have to see forbidden status.
420
+
421
+ 106
422
+ 00:07:44,000 --> 00:07:46,000
423
+ I thought admin panel and euro.
424
+
425
+ 107
426
+ 00:07:46,000 --> 00:07:47,000
427
+ I'll click enter.
428
+
429
+ 108
430
+ 00:07:48,000 --> 00:07:51,000
431
+ And I see custom error page that we created.
432
+
433
+ 109
434
+ 00:07:51,000 --> 00:07:58,000
435
+ And one of the lessons is, of course, about error handled in web application for full suite status
436
+
437
+ 110
438
+ 00:07:58,000 --> 00:07:59,000
439
+ called.
440
+
441
+ 111
442
+ 00:08:00,000 --> 00:08:07,000
443
+ In case we will be lucky with the user who has admin role, that user should have access to admin resources
444
+
445
+ 112
446
+ 00:08:08,000 --> 00:08:12,000
447
+ not necessary to create admin panel resource on this stage.
448
+
449
+ 113
450
+ 00:08:13,000 --> 00:08:19,000
451
+ The goal of this task is to configure restrictions based on the user role for the time being.
452
+
453
+ 114
454
+ 00:08:19,000 --> 00:08:23,000
455
+ I recommend you to change roles in the database manually.
456
+
457
+ 115
458
+ 00:08:24,000 --> 00:08:25,000
459
+ It is a common practice.
460
+
461
+ 116
462
+ 00:08:26,000 --> 00:08:31,000
463
+ I mean to create any user manual, even considering security concerns.
464
+
465
+ 117
466
+ 00:08:32,000 --> 00:08:36,000
467
+ We shouldn't have a page that allows us to register a user with admin role.
468
+
469
+ 118
470
+ 00:08:36,000 --> 00:08:37,000
471
+ It is nonsense.
472
+
473
+ 119
474
+ 00:08:38,000 --> 00:08:41,000
475
+ We can only create admin user manually on the server.
476
+
477
+ 120
478
+ 00:08:42,000 --> 00:08:45,000
479
+ For this demo already created admin user.
480
+
481
+ 121
482
+ 00:08:46,000 --> 00:08:48,000
483
+ Let me open signing page.
484
+
485
+ 122
486
+ 00:08:49,000 --> 00:08:54,000
487
+ I enter admin add email dot com and password.
488
+
489
+ 123
490
+ 00:08:55,000 --> 00:09:02,000
491
+ After successful one user was enrolled should be automatically redirected to the admin panel resource.
492
+
493
+ 124
494
+ 00:09:03,000 --> 00:09:09,000
495
+ I do not recommend it to create additional HTML page because soon we're going to learn new architectural
496
+
497
+ 125
498
+ 00:09:10,000 --> 00:09:14,000
499
+ qualities that will impact the way how we move our public map resources.
500
+
501
+ 126
502
+ 00:09:15,000 --> 00:09:21,000
503
+ So there is no need to create additional resources at this moment to consider security rules.
504
+
505
+ 127
506
+ 00:09:22,000 --> 00:09:27,000
507
+ Use that field that we had a separate lesson about of that filters.
508
+
509
+ 128
510
+ 00:09:27,000 --> 00:09:31,000
511
+ And we also had examples of that filters configuration.
512
+
513
+ 129
514
+ 00:09:32,000 --> 00:09:36,000
515
+ So this is an opportunity to practice your skills in web filters.
516
+
517
+ 130
518
+ 00:09:37,000 --> 00:09:43,000
519
+ And the last but not least, this requirement is that we have to implement this part of code enable
520
+
521
+ 131
522
+ 00:09:43,000 --> 00:09:46,000
523
+ affiliate marketing in our online store.
524
+
525
+ 132
526
+ 00:09:46,000 --> 00:09:53,000
527
+ In case you don't know what affiliate marketing is, I left the meeting as a home task to read about
528
+
529
+ 133
530
+ 00:09:53,000 --> 00:10:00,000
531
+ it because it is important to understand the business context before implementation of the logic.
532
+
533
+ 134
534
+ 00:10:01,000 --> 00:10:03,000
535
+ I'm explaining single words.
536
+
537
+ 135
538
+ 00:10:03,000 --> 00:10:12,000
539
+ Imagine that I am already a customer of our online store and you know I want to earn extra cash.
540
+
541
+ 136
542
+ 00:10:12,000 --> 00:10:20,000
543
+ I tell you about amazing online store with great services, high quality and many other good things.
544
+
545
+ 137
546
+ 00:10:20,000 --> 00:10:24,000
547
+ And I gave you the link that looks like this.
548
+
549
+ 138
550
+ 00:10:24,000 --> 00:10:25,000
551
+ That tension.
552
+
553
+ 139
554
+ 00:10:25,000 --> 00:10:29,000
555
+ It contains very parameter partner code.
556
+
557
+ 140
558
+ 00:10:30,000 --> 00:10:36,000
559
+ After you navigated to this page calculus, pertinent code has been added to your browser.
560
+
561
+ 141
562
+ 00:10:36,000 --> 00:10:39,000
563
+ Let me open the chrome dev tools.
564
+
565
+ 142
566
+ 00:10:39,000 --> 00:10:41,000
567
+ Navigate to the application menu.
568
+
569
+ 143
570
+ 00:10:42,000 --> 00:10:44,000
571
+ How many of your cookies can you see this?
572
+
573
+ 144
574
+ 00:10:44,000 --> 00:10:45,000
575
+ We have.
576
+
577
+ 145
578
+ 00:10:45,000 --> 00:10:47,000
579
+ Who was my partner code.
580
+
581
+ 146
582
+ 00:10:48,000 --> 00:10:50,000
583
+ This is the user registration.
584
+
585
+ 147
586
+ 00:10:50,000 --> 00:10:55,000
587
+ My application will recognize that you came to the online store.
588
+
589
+ 148
590
+ 00:10:55,000 --> 00:10:59,000
591
+ We are my live and I will earn some money.
592
+
593
+ 149
594
+ 00:11:00,000 --> 00:11:03,000
595
+ Usually some percentage from the audit.
596
+
597
+ 150
598
+ 00:11:03,000 --> 00:11:08,000
599
+ Total money amount I will earn from each your purchase in the shop.
600
+
601
+ 151
602
+ 00:11:09,000 --> 00:11:13,000
603
+ That is how affiliate marketing works.
604
+
605
+ 152
606
+ 00:11:13,000 --> 00:11:18,000
607
+ So let's sum it up to understand what should be done from the technical side.
608
+
609
+ 153
610
+ 00:11:19,000 --> 00:11:23,000
611
+ We need to generate unique report for new user user registration.
612
+
613
+ 154
614
+ 00:11:24,000 --> 00:11:27,000
615
+ This unique partner code will be used to create partner.
616
+
617
+ 155
618
+ 00:11:28,000 --> 00:11:35,000
619
+ We when you to check was a you wrote contains personal code parameter and if this is then we need to
620
+
621
+ 156
622
+ 00:11:35,000 --> 00:11:37,000
623
+ place cookie on the client side.
624
+
625
+ 157
626
+ 00:11:38,000 --> 00:11:40,000
627
+ Use the registration.
628
+
629
+ 158
630
+ 00:11:40,000 --> 00:11:47,000
631
+ We have to check and establish connection between users in the database in order to make affiliate programs
632
+
633
+ 159
634
+ 00:11:47,000 --> 00:11:49,000
635
+ work during the checkout.
636
+
637
+ 160
638
+ 00:11:50,000 --> 00:11:53,000
639
+ Will implement checkout later in other tasks.
640
+
641
+ 161
642
+ 00:11:53,000 --> 00:11:56,000
643
+ Afternoon in a few more topics.
644
+
645
+ 162
646
+ 00:11:57,000 --> 00:12:04,000
647
+ That's what you have to do to implement a fitness program in the App Store now and also sets all the
648
+
649
+ 163
650
+ 00:12:04,000 --> 00:12:05,000
651
+ requirements for your homework.
652
+
653
+ 164
654
+ 00:12:06,000 --> 00:12:07,000
655
+ How does it look like?
656
+
657
+ 165
658
+ 00:12:08,000 --> 00:12:09,000
659
+ Can you imagine?
660
+
661
+ 166
662
+ 00:12:09,000 --> 00:12:13,000
663
+ How much do you already knows that you already can implement things like this?
664
+
665
+ 167
666
+ 00:12:14,000 --> 00:12:22,000
667
+ And the coolest thing about all this is that with all the related examples you just need to play was
668
+
669
+ 168
670
+ 00:12:22,000 --> 00:12:29,000
671
+ all examples from previous lessons like was causal and puts them together in the right order to get
672
+
673
+ 169
674
+ 00:12:29,000 --> 00:12:31,000
675
+ things like I have just demoed.
676
+
677
+ 170
678
+ 00:12:32,000 --> 00:12:36,000
679
+ So now I recommend you to present both in this video lesson.
680
+
681
+ 171
682
+ 00:12:37,000 --> 00:12:44,000
683
+ Also check the document and attachments was full list of requirements and start the implementation.
684
+
685
+ 172
686
+ 00:12:45,000 --> 00:12:52,000
687
+ Once you implemented your own solution, come back to this video and proceed with watching the video
688
+
689
+ 173
690
+ 00:12:52,000 --> 00:12:52,000
691
+ lesson.
692
+
693
+ 174
694
+ 00:12:53,000 --> 00:12:59,000
695
+ Because now we are going to use my solution and I'm going to share with you the details of the implementation.
696
+
697
+ 175
698
+ 00:13:00,000 --> 00:13:04,000
699
+ As you saw in the whole task, I shared with your resources.
700
+
701
+ 176
702
+ 00:13:04,000 --> 00:13:08,000
703
+ Well, we can then load some basic issue email and see assess templates.
704
+
705
+ 177
706
+ 00:13:08,000 --> 00:13:15,000
707
+ It also works just fine because at the end of the day, you need to be able to adjust the source code
708
+
709
+ 178
710
+ 00:13:15,000 --> 00:13:23,000
711
+ of the template and sometimes you to create your own elements or styles that make things work together.
712
+
713
+ 179
714
+ 00:13:23,000 --> 00:13:27,000
715
+ Working with templates is also one of the ways to know the topic better.
716
+
717
+ 180
718
+ 00:13:28,000 --> 00:13:33,000
719
+ I give you templates and modified them a little bit to meet the requirements of the task.
720
+
721
+ 181
722
+ 00:13:34,000 --> 00:13:37,000
723
+ Let's start from the review of UI resources.
724
+
725
+ 182
726
+ 00:13:38,000 --> 00:13:46,000
727
+ Here are a few pages that we created in scope of this task home page each demo, sign in each demo and
728
+
729
+ 183
730
+ 00:13:46,000 --> 00:13:48,000
731
+ sign up each demo.
732
+
733
+ 184
734
+ 00:13:49,000 --> 00:13:54,000
735
+ That's all H2O page was created for this lesson taking into account.
736
+
737
+ 185
738
+ 00:13:54,000 --> 00:13:58,000
739
+ I use as templates for implementation of the home task.
740
+
741
+ 186
742
+ 00:13:58,000 --> 00:14:09,000
743
+ I copied also all the resources that work together with templates, namely to assess gas images, force
744
+
745
+ 187
746
+ 00:14:09,000 --> 00:14:17,000
747
+ and other resources provided directly by vendors, then needed to make website responsive and good looking.
748
+
749
+ 188
750
+ 00:14:18,000 --> 00:14:22,000
751
+ Taking into account some animations and custom design solutions.
752
+
753
+ 189
754
+ 00:14:23,000 --> 00:14:28,000
755
+ Let me open the home page when you will use the source code of this example.
756
+
757
+ 190
758
+ 00:14:28,000 --> 00:14:33,000
759
+ Pay attention to the top parts of the file, namely all content.
760
+
761
+ 191
762
+ 00:14:33,000 --> 00:14:37,000
763
+ And this element was G+ page content product.
764
+
765
+ 192
766
+ 00:14:39,000 --> 00:14:43,000
767
+ There are no quick and not clear technical decisions here.
768
+
769
+ 193
770
+ 00:14:43,000 --> 00:14:47,000
771
+ So feel free to explore the source code of this solution by yourself.
772
+
773
+ 194
774
+ 00:14:49,000 --> 00:14:57,000
775
+ Regarding Sign-Up page pay attention deserves an HTML form with a separate lesson dedicated to HTML
776
+
777
+ 195
778
+ 00:14:57,000 --> 00:14:58,000
779
+ forms.
780
+
781
+ 196
782
+ 00:14:58,000 --> 00:15:05,000
783
+ I configure its action and method for it and similar story was signed in page.
784
+
785
+ 197
786
+ 00:15:06,000 --> 00:15:10,000
787
+ Again, there is a form where I can see with another action.
788
+
789
+ 198
790
+ 00:15:11,000 --> 00:15:19,000
791
+ On the back end in our online store VAP module, I create a different that's zen located in the controllers
792
+
793
+ 199
794
+ 00:15:19,000 --> 00:15:20,000
795
+ package.
796
+
797
+ 200
798
+ 00:15:21,000 --> 00:15:22,000
799
+ Let me open sign up server.
800
+
801
+ 201
802
+ 00:15:23,000 --> 00:15:30,000
803
+ If you are a student of my Joe from zero 2/1 draft course or my course about golf partners, then you
804
+
805
+ 202
806
+ 00:15:30,000 --> 00:15:33,000
807
+ should remember such pardon s facade.
808
+
809
+ 203
810
+ 00:15:34,000 --> 00:15:36,000
811
+ Here is exactly a great place to use the spot.
812
+
813
+ 204
814
+ 00:15:37,000 --> 00:15:43,000
815
+ I created my user facade that I use inside my select of request.
816
+
817
+ 205
818
+ 00:15:43,000 --> 00:15:48,000
819
+ I take all necessary parameters needed to create a user on the backend.
820
+
821
+ 206
822
+ 00:15:49,000 --> 00:15:56,000
823
+ Also, as you remember from the requirements, I need to check who kisses a request to make sure that
824
+
825
+ 207
826
+ 00:15:56,000 --> 00:16:00,000
827
+ there is a causal code to consider this user registration.
828
+
829
+ 208
830
+ 00:16:01,000 --> 00:16:06,000
831
+ Once we found or didn't find the partner code, we created our user orbs.
832
+
833
+ 209
834
+ 00:16:07,000 --> 00:16:10,000
835
+ We can use facade to register our user.
836
+
837
+ 210
838
+ 00:16:11,000 --> 00:16:19,000
839
+ In the meantime, response is redirected to the signing age demo and builds base URLs that consist of
840
+
841
+ 211
842
+ 00:16:19,000 --> 00:16:27,000
843
+ the currency URL and resource name where I want to redirect zero quest because request forwarding doesn't
844
+
845
+ 212
846
+ 00:16:27,000 --> 00:16:29,000
847
+ work in this particular case.
848
+
849
+ 213
850
+ 00:16:29,000 --> 00:16:31,000
851
+ I need to use regular.
852
+
853
+ 214
854
+ 00:16:32,000 --> 00:16:34,000
855
+ Let's explore register user.
856
+
857
+ 215
858
+ 00:16:34,000 --> 00:16:39,000
859
+ Massive facade is a part of our business layouts application.
860
+
861
+ 216
862
+ 00:16:40,000 --> 00:16:47,000
863
+ This was this facade is not enough of this module, but it is in our core module.
864
+
865
+ 217
866
+ 00:16:47,000 --> 00:16:53,000
867
+ This interface has one implementation which is called default, ease or facade.
868
+
869
+ 218
870
+ 00:16:54,000 --> 00:16:55,000
871
+ Let's look at it.
872
+
873
+ 219
874
+ 00:16:56,000 --> 00:17:06,000
875
+ As you can see, default user facade feature aggregates user DAO user to convert to an affiliate marketing
876
+
877
+ 220
878
+ 00:17:06,000 --> 00:17:09,000
879
+ service insights register user method.
880
+
881
+ 221
882
+ 00:17:09,000 --> 00:17:12,000
883
+ We said the customer role by default.
884
+
885
+ 222
886
+ 00:17:12,000 --> 00:17:20,000
887
+ We also generate unique partner code and sends a referee user in case the current user was attracted
888
+
889
+ 223
890
+ 00:17:20,000 --> 00:17:25,000
891
+ by some other user and there was caught in cookies.
892
+
893
+ 224
894
+ 00:17:26,000 --> 00:17:34,000
895
+ After we call say user on user DAO object user DAO is on the persistence level.
896
+
897
+ 225
898
+ 00:17:35,000 --> 00:17:43,000
899
+ That's why we need to convert our business object user is due to object to user detail.
900
+
901
+ 226
902
+ 00:17:44,000 --> 00:17:46,000
903
+ That's why I use conversion.
904
+
905
+ 227
906
+ 00:17:47,000 --> 00:17:50,000
907
+ You can ask me why all this stuff is.
908
+
909
+ 228
910
+ 00:17:51,000 --> 00:17:52,000
911
+ Answer to this question.
912
+
913
+ 229
914
+ 00:17:52,000 --> 00:17:55,000
915
+ We have used a clean architecture course.
916
+
917
+ 230
918
+ 00:17:55,000 --> 00:18:03,000
919
+ The short answer is this a scalable architecture that helps us deal with many different problems in
920
+
921
+ 231
922
+ 00:18:03,000 --> 00:18:03,000
923
+ the future.
924
+
925
+ 232
926
+ 00:18:04,000 --> 00:18:12,000
927
+ And this kind of additional classes will clearly separate our persistence, our business plan, and
928
+
929
+ 233
930
+ 00:18:12,000 --> 00:18:13,000
931
+ our grappling.
932
+
933
+ 234
934
+ 00:18:14,000 --> 00:18:15,000
935
+ Can you see how good it is?
936
+
937
+ 235
938
+ 00:18:16,000 --> 00:18:23,000
939
+ We can substitute the whole modules if we need without impact on the rest of our application in case
940
+
941
+ 236
942
+ 00:18:23,000 --> 00:18:29,000
943
+ we would need funds in relation to no school database, we need to substitute persistence more than
944
+
945
+ 237
946
+ 00:18:30,000 --> 00:18:34,000
947
+ update the user due to our CONVERSA and use another don't alimentation.
948
+
949
+ 238
950
+ 00:18:34,000 --> 00:18:35,000
951
+ That's it.
952
+
953
+ 239
954
+ 00:18:36,000 --> 00:18:38,000
955
+ But the interfaces will remain the same.
956
+
957
+ 240
958
+ 00:18:39,000 --> 00:18:42,000
959
+ The business logic will still remain the same.
960
+
961
+ 241
962
+ 00:18:43,000 --> 00:18:49,000
963
+ The business entities will lose the same z z benefit of this architecture.
964
+
965
+ 242
966
+ 00:18:49,000 --> 00:18:54,000
967
+ We have clear separation of concerns and we don't mess up.
968
+
969
+ 243
970
+ 00:18:54,000 --> 00:18:59,000
971
+ Business objects and clauses contain business logic with persistence.
972
+
973
+ 244
974
+ 00:19:00,000 --> 00:19:02,000
975
+ Just to remind you is an average.
976
+
977
+ 245
978
+ 00:19:02,000 --> 00:19:11,000
979
+ What goes after the now objects and actions is a database SQL queries in certain users database.
980
+
981
+ 246
982
+ 00:19:11,000 --> 00:19:17,000
983
+ All this was already covered and I reviewed the scope of the solution of another homework.
984
+
985
+ 247
986
+ 00:19:17,000 --> 00:19:22,000
987
+ Feel free to insert as a homework solution about the objects and database connections.
988
+
989
+ 248
990
+ 00:19:23,000 --> 00:19:30,000
991
+ Affiliate Marketing Service is an interface that declares a contract for one message, but that doesn't
992
+
993
+ 249
994
+ 00:19:30,000 --> 00:19:34,000
995
+ mean that we can't add new masses here in the future.
996
+
997
+ 250
998
+ 00:19:34,000 --> 00:19:36,000
999
+ This interface has one implementation.
1000
+
1001
+ 251
1002
+ 00:19:37,000 --> 00:19:38,000
1003
+ It is default a few.
1004
+
1005
+ 252
1006
+ 00:19:38,000 --> 00:19:40,000
1007
+ It's market and service.
1008
+
1009
+ 253
1010
+ 00:19:40,000 --> 00:19:47,000
1011
+ As you can see, it just contains custom implementation of the generation of the unique partner code.
1012
+
1013
+ 254
1014
+ 00:19:48,000 --> 00:19:57,000
1015
+ Now let's review and let us assume that that is code signing so that this will also use a user facade
1016
+
1017
+ 255
1018
+ 00:19:57,000 --> 00:20:01,000
1019
+ to extract user by email and compare passwords.
1020
+
1021
+ 256
1022
+ 00:20:02,000 --> 00:20:08,000
1023
+ We need to make sure that the password answered by user is equal to the password from the database.
1024
+
1025
+ 257
1026
+ 00:20:09,000 --> 00:20:13,000
1027
+ One more importance and I need to highlight the story.
1028
+
1029
+ 258
1030
+ 00:20:13,000 --> 00:20:18,000
1031
+ This password is a database without encryption is not a good practice.
1032
+
1033
+ 259
1034
+ 00:20:19,000 --> 00:20:25,000
1035
+ Don't do exists in production but taking into account wouldn't learn encryption yet.
1036
+
1037
+ 260
1038
+ 00:20:26,000 --> 00:20:28,000
1039
+ We are not bothering about this too much.
1040
+
1041
+ 261
1042
+ 00:20:29,000 --> 00:20:36,000
1043
+ Also redirection logic is here in place just to remind you in case user has any role.
1044
+
1045
+ 262
1046
+ 00:20:37,000 --> 00:20:43,000
1047
+ We are redirecting to the admin panel resource in case user has a customer role.
1048
+
1049
+ 263
1050
+ 00:20:43,000 --> 00:20:51,000
1051
+ We originally came to the homepage and in case credentials are invalid, the resurrection quest is a
1052
+
1053
+ 264
1054
+ 00:20:51,000 --> 00:20:53,000
1055
+ me page one more time.
1056
+
1057
+ 265
1058
+ 00:20:54,000 --> 00:20:55,000
1059
+ All of the error.
1060
+
1061
+ 266
1062
+ 00:20:55,000 --> 00:21:02,000
1063
+ Henderson errors, including the font consolidation, will be implemented in scope of the whole tasks.
1064
+
1065
+ 267
1066
+ 00:21:02,000 --> 00:21:04,000
1067
+ One will learn new topics.
1068
+
1069
+ 268
1070
+ 00:21:05,000 --> 00:21:06,000
1071
+ Pay attention that ALSA.
1072
+
1073
+ 269
1074
+ 00:21:06,000 --> 00:21:13,000
1075
+ In case of the successful signing, we create a session object and we put the logged in user into the
1076
+
1077
+ 270
1078
+ 00:21:13,000 --> 00:21:14,000
1079
+ session.
1080
+
1081
+ 271
1082
+ 00:21:14,000 --> 00:21:15,000
1083
+ This is needed in order.
1084
+
1085
+ 272
1086
+ 00:21:15,000 --> 00:21:21,000
1087
+ We could access the user object in other places of our app in scope of one session.
1088
+
1089
+ 273
1090
+ 00:21:21,000 --> 00:21:23,000
1091
+ This is clear, by the way.
1092
+
1093
+ 274
1094
+ 00:21:24,000 --> 00:21:30,000
1095
+ In case you have any questions, please ask them below this video and I will be happy to answer all
1096
+
1097
+ 275
1098
+ 00:21:30,000 --> 00:21:31,000
1099
+ your questions.
1100
+
1101
+ 276
1102
+ 00:21:33,000 --> 00:21:36,000
1103
+ Now let's review two filters that are implemented.
1104
+
1105
+ 277
1106
+ 00:21:37,000 --> 00:21:39,000
1107
+ Filters are located in the app.
1108
+
1109
+ 278
1110
+ 00:21:39,000 --> 00:21:41,000
1111
+ More you use a filters package.
1112
+
1113
+ 279
1114
+ 00:21:42,000 --> 00:21:46,000
1115
+ The first filter is to secure access to all resources.
1116
+
1117
+ 280
1118
+ 00:21:46,000 --> 00:21:55,000
1119
+ It is called admin filter inside do filter mass at weekdays in reference to the session object and after
1120
+
1121
+ 281
1122
+ 00:21:55,000 --> 00:21:57,000
1123
+ that with takes a look in use.
1124
+
1125
+ 282
1126
+ 00:21:57,000 --> 00:22:04,000
1127
+ It is it is stored as an active session, but then shows that it is also a service.
1128
+
1129
+ 283
1130
+ 00:22:04,000 --> 00:22:07,000
1131
+ And what we have discussed here is a lesson about that filters.
1132
+
1133
+ 284
1134
+ 00:22:08,000 --> 00:22:14,000
1135
+ But I'm not sure whether you've paid enough attention to my words in the filter mass that we get.
1136
+
1137
+ 285
1138
+ 00:22:14,000 --> 00:22:22,000
1139
+ So let's request as an argument, but we can get session object from you from that should be so request
1140
+
1141
+ 286
1142
+ 00:22:22,000 --> 00:22:23,000
1143
+ object.
1144
+
1145
+ 287
1146
+ 00:22:23,000 --> 00:22:31,000
1147
+ That's why I need to cast massive argument to the space to be so let's request and only after that I
1148
+
1149
+ 288
1150
+ 00:22:31,000 --> 00:22:33,000
1151
+ can extract a reference to the session.
1152
+
1153
+ 289
1154
+ 00:22:33,000 --> 00:22:41,000
1155
+ Object is a clear dependent on the user role perform different actions in case user has any role.
1156
+
1157
+ 290
1158
+ 00:22:42,000 --> 00:22:49,000
1159
+ We allow clients to proceed with the request and to reach admin resource successfully in case user doesn't
1160
+
1161
+ 291
1162
+ 00:22:49,000 --> 00:22:58,000
1163
+ have any role virtual for all three status quo in case there was no user in the session, that means
1164
+
1165
+ 292
1166
+ 00:22:58,000 --> 00:23:01,000
1167
+ there is no locked in the user yet.
1168
+
1169
+ 293
1170
+ 00:23:01,000 --> 00:23:04,000
1171
+ Then we redirect user to the signing page.
1172
+
1173
+ 294
1174
+ 00:23:05,000 --> 00:23:05,000
1175
+ That's it.
1176
+
1177
+ 295
1178
+ 00:23:06,000 --> 00:23:15,000
1179
+ Also pay attention is a new filter method takes select response object as my argument and the call center
1180
+
1181
+ 296
1182
+ 00:23:15,000 --> 00:23:15,000
1183
+ direct message.
1184
+
1185
+ 297
1186
+ 00:23:15,000 --> 00:23:20,000
1187
+ We need to cast this argument to be so let's star.
1188
+
1189
+ 298
1190
+ 00:23:21,000 --> 00:23:29,000
1191
+ After that we can call sense redirect message and another filter is called called filter.
1192
+
1193
+ 299
1194
+ 00:23:30,000 --> 00:23:36,000
1195
+ This filter will listen all incoming requests to our server and we are going to check partner.
1196
+
1197
+ 300
1198
+ 00:23:37,000 --> 00:23:44,000
1199
+ The request in each request is the application in case we find such parameter is a URL.
1200
+
1201
+ 301
1202
+ 00:23:44,000 --> 00:23:47,000
1203
+ We asked you who was the partner quote.
1204
+
1205
+ 302
1206
+ 00:23:48,000 --> 00:23:52,000
1207
+ Basically that's all what is needed to be done according to requirements.
1208
+
1209
+ 303
1210
+ 00:23:53,000 --> 00:23:57,000
1211
+ Anyway, team I have shared we use a source code of my solution.
1212
+
1213
+ 304
1214
+ 00:23:58,000 --> 00:24:00,000
1215
+ Take your time explores the solution.
1216
+
1217
+ 305
1218
+ 00:24:01,000 --> 00:24:06,000
1219
+ Runs a court on your computer, compare your solution in months and ask questions.
1220
+
1221
+ 306
1222
+ 00:24:07,000 --> 00:24:12,000
1223
+ The more time you spend thinking about this task, does it matter for you?
1224
+
1225
+ 307
1226
+ 00:24:12,000 --> 00:24:18,000
1227
+ If you're watching this lesson, that means you already passed the hard way of knowing the program.
1228
+
1229
+ 308
1230
+ 00:24:19,000 --> 00:24:27,000
1231
+ And that means that, you know, that program is a continuous process of exploring new solutions and
1232
+
1233
+ 309
1234
+ 00:24:27,000 --> 00:24:31,000
1235
+ exploring of how to use waste to implement the same thing.
1236
+
1237
+ 310
1238
+ 00:24:31,000 --> 00:24:33,000
1239
+ We may have different solution.
1240
+
1241
+ 311
1242
+ 00:24:33,000 --> 00:24:38,000
1243
+ That doesn't mean that the solution is wrong and my solution is correct.
1244
+
1245
+ 312
1246
+ 00:24:38,000 --> 00:24:42,000
1247
+ One because different ways to achieve the same result.
1248
+
1249
+ 313
1250
+ 00:24:43,000 --> 00:24:43,000
1251
+ Program.
1252
+
1253
+ 314
1254
+ 00:24:44,000 --> 00:24:49,000
1255
+ Ask yourself why you did it this way and I did it in another way.
1256
+
1257
+ 315
1258
+ 00:24:50,000 --> 00:24:56,000
1259
+ Ask me in case you have questions regarding my solution, and that's how we will improve our skills
1260
+
1261
+ 316
1262
+ 00:24:56,000 --> 00:24:57,000
1263
+ and knowledge.
1264
+
1265
+ 317
1266
+ 00:24:58,000 --> 00:25:04,000
1267
+ I'm sure that this whole task was useful for you, and I hope that overview of my solution was helpful
1268
+
1269
+ 318
1270
+ 00:25:04,000 --> 00:25:05,000
1271
+ for you too.
1272
+
1273
+ 319
1274
+ 00:25:06,000 --> 00:25:12,000
1275
+ Do need to learn a lot of new things, so stay tuned and see things in the next lesson.
1276
+
67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/001 Hometask-and-link-to-the-solution.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://docs.google.com/document/d/1JrQh95wgj_UKvT7ASCh1XOXLMd9TB5QDaGd2AhHqOm0/edit?usp=sharing
67 - ===== Exam HTML, CSS, Servlets, Web Filter & Web Server =====/external-links.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+ 001 Hometask-and-link-to-the-solution
3
+ https://docs.google.com/document/d/1JrQh95wgj_UKvT7ASCh1XOXLMd9TB5QDaGd2AhHqOm0/edit?usp=sharing
68 - JSP/001 JSP Overview_en.srt ADDED
@@ -0,0 +1,1192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:10,000
7
+ Yesterday was this lesson which starts new and very important topic.
8
+
9
+ 3
10
+ 00:00:11,000 --> 00:00:13,000
11
+ We're going to continue speed technology.
12
+
13
+ 4
14
+ 00:00:13,000 --> 00:00:22,000
15
+ We'll start from the definitions, an overview of what GCP is to help you understand what is will hold
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:26,000
19
+ comparative analysis between the GCP HMO.
20
+
21
+ 6
22
+ 00:00:26,000 --> 00:00:33,000
23
+ So let's in JavaScript after that we're going to have huge advantages and disadvantages.
24
+
25
+ 7
26
+ 00:00:33,000 --> 00:00:36,000
27
+ Well known GCP lifecycle.
28
+
29
+ 8
30
+ 00:00:36,000 --> 00:00:41,000
31
+ Also, we'll review GCP elements to understand GCP syntax.
32
+
33
+ 9
34
+ 00:00:41,000 --> 00:00:45,000
35
+ I will explain what directives, declarations, script.
36
+
37
+ 10
38
+ 00:00:45,000 --> 00:00:48,000
39
+ That's expressions and many other things.
40
+
41
+ 11
42
+ 00:00:49,000 --> 00:00:56,000
43
+ We'll discuss what implicit objects are and what implicit objects are available for us on GCP page,
44
+
45
+ 12
46
+ 00:00:57,000 --> 00:01:04,000
47
+ I'm going to show you how the process of translation of GCP page into so that Java source code looks
48
+
49
+ 13
50
+ 00:01:04,000 --> 00:01:07,000
51
+ like and advances in medicine.
52
+
53
+ 14
54
+ 00:01:07,000 --> 00:01:10,000
55
+ We're going to use p expression language.
56
+
57
+ 15
58
+ 00:01:11,000 --> 00:01:12,000
59
+ Let's start our lesson.
60
+
61
+ 16
62
+ 00:01:13,000 --> 00:01:19,000
63
+ And the first things that we're going to learn today is the definition of the P just stands for Java
64
+
65
+ 17
66
+ 00:01:19,000 --> 00:01:21,000
67
+ several pages technology.
68
+
69
+ 18
70
+ 00:01:21,000 --> 00:01:22,000
71
+ What is it?
72
+
73
+ 19
74
+ 00:01:22,000 --> 00:01:29,000
75
+ It is a server side technology from Java for enterprise technology stack for the creation of dynamic
76
+
77
+ 20
78
+ 00:01:29,000 --> 00:01:31,000
79
+ platform independent web pages.
80
+
81
+ 21
82
+ 00:01:32,000 --> 00:01:36,000
83
+ This is integrated with entire family of the Java eight.
84
+
85
+ 22
86
+ 00:01:37,000 --> 00:01:42,000
87
+ GCP allows create both static and dynamic map content.
88
+
89
+ 23
90
+ 00:01:43,000 --> 00:01:46,000
91
+ After this lesson you may ask me, Andre, wait a minute.
92
+
93
+ 24
94
+ 00:01:47,000 --> 00:01:51,000
95
+ In this course, we already know h html for creation of the static web content.
96
+
97
+ 25
98
+ 00:01:51,000 --> 00:01:54,000
99
+ Most of the notes are less to create dynamic web content.
100
+
101
+ 26
102
+ 00:01:55,000 --> 00:01:57,000
103
+ On top of that, we have JavaScript to learn.
104
+
105
+ 27
106
+ 00:01:58,000 --> 00:02:00,000
107
+ Then why do we need GCP?
108
+
109
+ 28
110
+ 00:02:00,000 --> 00:02:02,000
111
+ Let me explain this to you.
112
+
113
+ 29
114
+ 00:02:02,000 --> 00:02:09,000
115
+ By comparing GCP was as a technologist, I believe this will help you better understand what it is.
116
+
117
+ 30
118
+ 00:02:10,000 --> 00:02:13,000
119
+ Let's compare GSP with HMO.
120
+
121
+ 31
122
+ 00:02:13,000 --> 00:02:17,000
123
+ If you skipped lessons about HMO and you don't know, what is it?
124
+
125
+ 32
126
+ 00:02:17,000 --> 00:02:20,000
127
+ I am recommended to watch classes about HMO first.
128
+
129
+ 33
130
+ 00:02:21,000 --> 00:02:28,000
131
+ But if you already watched my lessons about HMO, then you already know that with the help of HMO,
132
+
133
+ 34
134
+ 00:02:28,000 --> 00:02:30,000
135
+ we can create static content only.
136
+
137
+ 35
138
+ 00:02:31,000 --> 00:02:36,000
139
+ But with the help of the GSP technology, we can create dynamic web content.
140
+
141
+ 36
142
+ 00:02:36,000 --> 00:02:44,000
143
+ Moreover, GSP also supports such features as expression, language and integration with Java API that
144
+
145
+ 37
146
+ 00:02:44,000 --> 00:02:47,000
147
+ makes GSP super powerful tool for web development.
148
+
149
+ 38
150
+ 00:02:48,000 --> 00:02:54,000
151
+ Okay, but if GSP helps us to create dynamic web content, then what is the difference between the GSP
152
+
153
+ 39
154
+ 00:02:54,000 --> 00:02:55,000
155
+ and Seurat's?
156
+
157
+ 40
158
+ 00:02:56,000 --> 00:02:58,000
159
+ If you remember, let's stop it then.
160
+
161
+ 41
162
+ 00:02:58,000 --> 00:03:04,000
163
+ You should also remember that to generate dynamic content, we have to take create writers from the
164
+
165
+ 42
166
+ 00:03:04,000 --> 00:03:09,000
167
+ response and after that, print out with the help of free offering to learn.
168
+
169
+ 43
170
+ 00:03:09,000 --> 00:03:10,000
171
+ Oh, right.
172
+
173
+ 44
174
+ 00:03:11,000 --> 00:03:18,000
175
+ On the other hand, GSP may have HTML look and feel and have powerful features at the same time.
176
+
177
+ 45
178
+ 00:03:18,000 --> 00:03:24,000
179
+ Can you imagine any frontend developer opens a separate class and tries to move through the serious
180
+
181
+ 46
182
+ 00:03:24,000 --> 00:03:32,000
183
+ of the free to land message invocations in order to find the required output to add some class HTML
184
+
185
+ 47
186
+ 00:03:32,000 --> 00:03:33,000
187
+ element or just stunning.
188
+
189
+ 48
190
+ 00:03:34,000 --> 00:03:42,000
191
+ It is hard to imagine with servers, but frontend engineers can easily navigate these a B file because
192
+
193
+ 49
194
+ 00:03:42,000 --> 00:03:44,000
195
+ it makes you that is out.
196
+
197
+ 50
198
+ 00:03:44,000 --> 00:03:49,000
199
+ It also may have markup and it is easy to adjust the visual presentation of the content.
200
+
201
+ 51
202
+ 00:03:49,000 --> 00:03:55,000
203
+ These are GSP edges, but page consists of simple tax and GSP tops.
204
+
205
+ 52
206
+ 00:03:56,000 --> 00:04:04,000
207
+ The GSP pages are easier to maintains and so that because we can separate design and development, it
208
+
209
+ 53
210
+ 00:04:04,000 --> 00:04:10,000
211
+ provides some additional features such as expression, language, custom tags, etc..
212
+
213
+ 54
214
+ 00:04:10,000 --> 00:04:13,000
215
+ We are going to run all GSP features in this course.
216
+
217
+ 55
218
+ 00:04:14,000 --> 00:04:21,000
219
+ We didn't have lessons about JavaScript yet, but if you heard something about it, you may be wondering
220
+
221
+ 56
222
+ 00:04:22,000 --> 00:04:25,000
223
+ what is the difference between the GSP and the JavaScript?
224
+
225
+ 57
226
+ 00:04:26,000 --> 00:04:31,000
227
+ Ever since simple here, JavaScript allows us to modify Dom.
228
+
229
+ 58
230
+ 00:04:31,000 --> 00:04:37,000
231
+ This is the main object model on the client side and this is the key difference.
232
+
233
+ 59
234
+ 00:04:38,000 --> 00:04:45,000
235
+ JavaScript is executed on the client side in browser, whereas GSP generates content on the service
236
+
237
+ 60
238
+ 00:04:45,000 --> 00:04:50,000
239
+ on the great amazing web solutions with the Java platform.
240
+
241
+ 61
242
+ 00:04:50,000 --> 00:04:58,000
243
+ We need to know both GSP and JavaScript, but is it created for different purposes to address different
244
+
245
+ 62
246
+ 00:04:58,000 --> 00:04:58,000
247
+ challenges?
248
+
249
+ 63
250
+ 00:04:59,000 --> 00:05:05,000
251
+ So I hope that after holding such comparative analysis, it becomes a little bit clear.
252
+
253
+ 64
254
+ 00:05:05,000 --> 00:05:06,000
255
+ It would just be technology is.
256
+
257
+ 65
258
+ 00:05:07,000 --> 00:05:08,000
259
+ Let's continue.
260
+
261
+ 66
262
+ 00:05:08,000 --> 00:05:15,000
263
+ Now let's review the advantages of GSP technology over a similar web development while addressing specific
264
+
265
+ 67
266
+ 00:05:15,000 --> 00:05:15,000
267
+ challenges.
268
+
269
+ 68
270
+ 00:05:16,000 --> 00:05:21,000
271
+ GSP complements and extends capabilities of several technology.
272
+
273
+ 69
274
+ 00:05:22,000 --> 00:05:28,000
275
+ With the GSP, we can use all features that we had in service, and even more than that, in addition
276
+
277
+ 70
278
+ 00:05:28,000 --> 00:05:34,000
279
+ to those features, we can use implicit objects on the page, predefined tags, expression, language,
280
+
281
+ 71
282
+ 00:05:34,000 --> 00:05:38,000
283
+ custom GSP tags to simplify development and others.
284
+
285
+ 72
286
+ 00:05:38,000 --> 00:05:46,000
287
+ That doesn't mean that from now on we'll use GSP instead of so let's Z develop for different purposes.
288
+
289
+ 73
290
+ 00:05:46,000 --> 00:05:50,000
291
+ But it is worse to be highlighted as an advantage here in this comparison.
292
+
293
+ 74
294
+ 00:05:51,000 --> 00:05:53,000
295
+ Easiness of maintenance.
296
+
297
+ 75
298
+ 00:05:53,000 --> 00:05:59,000
299
+ It is relatively easy to maintain the GSP because we can easily separate our business logic with the
300
+
301
+ 76
302
+ 00:05:59,000 --> 00:06:01,000
303
+ presentation logic.
304
+
305
+ 77
306
+ 00:06:01,000 --> 00:06:08,000
307
+ And so that technology makes our business logic was the presentation logic by writing both of those
308
+
309
+ 78
310
+ 00:06:08,000 --> 00:06:10,000
311
+ points is the right to object.
312
+
313
+ 79
314
+ 00:06:11,000 --> 00:06:14,000
315
+ Having GSP simplifies our life.
316
+
317
+ 80
318
+ 00:06:14,000 --> 00:06:17,000
319
+ Usually that GSP is used for the presentation lan.
320
+
321
+ 81
322
+ 00:06:18,000 --> 00:06:23,000
323
+ This doesn't mean we don't have technical opportunities to use on the GSP instead of select.
324
+
325
+ 82
326
+ 00:06:24,000 --> 00:06:32,000
327
+ But as I already said, GSP technology is used nowadays for the presentation we now need in reconciliation
328
+
329
+ 83
330
+ 00:06:32,000 --> 00:06:39,000
331
+ and redeployment in comparison to so that we don't need to redeploy our application in case we changed
332
+
333
+ 84
334
+ 00:06:39,000 --> 00:06:40,000
335
+ our GSP page.
336
+
337
+ 85
338
+ 00:06:41,000 --> 00:06:47,000
339
+ You already know that in case we declare new massive things so that for the new import statement or
340
+
341
+ 86
342
+ 00:06:47,000 --> 00:06:52,000
343
+ things like that, we need to recompile and redeploy our application.
344
+
345
+ 87
346
+ 00:06:52,000 --> 00:06:59,000
347
+ Since a difference was a few pages and I believe we can consider this as advantage of as a semblance.
348
+
349
+ 88
350
+ 00:07:00,000 --> 00:07:09,000
351
+ The next advantage is still GM still stands for GSP Standard Tack Library all like it is also called
352
+
353
+ 89
354
+ 00:07:09,000 --> 00:07:14,000
355
+ Java Standard Tack Library or Jakarta Standard Text Library.
356
+
357
+ 90
358
+ 00:07:14,000 --> 00:07:16,000
359
+ All these names about the same thing.
360
+
361
+ 91
362
+ 00:07:17,000 --> 00:07:19,000
363
+ GST provides a set of tax.
364
+
365
+ 92
366
+ 00:07:20,000 --> 00:07:22,000
367
+ It simplifies development and more.
368
+
369
+ 93
370
+ 00:07:22,000 --> 00:07:29,000
371
+ These stocks we can find tax is it helps us to format out the change locale of the application.
372
+
373
+ 94
374
+ 00:07:30,000 --> 00:07:36,000
375
+ So look was the x amount and even the work was A, B, C and establish connection to the database.
376
+
377
+ 95
378
+ 00:07:36,000 --> 00:07:38,000
379
+ This is really impressive.
380
+
381
+ 96
382
+ 00:07:39,000 --> 00:07:41,000
383
+ Possibility to use custom tax.
384
+
385
+ 97
386
+ 00:07:42,000 --> 00:07:45,000
387
+ We're going to learn how we can create custom tax as GSP.
388
+
389
+ 98
390
+ 00:07:46,000 --> 00:07:54,000
391
+ But what I can say already is this a significant advantage of a separate and HMO because it can speed
392
+
393
+ 99
394
+ 00:07:54,000 --> 00:07:56,000
395
+ up our development process significantly.
396
+
397
+ 100
398
+ 00:07:57,000 --> 00:08:03,000
399
+ Imagine that instead of repeating zip code in different files, you can create custom tat.
400
+
401
+ 101
402
+ 00:08:03,000 --> 00:08:07,000
403
+ And after that, you can use it wherever you need.
404
+
405
+ 102
406
+ 00:08:08,000 --> 00:08:09,000
407
+ In my opinion.
408
+
409
+ 103
410
+ 00:08:09,000 --> 00:08:13,000
411
+ These are just some of the advantages of the GSP technology.
412
+
413
+ 104
414
+ 00:08:13,000 --> 00:08:16,000
415
+ More advantages we will be able to learn.
416
+
417
+ 105
418
+ 00:08:16,000 --> 00:08:18,000
419
+ We will come to the practical exercises.
420
+
421
+ 106
422
+ 00:08:19,000 --> 00:08:23,000
423
+ It is also worth to highlight the disadvantages of the GSP technology.
424
+
425
+ 107
426
+ 00:08:24,000 --> 00:08:32,000
427
+ The first disadvantage is that it is difficult to do more footrace errors in GSP because she spit pages
428
+
429
+ 108
430
+ 00:08:32,000 --> 00:08:35,000
431
+ at translated and then compiled into Java.
432
+
433
+ 109
434
+ 00:08:35,000 --> 00:08:43,000
435
+ So that's errors that creep in your pages are rarely seen as errors arising from the coding of GSP pages.
436
+
437
+ 110
438
+ 00:08:44,000 --> 00:08:50,000
439
+ It's also not possible to use the market as a traditional way that we can use it was a jao a source
440
+
441
+ 111
442
+ 00:08:50,000 --> 00:08:52,000
443
+ code to the potential errors.
444
+
445
+ 112
446
+ 00:08:53,000 --> 00:09:00,000
447
+ This is one of the key reasons why put code and a lot of business logic inside that GSP page is not
448
+
449
+ 113
450
+ 00:09:00,000 --> 00:09:01,000
451
+ consider it as a good practice.
452
+
453
+ 114
454
+ 00:09:02,000 --> 00:09:09,000
455
+ GSP takes additional time to be this place when access is the first time in comparison to the surveillance.
456
+
457
+ 115
458
+ 00:09:10,000 --> 00:09:16,000
459
+ This happens because GSP pages are compiled into the seamless ones that first access and this takes
460
+
461
+ 116
462
+ 00:09:16,000 --> 00:09:20,000
463
+ some time depending on the size of the GSP page.
464
+
465
+ 117
466
+ 00:09:21,000 --> 00:09:29,000
467
+ This time may be different, but in most cases this is not a showstopper and it is not a critical disadvantage.
468
+
469
+ 118
470
+ 00:09:29,000 --> 00:09:38,000
471
+ But still good to know GSP requires double disk space in comparison with surveillance because GSP pages
472
+
473
+ 119
474
+ 00:09:38,000 --> 00:09:45,000
475
+ are translated into Java source code and after that compiled to the cost files this server has to store
476
+
477
+ 120
478
+ 00:09:45,000 --> 00:09:47,000
479
+ request files was reduced by pages.
480
+
481
+ 121
482
+ 00:09:48,000 --> 00:09:53,000
483
+ Also, there is a reason to delegate a lot of the responsibilities of GSP pages.
484
+
485
+ 122
486
+ 00:09:54,000 --> 00:09:58,000
487
+ As we already discussed, GSP technology is really powerful.
488
+
489
+ 123
490
+ 00:09:58,000 --> 00:10:03,000
491
+ You can do the same things as in some ads and even more than that.
492
+
493
+ 124
494
+ 00:10:04,000 --> 00:10:12,000
495
+ But I hope that we will be wise enough to not use all these opportunities because our speech is it.
496
+
497
+ 125
498
+ 00:10:12,000 --> 00:10:18,000
499
+ It can be channeled into some monster that manages markup with all presentation.
500
+
501
+ 126
502
+ 00:10:18,000 --> 00:10:24,000
503
+ That's a basic connection, contains some simple calculations, error handles, and many other different
504
+
505
+ 127
506
+ 00:10:24,000 --> 00:10:25,000
507
+ things.
508
+
509
+ 128
510
+ 00:10:25,000 --> 00:10:32,000
511
+ Yes, it is technically possible, but we should always remember about separation of concerns between
512
+
513
+ 129
514
+ 00:10:32,000 --> 00:10:37,000
515
+ different scenarios in our application and full clean architecture design.
516
+
517
+ 130
518
+ 00:10:38,000 --> 00:10:43,000
519
+ I believe these are the key disadvantages that we should consider while working with GSP.
520
+
521
+ 131
522
+ 00:10:44,000 --> 00:10:47,000
523
+ Now we know advantages and disadvantages of the juice, but technology.
524
+
525
+ 132
526
+ 00:10:48,000 --> 00:10:48,000
527
+ Let's move on.
528
+
529
+ 133
530
+ 00:10:49,000 --> 00:10:55,000
531
+ Let's learn GSP Lifecycle translation of GSP page is a first step.
532
+
533
+ 134
534
+ 00:10:55,000 --> 00:11:01,000
535
+ Basically e.g. Spanish is translated into a Java code of frag less and less.
536
+
537
+ 135
538
+ 00:11:02,000 --> 00:11:08,000
539
+ After we will learn GSP Animals, I will show you how translation from GSP to start with happens.
540
+
541
+ 136
542
+ 00:11:09,000 --> 00:11:13,000
543
+ The next step is compilation of GSP page.
544
+
545
+ 137
546
+ 00:11:13,000 --> 00:11:18,000
547
+ Once GSP is translated into the Java source code, it should be compiled.
548
+
549
+ 138
550
+ 00:11:19,000 --> 00:11:25,000
551
+ Compiles like regular Java file to convert Java source code into the Java bytecode.
552
+
553
+ 139
554
+ 00:11:26,000 --> 00:11:28,000
555
+ After that gross class loading.
556
+
557
+ 140
558
+ 00:11:29,000 --> 00:11:32,000
559
+ During this phase, cross is loaded into a JVM.
560
+
561
+ 141
562
+ 00:11:33,000 --> 00:11:35,000
563
+ The next phase is instantiation.
564
+
565
+ 142
566
+ 00:11:36,000 --> 00:11:39,000
567
+ Java is object oriented platform by design.
568
+
569
+ 143
570
+ 00:11:40,000 --> 00:11:45,000
571
+ That's why after learning class in Digimon, we need to create object.
572
+
573
+ 144
574
+ 00:11:46,000 --> 00:11:49,000
575
+ The next step in the lifecycle is initialization.
576
+
577
+ 145
578
+ 00:11:50,000 --> 00:11:53,000
579
+ The container invokes GSP and it's massive.
580
+
581
+ 146
582
+ 00:11:53,000 --> 00:11:56,000
583
+ And after that we have similar lifecycle too.
584
+
585
+ 147
586
+ 00:11:56,000 --> 00:12:02,000
587
+ So we have the initialization phase was invocation of JSP needs mass.
588
+
589
+ 148
590
+ 00:12:03,000 --> 00:12:04,000
591
+ Then we have request processing.
592
+
593
+ 149
594
+ 00:12:05,000 --> 00:12:11,000
595
+ On this face, container invokes JSP service message and destroy phase.
596
+
597
+ 150
598
+ 00:12:11,000 --> 00:12:15,000
599
+ During this phase, container invokes GSP destroy message.
600
+
601
+ 151
602
+ 00:12:16,000 --> 00:12:19,000
603
+ This whole lifecycle of the GCP looks like.
604
+
605
+ 152
606
+ 00:12:20,000 --> 00:12:24,000
607
+ And now let's run key GCP elements in the GCP.
608
+
609
+ 153
610
+ 00:12:24,000 --> 00:12:30,000
611
+ We can use the following elements legitimate code and all related elements.
612
+
613
+ 154
614
+ 00:12:30,000 --> 00:12:32,000
615
+ GCP talks.
616
+
617
+ 155
618
+ 00:12:32,000 --> 00:12:35,000
619
+ This includes GSL talks and custom docs.
620
+
621
+ 156
622
+ 00:12:35,000 --> 00:12:38,000
623
+ We are going to have a separate lesson about docs.
624
+
625
+ 157
626
+ 00:12:39,000 --> 00:12:43,000
627
+ I'm going to teach you how to use them and how to create custom taps.
628
+
629
+ 158
630
+ 00:12:44,000 --> 00:12:51,000
631
+ GSP comments is that you can use both to email comments and use becomes well.
632
+
633
+ 159
634
+ 00:12:51,000 --> 00:13:00,000
635
+ You learn how to email comments slack and the lesson about HTML and tons just like you can see how GSP
636
+
637
+ 160
638
+ 00:13:00,000 --> 00:13:01,000
639
+ comments look like.
640
+
641
+ 161
642
+ 00:13:02,000 --> 00:13:03,000
643
+ Directives.
644
+
645
+ 162
646
+ 00:13:03,000 --> 00:13:08,000
647
+ GSP directives are used for controlling the quality of a GSP page.
648
+
649
+ 163
650
+ 00:13:09,000 --> 00:13:15,000
651
+ Directives provide information to the seller on how the page should be processed.
652
+
653
+ 164
654
+ 00:13:15,000 --> 00:13:19,000
655
+ The directives are used during translation phase.
656
+
657
+ 165
658
+ 00:13:20,000 --> 00:13:28,000
659
+ There are three types of directives in GSP page directive include directive to lead directive during
660
+
661
+ 166
662
+ 00:13:28,000 --> 00:13:31,000
663
+ the course of events and the most popular directives.
664
+
665
+ 167
666
+ 00:13:32,000 --> 00:13:34,000
667
+ We are going to see some examples.
668
+
669
+ 168
670
+ 00:13:36,000 --> 00:13:40,000
671
+ The next stop of elements is GSP Action Star.
672
+
673
+ 169
674
+ 00:13:40,000 --> 00:13:44,000
675
+ GSP actions lets you perform some action.
676
+
677
+ 170
678
+ 00:13:45,000 --> 00:13:53,000
679
+ The difference between directives and action talks is simple directives work on the face of translation
680
+
681
+ 171
682
+ 00:13:54,000 --> 00:13:58,000
683
+ and action packs work on the face of request processing.
684
+
685
+ 172
686
+ 00:13:59,000 --> 00:14:08,000
687
+ For example, GSP includes action tag allows to insert as a GSP file is a current, while GSP forward
688
+
689
+ 173
690
+ 00:14:08,000 --> 00:14:11,000
691
+ is used for redirect request.
692
+
693
+ 174
694
+ 00:14:11,000 --> 00:14:19,000
695
+ When this action is encountered on a JCP page, the control gets transferred to the page mentioned in
696
+
697
+ 175
698
+ 00:14:19,000 --> 00:14:19,000
699
+ this section.
700
+
701
+ 176
702
+ 00:14:20,000 --> 00:14:27,000
703
+ There are also some actions to interact with properties of jellybeans, but Z lies out of the scope
704
+
705
+ 177
706
+ 00:14:27,000 --> 00:14:28,000
707
+ of the current lesson.
708
+
709
+ 178
710
+ 00:14:29,000 --> 00:14:30,000
711
+ In any way.
712
+
713
+ 179
714
+ 00:14:30,000 --> 00:14:34,000
715
+ I don't expect you to learn all possible g speed tax.
716
+
717
+ 180
718
+ 00:14:35,000 --> 00:14:39,000
719
+ Only in this lesson will learn all of them greatly.
720
+
721
+ 181
722
+ 00:14:39,000 --> 00:14:41,000
723
+ The same case is during the interview.
724
+
725
+ 182
726
+ 00:14:42,000 --> 00:14:49,000
727
+ Most likely you will be asked about the most popular and widely used tax, but not about all possible
728
+
729
+ 183
730
+ 00:14:49,000 --> 00:14:51,000
731
+ tax declarations.
732
+
733
+ 184
734
+ 00:14:52,000 --> 00:14:52,000
735
+ Declaration.
736
+
737
+ 185
738
+ 00:14:52,000 --> 00:14:58,000
739
+ That is a piece of Java code for declaring variables, masses or classes.
740
+
741
+ 186
742
+ 00:14:58,000 --> 00:15:06,000
743
+ If we declare variable a massive inside declaration that it means the declaration is made inside the
744
+
745
+ 187
746
+ 00:15:06,000 --> 00:15:07,000
747
+ service class.
748
+
749
+ 188
750
+ 00:15:07,000 --> 00:15:15,000
751
+ But outside the service method we can declare a static member and the instance variable and masses inside
752
+
753
+ 189
754
+ 00:15:15,000 --> 00:15:22,000
755
+ the declaration that after this declaration we can use all these things on the GCP page.
756
+
757
+ 190
758
+ 00:15:23,000 --> 00:15:23,000
759
+ Script.
760
+
761
+ 191
762
+ 00:15:23,000 --> 00:15:29,000
763
+ That's a script that allows to write Java code into the GCP file.
764
+
765
+ 192
766
+ 00:15:30,000 --> 00:15:35,000
767
+ GCP contained most statements from the script that's in GCP service.
768
+
769
+ 193
770
+ 00:15:35,000 --> 00:15:38,000
771
+ Massive world generated so that from GCP.
772
+
773
+ 194
774
+ 00:15:39,000 --> 00:15:44,000
775
+ For each request of the client serviceman gets involved.
776
+
777
+ 195
778
+ 00:15:45,000 --> 00:15:50,000
779
+ Hence is a code inside the street that executes for every request.
780
+
781
+ 196
782
+ 00:15:51,000 --> 00:15:54,000
783
+ The script contains a quote is of this entity.
784
+
785
+ 197
786
+ 00:15:54,000 --> 00:16:03,000
787
+ Every time GCB is involved expressions expression back evaluates the expression placed in it.
788
+
789
+ 198
790
+ 00:16:04,000 --> 00:16:08,000
791
+ The result of expression is directed in the response out.
792
+
793
+ 199
794
+ 00:16:08,000 --> 00:16:14,000
795
+ What that means is a result of expression will be printed directly to the response body.
796
+
797
+ 200
798
+ 00:16:15,000 --> 00:16:20,000
799
+ I want to highlight one more time that it is not recommended to you script.
800
+
801
+ 201
802
+ 00:16:20,000 --> 00:16:23,000
803
+ Let's expressions and declarations introduce me.
804
+
805
+ 202
806
+ 00:16:24,000 --> 00:16:24,000
807
+ Why?
808
+
809
+ 203
810
+ 00:16:25,000 --> 00:16:27,000
811
+ Because of the very simple disadvantages.
812
+
813
+ 204
814
+ 00:16:27,000 --> 00:16:30,000
815
+ In case of errors, it is hard to deposit code.
816
+
817
+ 205
818
+ 00:16:31,000 --> 00:16:35,000
819
+ Also, it is hard to identify where error comes from.
820
+
821
+ 206
822
+ 00:16:36,000 --> 00:16:42,000
823
+ Now, when you know JSP elements, it will be easier for you to understand the following example.
824
+
825
+ 207
826
+ 00:16:42,000 --> 00:16:50,000
827
+ On this slide, you can see example of GCP file translation into Java Source Code Path actions at the
828
+
829
+ 208
830
+ 00:16:50,000 --> 00:16:55,000
831
+ page import directive was translated as an import statement, which is a Java source code.
832
+
833
+ 209
834
+ 00:16:56,000 --> 00:17:04,000
835
+ Declarations examples were translated and pasted outside of the service as a class property.
836
+
837
+ 210
838
+ 00:17:04,000 --> 00:17:12,000
839
+ In this case, and as masses of the class code of the script that was translated into the code of the
840
+
841
+ 211
842
+ 00:17:12,000 --> 00:17:17,000
843
+ service message and the rest of the page is written directly.
844
+
845
+ 212
846
+ 00:17:17,000 --> 00:17:20,000
847
+ Is a print writer using words message?
848
+
849
+ 213
850
+ 00:17:20,000 --> 00:17:22,000
851
+ Is it for you?
852
+
853
+ 214
854
+ 00:17:22,000 --> 00:17:24,000
855
+ How was the first phase of the GCP lifecycle?
856
+
857
+ 215
858
+ 00:17:24,000 --> 00:17:25,000
859
+ Looks like?
860
+
861
+ 216
862
+ 00:17:26,000 --> 00:17:32,000
863
+ After we create a Java source code, we compile it and that was important things that we just can skip
864
+
865
+ 217
866
+ 00:17:32,000 --> 00:17:33,000
867
+ in this lesson.
868
+
869
+ 218
870
+ 00:17:34,000 --> 00:17:39,000
871
+ We have to know that there are implicit references to some objects on GCP page.
872
+
873
+ 219
874
+ 00:17:39,000 --> 00:17:42,000
875
+ Is it always present on the page?
876
+
877
+ 220
878
+ 00:17:42,000 --> 00:17:45,000
879
+ They're called implicit objects.
880
+
881
+ 221
882
+ 00:17:45,000 --> 00:17:52,000
883
+ These objects are created by GCP container while translating as a page to server.
884
+
885
+ 222
886
+ 00:17:53,000 --> 00:18:00,000
887
+ These objects are present inside service masses so we can directly use them without declaration.
888
+
889
+ 223
890
+ 00:18:01,000 --> 00:18:07,000
891
+ On this slide you can see implicit objects and Zac are spawning classes out.
892
+
893
+ 224
894
+ 00:18:08,000 --> 00:18:15,000
895
+ This reference is used for writing content as a response, but it has several masses which can be used
896
+
897
+ 225
898
+ 00:18:16,000 --> 00:18:21,000
899
+ properly for modern output message as a browser and for dealing with the buffer.
900
+
901
+ 226
902
+ 00:18:22,000 --> 00:18:23,000
903
+ Request.
904
+
905
+ 227
906
+ 00:18:23,000 --> 00:18:30,000
907
+ The main purpose of request implicit object is to get the data on a GSP page which has been entered
908
+
909
+ 228
910
+ 00:18:30,000 --> 00:18:34,000
911
+ by user on the previous JSP page or insert.
912
+
913
+ 229
914
+ 00:18:35,000 --> 00:18:39,000
915
+ For example, one similar to receives a request.
916
+
917
+ 230
918
+ 00:18:39,000 --> 00:18:47,000
919
+ We can place some data into the request activities and after that forward to request this page.
920
+
921
+ 231
922
+ 00:18:47,000 --> 00:18:55,000
923
+ In this case, we will be able to get those request attributes on the page with the help of the request
924
+
925
+ 232
926
+ 00:18:55,000 --> 00:18:58,000
927
+ in place and object response.
928
+
929
+ 233
930
+ 00:18:58,000 --> 00:19:05,000
931
+ It is basically used for modifying or dealing with the response which is being sent to the client after
932
+
933
+ 234
934
+ 00:19:05,000 --> 00:19:06,000
935
+ processing the request.
936
+
937
+ 235
938
+ 00:19:07,000 --> 00:19:14,000
939
+ It has to be somewhat response time and we already learned how we can work with response objects in
940
+
941
+ 236
942
+ 00:19:14,000 --> 00:19:16,000
943
+ the section about stress.
944
+
945
+ 237
946
+ 00:19:17,000 --> 00:19:18,000
947
+ Session.
948
+
949
+ 238
950
+ 00:19:18,000 --> 00:19:25,000
951
+ It is most frequently used in place at Object, which is used for storing the user's data to make it
952
+
953
+ 239
954
+ 00:19:25,000 --> 00:19:29,000
955
+ available on other GSP pages to the user's session.
956
+
957
+ 240
958
+ 00:19:29,000 --> 00:19:31,000
959
+ Use Active Application.
960
+
961
+ 241
962
+ 00:19:32,000 --> 00:19:39,000
963
+ This is used for an application like initialization parameters and to maintain user flow data across
964
+
965
+ 242
966
+ 00:19:39,000 --> 00:19:41,000
967
+ all GCP application.
968
+
969
+ 243
970
+ 00:19:41,000 --> 00:19:48,000
971
+ To be honest, this one is not used very often in comparison to session requests.
972
+
973
+ 244
974
+ 00:19:48,000 --> 00:19:49,000
975
+ Exception.
976
+
977
+ 245
978
+ 00:19:50,000 --> 00:19:50,000
979
+ Exception.
980
+
981
+ 246
982
+ 00:19:50,000 --> 00:19:55,000
983
+ Implicit object is use and exception handling for the explains the error messages.
984
+
985
+ 247
986
+ 00:19:55,000 --> 00:20:00,000
987
+ This object is only available to the GCP pages which has this error page.
988
+
989
+ 248
990
+ 00:20:00,000 --> 00:20:04,000
991
+ Set the true page page.
992
+
993
+ 249
994
+ 00:20:04,000 --> 00:20:10,000
995
+ Implicit object is a reference to the current select instance, which is actually a converted space.
996
+
997
+ 250
998
+ 00:20:11,000 --> 00:20:14,000
999
+ It is rarely used and not in place.
1000
+
1001
+ 251
1002
+ 00:20:14,000 --> 00:20:19,000
1003
+ Implicit object while building in GCP application page context.
1004
+
1005
+ 252
1006
+ 00:20:19,000 --> 00:20:25,000
1007
+ It is used for accessing page request, application and session attributes.
1008
+
1009
+ 253
1010
+ 00:20:26,000 --> 00:20:27,000
1011
+ Config.
1012
+
1013
+ 254
1014
+ 00:20:28,000 --> 00:20:34,000
1015
+ This is so that's configuration object and mainly use for accessing getting configuration information
1016
+
1017
+ 255
1018
+ 00:20:35,000 --> 00:20:39,000
1019
+ such as select contacts, service name configuration parameters, etc..
1020
+
1021
+ 256
1022
+ 00:20:40,000 --> 00:20:45,000
1023
+ We also do the review of that config type in our SO that's section of the course.
1024
+
1025
+ 257
1026
+ 00:20:46,000 --> 00:20:50,000
1027
+ Those are all implicit objects that are available on the page.
1028
+
1029
+ 258
1030
+ 00:20:51,000 --> 00:20:57,000
1031
+ In case you have questions, please, all of them below the reader and I will be happy to answer.
1032
+
1033
+ 259
1034
+ 00:20:58,000 --> 00:21:05,000
1035
+ And last but not least, that I'd like to cover today in the context of the GSP overview GSP expression
1036
+
1037
+ 260
1038
+ 00:21:05,000 --> 00:21:06,000
1039
+ range years.
1040
+
1041
+ 261
1042
+ 00:21:06,000 --> 00:21:09,000
1043
+ Of course I I'm going to teach you how to use it.
1044
+
1045
+ 262
1046
+ 00:21:10,000 --> 00:21:17,000
1047
+ But this is definitely one of the key features of the GSP expression level, which has been introduced
1048
+
1049
+ 263
1050
+ 00:21:17,000 --> 00:21:18,000
1051
+ in GSP 2.0.
1052
+
1053
+ 264
1054
+ 00:21:19,000 --> 00:21:26,000
1055
+ The main purpose of me to simplify the process of x some data from one place it objects expression one
1056
+
1057
+ 265
1058
+ 00:21:26,000 --> 00:21:33,000
1059
+ which includes arithmetic, relational and logical operators to see ethics of expression.
1060
+
1061
+ 266
1062
+ 00:21:33,000 --> 00:21:37,000
1063
+ Language is very simple and you can see it on this slide.
1064
+
1065
+ 267
1066
+ 00:21:37,000 --> 00:21:45,000
1067
+ Whatever is present inside races gets evaluated at trial time and being sent to the output stream.
1068
+
1069
+ 268
1070
+ 00:21:46,000 --> 00:21:53,000
1071
+ The expression is a valid expression, language, expression, and it can be mixed with a static text
1072
+
1073
+ 269
1074
+ 00:21:53,000 --> 00:22:00,000
1075
+ and can be combined with other expression to form large expression on this log.
1076
+
1077
+ 270
1078
+ 00:22:00,000 --> 00:22:08,000
1079
+ You can also see, as a least of all operators, was there a precedence that can be used in the expression
1080
+
1081
+ 271
1082
+ 00:22:08,000 --> 00:22:08,000
1083
+ language?
1084
+
1085
+ 272
1086
+ 00:22:09,000 --> 00:22:14,000
1087
+ Also, there are different implicit objects that are available in the expression language.
1088
+
1089
+ 273
1090
+ 00:22:14,000 --> 00:22:20,000
1091
+ On this slide, you can see a list of the implicit objects that you can use in the expression language.
1092
+
1093
+ 274
1094
+ 00:22:21,000 --> 00:22:27,000
1095
+ Press a pause for a minute and explore names of implicit objects and their usage.
1096
+
1097
+ 275
1098
+ 00:22:27,000 --> 00:22:34,000
1099
+ Probably the most popular and widely used implicit objects in practice are request, scope and session
1100
+
1101
+ 276
1102
+ 00:22:34,000 --> 00:22:34,000
1103
+ scope.
1104
+
1105
+ 277
1106
+ 00:22:35,000 --> 00:22:40,000
1107
+ Once you reviewed all implicit objects, feel free to proceed with the next slide.
1108
+
1109
+ 278
1110
+ 00:22:41,000 --> 00:22:46,000
1111
+ There are some reserved words is that you can use in the expression, language or this slide.
1112
+
1113
+ 279
1114
+ 00:22:46,000 --> 00:22:49,000
1115
+ You can see it was reserved for us in the expression language.
1116
+
1117
+ 280
1118
+ 00:22:50,000 --> 00:22:56,000
1119
+ In this example, you can see how I use AMP to observe key verbs in the expression language.
1120
+
1121
+ 281
1122
+ 00:22:56,000 --> 00:23:00,000
1123
+ I also have a reference to the implicit object session.
1124
+
1125
+ 282
1126
+ 00:23:00,000 --> 00:23:04,000
1127
+ The reason that you do this is to scold users.
1128
+
1129
+ 283
1130
+ 00:23:04,000 --> 00:23:10,000
1131
+ This action is a collection of users and it is placed inside the session object.
1132
+
1133
+ 284
1134
+ 00:23:11,000 --> 00:23:18,000
1135
+ We can return to perforce using empty keyword that acts as a unitary operator.
1136
+
1137
+ 285
1138
+ 00:23:18,000 --> 00:23:20,000
1139
+ That's all for this lesson.
1140
+
1141
+ 286
1142
+ 00:23:20,000 --> 00:23:23,000
1143
+ Let's recap what we have learned today.
1144
+
1145
+ 287
1146
+ 00:23:24,000 --> 00:23:27,000
1147
+ In this lesson, we learned what GSP is.
1148
+
1149
+ 288
1150
+ 00:23:28,000 --> 00:23:35,000
1151
+ We have used the advantages and disadvantages of the GSP vs GSP lifecycle.
1152
+
1153
+ 289
1154
+ 00:23:36,000 --> 00:23:39,000
1155
+ Also today, the now defunct GSP elements.
1156
+
1157
+ 290
1158
+ 00:23:40,000 --> 00:23:43,000
1159
+ Now we are ready to proceed with the practical examples.
1160
+
1161
+ 291
1162
+ 00:23:43,000 --> 00:23:50,000
1163
+ I explained what implicit objects are and what implicit objects present on the speech.
1164
+
1165
+ 292
1166
+ 00:23:51,000 --> 00:23:58,000
1167
+ I showed you how the process of translation of the speech is a Java, so that loops life and the dance
1168
+
1169
+ 293
1170
+ 00:23:58,000 --> 00:23:58,000
1171
+ as a lesson.
1172
+
1173
+ 294
1174
+ 00:23:58,000 --> 00:24:01,000
1175
+ We learned what expression language is.
1176
+
1177
+ 295
1178
+ 00:24:02,000 --> 00:24:03,000
1179
+ That's all for today.
1180
+
1181
+ 296
1182
+ 00:24:04,000 --> 00:24:05,000
1183
+ Thanks a lot for your attention.
1184
+
1185
+ 297
1186
+ 00:24:05,000 --> 00:24:07,000
1187
+ Have a great day and see you.
1188
+
1189
+ 298
1190
+ 00:24:08,000 --> 00:24:08,000
1191
+ Next lesson.
1192
+
68 - JSP/002 First JSP Page & Practical Examples_en.srt ADDED
@@ -0,0 +1,1004 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, Tim.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:10,000
7
+ In this lesson, we proceed with none of GCP technology.
8
+
9
+ 3
10
+ 00:00:10,000 --> 00:00:15,000
11
+ And this lesson is going to be more about practice rather than about Siri.
12
+
13
+ 4
14
+ 00:00:15,000 --> 00:00:22,000
15
+ We learned enough Siri in previous lesson, and I want to highlight that it is important you watch previous
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:29,000
19
+ lesson because today you, in a practical activity, will rely on the information learned in previous
20
+
21
+ 6
22
+ 00:00:29,000 --> 00:00:29,000
23
+ lesson.
24
+
25
+ 7
26
+ 00:00:30,000 --> 00:00:37,000
27
+ In this video we're going to create our first JSP page on real examples will learn how to create G space
28
+
29
+ 8
30
+ 00:00:37,000 --> 00:00:41,000
31
+ using GCP elements that we reviewed into this lesson.
32
+
33
+ 9
34
+ 00:00:42,000 --> 00:00:48,000
35
+ I'm going to show you examples of GCP comments, directives, declarations, expressions, scripts.
36
+
37
+ 10
38
+ 00:00:48,000 --> 00:00:51,000
39
+ That's action, text and expression, language.
40
+
41
+ 11
42
+ 00:00:52,000 --> 00:00:55,000
43
+ You can find all source code examples in attachments.
44
+
45
+ 12
46
+ 00:00:55,000 --> 00:00:58,000
47
+ This lesson let's set our lesson.
48
+
49
+ 13
50
+ 00:00:58,000 --> 00:01:01,000
51
+ And as I promised you, no more talks.
52
+
53
+ 14
54
+ 00:01:01,000 --> 00:01:05,000
55
+ Let me start screen share and straight away and jump to practical examples.
56
+
57
+ 15
58
+ 00:01:06,000 --> 00:01:08,000
59
+ Let's create our first GCP page.
60
+
61
+ 16
62
+ 00:01:09,000 --> 00:01:17,000
63
+ We'll put our new GCP file into the root of our web resources to create GCP page, make mouse right.
64
+
65
+ 17
66
+ 00:01:17,000 --> 00:01:21,000
67
+ Click, Select New and select GCP.
68
+
69
+ 18
70
+ 00:01:22,000 --> 00:01:25,000
71
+ Let's call our new file speed demo.
72
+
73
+ 19
74
+ 00:01:26,000 --> 00:01:30,000
75
+ Usually this is enough and you can click Finish Button to create a new file.
76
+
77
+ 20
78
+ 00:01:31,000 --> 00:01:35,000
79
+ But just out of curiosity, let's click on the next button.
80
+
81
+ 21
82
+ 00:01:36,000 --> 00:01:40,000
83
+ Here you can select one out of many GSP file templates.
84
+
85
+ 22
86
+ 00:01:40,000 --> 00:01:43,000
87
+ I don't use neither of these options.
88
+
89
+ 23
90
+ 00:01:43,000 --> 00:01:47,000
91
+ I prefer to build GCP file according my needs by myself.
92
+
93
+ 24
94
+ 00:01:48,000 --> 00:01:54,000
95
+ That's why let's select the default templates suggested to me and click Finish Button.
96
+
97
+ 25
98
+ 00:01:55,000 --> 00:02:02,000
99
+ As you can see, new file was a GCP extension was created in my laptop folder by default.
100
+
101
+ 26
102
+ 00:02:02,000 --> 00:02:10,000
103
+ I have only one page narrative here declared on top of the file and from previous lesson you already
104
+
105
+ 27
106
+ 00:02:10,000 --> 00:02:14,000
107
+ know that there are three types of GCP directives.
108
+
109
+ 28
110
+ 00:02:14,000 --> 00:02:15,000
111
+ Let's check yourself.
112
+
113
+ 29
114
+ 00:02:16,000 --> 00:02:17,000
115
+ What are they?
116
+
117
+ 30
118
+ 00:02:18,000 --> 00:02:21,000
119
+ Zap Beach Include and Target.
120
+
121
+ 31
122
+ 00:02:22,000 --> 00:02:29,000
123
+ And on the screen you can see a form of after the directive itself with our to use was values.
124
+
125
+ 32
126
+ 00:02:30,000 --> 00:02:32,000
127
+ We can change it if we need.
128
+
129
+ 33
130
+ 00:02:33,000 --> 00:02:40,000
131
+ Also, you can use auto completion to offer clips we can control and space together and use attributes
132
+
133
+ 34
134
+ 00:02:40,000 --> 00:02:42,000
135
+ from the auto suggestions list.
136
+
137
+ 35
138
+ 00:02:42,000 --> 00:02:49,000
139
+ On the rest of the page, the plain H2 email list will read and learned in previous lessons before this
140
+
141
+ 36
142
+ 00:02:49,000 --> 00:02:51,000
143
+ lesson, especially for my students.
144
+
145
+ 37
146
+ 00:02:52,000 --> 00:02:56,000
147
+ I prepared examples that I'd like to go through with you.
148
+
149
+ 38
150
+ 00:02:56,000 --> 00:03:01,000
151
+ So let me paste my examples here in order to save time during the video recording.
152
+
153
+ 39
154
+ 00:03:02,000 --> 00:03:05,000
155
+ Now we are ready to go over all examples here.
156
+
157
+ 40
158
+ 00:03:06,000 --> 00:03:08,000
159
+ The first example is example of comments.
160
+
161
+ 41
162
+ 00:03:09,000 --> 00:03:18,000
163
+ In GCP we can use HTML comments and GCP comments, so feel free to use any syntax you like the most
164
+
165
+ 42
166
+ 00:03:18,000 --> 00:03:21,000
167
+ in order to leave some comments in your code if needed.
168
+
169
+ 43
170
+ 00:03:22,000 --> 00:03:26,000
171
+ The next example here is example of the GCP declaration.
172
+
173
+ 44
174
+ 00:03:27,000 --> 00:03:34,000
175
+ What declare variable ten means value and also what declare a mass that takes in the parameter and increase
176
+
177
+ 45
178
+ 00:03:34,000 --> 00:03:35,000
179
+ it by ten.
180
+
181
+ 46
182
+ 00:03:36,000 --> 00:03:42,000
183
+ Basically, we can put here any code that will be placed outside of the GCP service method during the
184
+
185
+ 47
186
+ 00:03:42,000 --> 00:03:44,000
187
+ translation phase.
188
+
189
+ 48
190
+ 00:03:45,000 --> 00:03:48,000
191
+ Pay attention to make sure that the second message will work.
192
+
193
+ 49
194
+ 00:03:49,000 --> 00:03:52,000
195
+ I need to add import statement in the directives.
196
+
197
+ 50
198
+ 00:03:52,000 --> 00:03:58,000
199
+ In my second message, I use our race class to get student representation of an array.
200
+
201
+ 51
202
+ 00:03:58,000 --> 00:04:02,000
203
+ You already know Java and you have to understand how it works.
204
+
205
+ 52
206
+ 00:04:03,000 --> 00:04:12,000
207
+ I have to use a full class name here and in Java to arrays or I have to add income statement, import
208
+
209
+ 53
210
+ 00:04:12,000 --> 00:04:17,000
211
+ statement that can be added using page directive and here you can see it on top.
212
+
213
+ 54
214
+ 00:04:18,000 --> 00:04:23,000
215
+ Now we are sure that this code will be compiled and will be executed as expected.
216
+
217
+ 55
218
+ 00:04:24,000 --> 00:04:27,000
219
+ So you can see the drawback of using declarations.
220
+
221
+ 56
222
+ 00:04:27,000 --> 00:04:31,000
223
+ How you can test this code results running on the G space.
224
+
225
+ 57
226
+ 00:04:31,000 --> 00:04:34,000
227
+ How you can track any changes done in this code.
228
+
229
+ 58
230
+ 00:04:34,000 --> 00:04:38,000
231
+ And be sure that changes made will not affect business logic.
232
+
233
+ 59
234
+ 00:04:39,000 --> 00:04:41,000
235
+ There are no clear answers to this question.
236
+
237
+ 60
238
+ 00:04:42,000 --> 00:04:47,000
239
+ Using declarations in the GCP page is one of the signs of good design.
240
+
241
+ 61
242
+ 00:04:48,000 --> 00:04:49,000
243
+ And I teach.
244
+
245
+ 62
246
+ 00:04:49,000 --> 00:04:54,000
247
+ How did enterprises and why is this is considered to be as bad practice?
248
+
249
+ 63
250
+ 00:04:54,000 --> 00:04:56,000
251
+ So never do like this.
252
+
253
+ 64
254
+ 00:04:57,000 --> 00:05:03,000
255
+ The next thing that I'd like to tell you is expressions as you remember from the previous lesson.
256
+
257
+ 65
258
+ 00:05:03,000 --> 00:05:07,000
259
+ Expressions print is a result of expressions into the response body.
260
+
261
+ 66
262
+ 00:05:08,000 --> 00:05:16,000
263
+ In the example, I invoke masses that we have just declared inside declarations and I expect that the
264
+
265
+ 67
266
+ 00:05:16,000 --> 00:05:20,000
267
+ results of the masses will be printed directly in the response money.
268
+
269
+ 68
270
+ 00:05:21,000 --> 00:05:25,000
271
+ Let's look in the browser how the expressions world will look like.
272
+
273
+ 69
274
+ 00:05:26,000 --> 00:05:33,000
275
+ As you can see, I already have a web server up and running and pay attention to this fact because this
276
+
277
+ 70
278
+ 00:05:33,000 --> 00:05:37,000
279
+ is important without having a web server up and running.
280
+
281
+ 71
282
+ 00:05:37,000 --> 00:05:45,000
283
+ You won't be able to enjoy all the power of the GCP because you already know the GCP lifecycle and you
284
+
285
+ 72
286
+ 00:05:45,000 --> 00:05:53,000
287
+ understand how GCP files are different from H.M. and it is not enough to open GCP file directly and
288
+
289
+ 73
290
+ 00:05:53,000 --> 00:06:01,000
291
+ the browser GCP should be translated, compiled, instantiated, initialized, and after that GCP service
292
+
293
+ 74
294
+ 00:06:01,000 --> 00:06:06,000
295
+ message should process our request and you can see the results of the masses.
296
+
297
+ 75
298
+ 00:06:06,000 --> 00:06:14,000
299
+ Invocations is a response, but in the first example we want to increase warning by ten and we receive
300
+
301
+ 76
302
+ 00:06:14,000 --> 00:06:14,000
303
+ 30.
304
+
305
+ 77
306
+ 00:06:15,000 --> 00:06:18,000
307
+ And in the second example we want to create string array.
308
+
309
+ 78
310
+ 00:06:18,000 --> 00:06:22,000
311
+ So as you can see, everything works as expected.
312
+
313
+ 79
314
+ 00:06:23,000 --> 00:06:27,000
315
+ Let's get back to the eclipse and look at the examples.
316
+
317
+ 80
318
+ 00:06:27,000 --> 00:06:34,000
319
+ So far we learned how to use directives, declarations and expressions into GCP.
320
+
321
+ 81
322
+ 00:06:34,000 --> 00:06:36,000
323
+ Let's look at the script.
324
+
325
+ 82
326
+ 00:06:36,000 --> 00:06:40,000
327
+ Let's examples similar to declarations and expressions.
328
+
329
+ 83
330
+ 00:06:40,000 --> 00:06:42,000
331
+ It is not recommended to use script.
332
+
333
+ 84
334
+ 00:06:42,000 --> 00:06:47,000
335
+ Let's but still in some old project you can find them.
336
+
337
+ 85
338
+ 00:06:48,000 --> 00:06:53,000
339
+ Once you find them, it is recommended to make the refactor to get rid of them.
340
+
341
+ 86
342
+ 00:06:53,000 --> 00:07:01,000
343
+ In this lesson, basically we know what scripts are and how to use them and in the following lessons
344
+
345
+ 87
346
+ 00:07:01,000 --> 00:07:03,000
347
+ we are going to know how to use.
348
+
349
+ 88
350
+ 00:07:03,000 --> 00:07:10,000
351
+ G is still g is still supposed to help us to substitute to use enough street screengrabs at least some
352
+
353
+ 89
354
+ 00:07:10,000 --> 00:07:11,000
355
+ degree.
356
+
357
+ 90
358
+ 00:07:11,000 --> 00:07:14,000
359
+ We're going to discuss this in the following lesson.
360
+
361
+ 91
362
+ 00:07:14,000 --> 00:07:16,000
363
+ First of all, I have to admit that.
364
+
365
+ 92
366
+ 00:07:17,000 --> 00:07:20,000
367
+ Using a street less usually chance is a nightmare.
368
+
369
+ 93
370
+ 00:07:21,000 --> 00:07:22,000
371
+ But it is what it is.
372
+
373
+ 94
374
+ 00:07:23,000 --> 00:07:28,000
375
+ You have to see it with your own eyes at least once in your life to never use it in the future.
376
+
377
+ 95
378
+ 00:07:29,000 --> 00:07:31,000
379
+ Imagine that we have the following task.
380
+
381
+ 96
382
+ 00:07:32,000 --> 00:07:38,000
383
+ We have a list of users of our application, let's say list of customers of our online shop.
384
+
385
+ 97
386
+ 00:07:39,000 --> 00:07:45,000
387
+ And we need to bring the main information about our customers in the table on the admin panel.
388
+
389
+ 98
390
+ 00:07:46,000 --> 00:07:52,000
391
+ Main information includes in the system first name, last name and email.
392
+
393
+ 99
394
+ 00:07:53,000 --> 00:07:54,000
395
+ What shall we do?
396
+
397
+ 100
398
+ 00:07:55,000 --> 00:08:02,000
399
+ First of all, we need to extract information about users from the persistent storage, from our database.
400
+
401
+ 101
402
+ 00:08:02,000 --> 00:08:08,000
403
+ After that, we need to display this information on the phone, then how we can do this.
404
+
405
+ 102
406
+ 00:08:08,000 --> 00:08:14,000
407
+ First of all, we send a request to speed them a server specially for this lesson.
408
+
409
+ 103
410
+ 00:08:15,000 --> 00:08:18,000
411
+ I create a demo, so let let me show it to you.
412
+
413
+ 104
414
+ 00:08:18,000 --> 00:08:26,000
415
+ It is located in the server lets package and it is called GCP Demo Silva and this so that I implement
416
+
417
+ 105
418
+ 00:08:26,000 --> 00:08:28,000
419
+ do get message.
420
+
421
+ 106
422
+ 00:08:28,000 --> 00:08:34,000
423
+ So understand this example it is important you what is the solution of the home task about?
424
+
425
+ 107
426
+ 00:08:34,000 --> 00:08:37,000
427
+ So let's insert homework review.
428
+
429
+ 108
430
+ 00:08:37,000 --> 00:08:43,000
431
+ I explained using all of the facade object here and why we need it.
432
+
433
+ 109
434
+ 00:08:43,000 --> 00:08:48,000
435
+ My facade object has massive to extract all users from the database.
436
+
437
+ 110
438
+ 00:08:49,000 --> 00:08:54,000
439
+ Don't worry, you will be able also to expose this code on your local computer.
440
+
441
+ 111
442
+ 00:08:55,000 --> 00:08:59,000
443
+ Feel free to find a reference to the source code in attachments to this lesson.
444
+
445
+ 112
446
+ 00:09:00,000 --> 00:09:08,000
447
+ Once I extracted all the users from the database, I set them as attribute requests and the request
448
+
449
+ 113
450
+ 00:09:08,000 --> 00:09:10,000
451
+ is forwarded to the GCP resource.
452
+
453
+ 114
454
+ 00:09:11,000 --> 00:09:14,000
455
+ Let's now navigate back again to the GCP file.
456
+
457
+ 115
458
+ 00:09:14,000 --> 00:09:23,000
459
+ Here you can see each statement is a script that I check was a user's attribute in request is not equal
460
+
461
+ 116
462
+ 00:09:23,000 --> 00:09:23,000
463
+ to no.
464
+
465
+ 117
466
+ 00:09:24,000 --> 00:09:26,000
467
+ And if not, then we print.
468
+
469
+ 118
470
+ 00:09:26,000 --> 00:09:33,000
471
+ They both tagged in the next script that we extract users attribute from the request and create for
472
+
473
+ 119
474
+ 00:09:33,000 --> 00:09:36,000
475
+ each look on each iteration of the loop.
476
+
477
+ 120
478
+ 00:09:37,000 --> 00:09:44,000
479
+ We create table row and in each call we use expressions to print out use of each user object.
480
+
481
+ 121
482
+ 00:09:45,000 --> 00:09:49,000
483
+ And after that we use one more script left to close races.
484
+
485
+ 122
486
+ 00:09:50,000 --> 00:09:55,000
487
+ Also, please do not forget to add all required import statements into the file.
488
+
489
+ 123
490
+ 00:09:55,000 --> 00:10:01,000
491
+ I need to import list, type and user time because I use them in script less.
492
+
493
+ 124
494
+ 00:10:02,000 --> 00:10:04,000
495
+ Otherwise it will be a compilation error.
496
+
497
+ 125
498
+ 00:10:05,000 --> 00:10:10,000
499
+ And though just look at all this is it's readable, I believe.
500
+
501
+ 126
502
+ 00:10:10,000 --> 00:10:11,000
503
+ No.
504
+
505
+ 127
506
+ 00:10:11,000 --> 00:10:13,000
507
+ Is it scannable also?
508
+
509
+ 128
510
+ 00:10:13,000 --> 00:10:14,000
511
+ No.
512
+
513
+ 129
514
+ 00:10:14,000 --> 00:10:15,000
515
+ Does it work?
516
+
517
+ 130
518
+ 00:10:15,000 --> 00:10:17,000
519
+ Yes, it works.
520
+
521
+ 131
522
+ 00:10:17,000 --> 00:10:18,000
523
+ Let me show it to you.
524
+
525
+ 132
526
+ 00:10:19,000 --> 00:10:21,000
527
+ I open the browser one more time.
528
+
529
+ 133
530
+ 00:10:21,000 --> 00:10:23,000
531
+ Pay attention to this time.
532
+
533
+ 134
534
+ 00:10:23,000 --> 00:10:30,000
535
+ I need to send a request not as a GCP page, but there's a similar app that will forward my request
536
+
537
+ 135
538
+ 00:10:30,000 --> 00:10:31,000
539
+ to the GCP resource.
540
+
541
+ 136
542
+ 00:10:32,000 --> 00:10:35,000
543
+ After all of this will be added to the request.
544
+
545
+ 137
546
+ 00:10:35,000 --> 00:10:36,000
547
+ Is it clear?
548
+
549
+ 138
550
+ 00:10:37,000 --> 00:10:44,000
551
+ Because if I send a request directly to the GCP page, no attributes I extracted from the database.
552
+
553
+ 139
554
+ 00:10:44,000 --> 00:10:51,000
555
+ That's why I need to change your ID to make sure that my request will hit GCP demo so well.
556
+
557
+ 140
558
+ 00:10:52,000 --> 00:10:54,000
559
+ And now we can see a table of my users.
560
+
561
+ 141
562
+ 00:10:55,000 --> 00:10:59,000
563
+ This is data from the persistent storage, from the database.
564
+
565
+ 142
566
+ 00:11:00,000 --> 00:11:00,000
567
+ Can you see?
568
+
569
+ 143
570
+ 00:11:01,000 --> 00:11:05,000
571
+ This proves that this not readable sync made of script.
572
+
573
+ 144
574
+ 00:11:05,000 --> 00:11:07,000
575
+ That's an expressions works.
576
+
577
+ 145
578
+ 00:11:08,000 --> 00:11:09,000
579
+ Just remember this example.
580
+
581
+ 146
582
+ 00:11:10,000 --> 00:11:16,000
583
+ In the next lesson, I'm going to show you incredibly elegant solution of the same task with the help
584
+
585
+ 147
586
+ 00:11:16,000 --> 00:11:17,000
587
+ of the Giusto.
588
+
589
+ 148
590
+ 00:11:18,000 --> 00:11:21,000
591
+ But at least now you can understand how script.
592
+
593
+ 149
594
+ 00:11:21,000 --> 00:11:25,000
595
+ Let's look how they look like and why it is not recommended to use them.
596
+
597
+ 150
598
+ 00:11:26,000 --> 00:11:33,000
599
+ And in case you have questions, please do not hesitate to ask them below this video and I will be happy
600
+
601
+ 151
602
+ 00:11:33,000 --> 00:11:33,000
603
+ to answer those.
604
+
605
+ 152
606
+ 00:11:34,000 --> 00:11:38,000
607
+ Let me show how Action Tech looks like in this demo.
608
+
609
+ 153
610
+ 00:11:38,000 --> 00:11:42,000
611
+ I'm going to show you how to use GCP include action path.
612
+
613
+ 154
614
+ 00:11:43,000 --> 00:11:53,000
615
+ Basically every single here you just write GCP include and is a page parameter you can pass as a relative
616
+
617
+ 155
618
+ 00:11:53,000 --> 00:11:54,000
619
+ pass to speak.
620
+
621
+ 156
622
+ 00:11:55,000 --> 00:11:56,000
623
+ That's it.
624
+
625
+ 157
626
+ 00:11:56,000 --> 00:12:04,000
627
+ In this particular case I passed as a reference to another GCP file example lets you open the file with
628
+
629
+ 158
630
+ 00:12:04,000 --> 00:12:07,000
631
+ the name GCP includes demo GCP.
632
+
633
+ 159
634
+ 00:12:08,000 --> 00:12:13,000
635
+ As you can see, it doesn't have regular HTML structures that we used to have.
636
+
637
+ 160
638
+ 00:12:13,000 --> 00:12:14,000
639
+ I did this on purpose.
640
+
641
+ 161
642
+ 00:12:15,000 --> 00:12:16,000
643
+ Just in this case.
644
+
645
+ 162
646
+ 00:12:16,000 --> 00:12:25,000
647
+ The page will be built into another page, so I don't need to have hat and body tax one more time.
648
+
649
+ 163
650
+ 00:12:25,000 --> 00:12:31,000
651
+ I just need to have some piece of the markup that can be built into another file.
652
+
653
+ 164
654
+ 00:12:32,000 --> 00:12:36,000
655
+ In this file, we have the heading suite element with this text.
656
+
657
+ 165
658
+ 00:12:36,000 --> 00:12:44,000
659
+ Let's take a look inside of that browser and see you can see a few tips for the elements in Chrome dev
660
+
661
+ 166
662
+ 00:12:44,000 --> 00:12:45,000
663
+ tools.
664
+
665
+ 167
666
+ 00:12:45,000 --> 00:12:50,000
667
+ We are going to find that element is just inserted into the HTML page.
668
+
669
+ 168
670
+ 00:12:51,000 --> 00:12:54,000
671
+ That's how GCP includes action that looks like.
672
+
673
+ 169
674
+ 00:12:55,000 --> 00:13:01,000
675
+ And the last but not least see that I'd like the demo in this lesson is expression language as you remember
676
+
677
+ 170
678
+ 00:13:02,000 --> 00:13:05,000
679
+ expression, language, specific syntax.
680
+
681
+ 171
682
+ 00:13:05,000 --> 00:13:12,000
683
+ We use dollar sign and cherry braces inside curly braces we can use expression language.
684
+
685
+ 172
686
+ 00:13:13,000 --> 00:13:16,000
687
+ Let me show you was a help a few examples.
688
+
689
+ 173
690
+ 00:13:16,000 --> 00:13:20,000
691
+ First example here is a demo of simple operations.
692
+
693
+ 174
694
+ 00:13:21,000 --> 00:13:26,000
695
+ The result of the expression will be evaluated and created in the response body.
696
+
697
+ 175
698
+ 00:13:27,000 --> 00:13:33,000
699
+ In this particular example, we may condition and we want to see the result is a response demo.
700
+
701
+ 176
702
+ 00:13:34,000 --> 00:13:36,000
703
+ Let's check the result of addition and subrosa.
704
+
705
+ 177
706
+ 00:13:37,000 --> 00:13:41,000
707
+ And as you can see, so E plus five equals eight.
708
+
709
+ 178
710
+ 00:13:42,000 --> 00:13:43,000
711
+ Everson works here.
712
+
713
+ 179
714
+ 00:13:43,000 --> 00:13:44,000
715
+ Amazing.
716
+
717
+ 180
718
+ 00:13:45,000 --> 00:13:52,000
719
+ Now let me show you how we can extract value from the request scope ever since.
720
+
721
+ 181
722
+ 00:13:52,000 --> 00:13:52,000
723
+ Simple here.
724
+
725
+ 182
726
+ 00:13:53,000 --> 00:14:03,000
727
+ First of all, let me show you that we add a few more to this request inside our so we added hello attribute
728
+
729
+ 183
730
+ 00:14:03,000 --> 00:14:11,000
731
+ was some tasks also was set one more achieve this is called user was the first user from the user list.
732
+
733
+ 184
734
+ 00:14:12,000 --> 00:14:15,000
735
+ After that we forward the request to the GCP resource.
736
+
737
+ 185
738
+ 00:14:16,000 --> 00:14:19,000
739
+ Now let's get back to the GCP page and look at it.
740
+
741
+ 186
742
+ 00:14:20,000 --> 00:14:24,000
743
+ You can extract property from the request, scope or session scope.
744
+
745
+ 187
746
+ 00:14:24,000 --> 00:14:30,000
747
+ For example, using the implicit objects is that we can use an expression, language, the least of
748
+
749
+ 188
750
+ 00:14:30,000 --> 00:14:37,000
751
+ all possible implicit objects that we can use and expression language were used in the previous lesson.
752
+
753
+ 189
754
+ 00:14:38,000 --> 00:14:44,000
755
+ The interesting thing here is that you can automate request, scope or session scope, and instead of
756
+
757
+ 190
758
+ 00:14:44,000 --> 00:14:46,000
759
+ writing the request scope.
760
+
761
+ 191
762
+ 00:14:46,000 --> 00:14:47,000
763
+ DART Hello.
764
+
765
+ 192
766
+ 00:14:47,000 --> 00:14:54,000
767
+ And just to remind you that hello is just in that name, instead of all this we can use just name of
768
+
769
+ 193
770
+ 00:14:54,000 --> 00:14:55,000
771
+ the property.
772
+
773
+ 194
774
+ 00:14:55,000 --> 00:14:57,000
775
+ It will work in both cases.
776
+
777
+ 195
778
+ 00:14:57,000 --> 00:15:04,000
779
+ You can chat with me, opens a web browser and here you can see the same message extracted.
780
+
781
+ 196
782
+ 00:15:05,000 --> 00:15:10,000
783
+ With the help of some place object and just by using attribute name.
784
+
785
+ 197
786
+ 00:15:11,000 --> 00:15:16,000
787
+ The next example analogy epidermal file is a demo of usage of reserved keywords.
788
+
789
+ 198
790
+ 00:15:17,000 --> 00:15:22,000
791
+ From the previous lesson, you already know that there are different keywords reserved in expression,
792
+
793
+ 199
794
+ 00:15:22,000 --> 00:15:26,000
795
+ language and can be used to form an expression.
796
+
797
+ 200
798
+ 00:15:26,000 --> 00:15:33,000
799
+ In this particular example, I want to use empty keywords in order to check whether users collection
800
+
801
+ 201
802
+ 00:15:33,000 --> 00:15:34,000
803
+ is empty or not.
804
+
805
+ 202
806
+ 00:15:35,000 --> 00:15:39,000
807
+ In case I want to check that Caesar's collection is not empty.
808
+
809
+ 203
810
+ 00:15:39,000 --> 00:15:48,000
811
+ I can add another Q or two before empty, and I have not empty user expressions here, even without
812
+
813
+ 204
814
+ 00:15:48,000 --> 00:15:51,000
815
+ knowledge of any programming, language and operators.
816
+
817
+ 205
818
+ 00:15:51,000 --> 00:15:56,000
819
+ It is crystal clear what is verified in this expression, isn't it?
820
+
821
+ 206
822
+ 00:15:57,000 --> 00:16:01,000
823
+ This is one of the benefits of using Cuba as an expression language.
824
+
825
+ 207
826
+ 00:16:02,000 --> 00:16:07,000
827
+ Let's get back to CNN.com browser and explore the results of expression.
828
+
829
+ 208
830
+ 00:16:08,000 --> 00:16:11,000
831
+ And we can see that in the first case, we see false.
832
+
833
+ 209
834
+ 00:16:12,000 --> 00:16:15,000
835
+ That means that users collection is not empty.
836
+
837
+ 210
838
+ 00:16:16,000 --> 00:16:19,000
839
+ In case we ask was a user's collection is not empty.
840
+
841
+ 211
842
+ 00:16:20,000 --> 00:16:24,000
843
+ We receive true because our collection contains users.
844
+
845
+ 212
846
+ 00:16:25,000 --> 00:16:31,000
847
+ Is there simply a hint in case you want a learn more reserved keywords in expression language?
848
+
849
+ 213
850
+ 00:16:32,000 --> 00:16:34,000
851
+ Please refer to the previous lesson.
852
+
853
+ 214
854
+ 00:16:35,000 --> 00:16:39,000
855
+ Also, feel free to ask any questions you have below this video.
856
+
857
+ 215
858
+ 00:16:40,000 --> 00:16:47,000
859
+ Now let's review how we can work with properties of the object inside the expression language and what
860
+
861
+ 216
862
+ 00:16:47,000 --> 00:16:48,000
863
+ rules we should follow.
864
+
865
+ 217
866
+ 00:16:49,000 --> 00:16:51,000
867
+ Let's get back to the eclipse.
868
+
869
+ 218
870
+ 00:16:51,000 --> 00:16:52,000
871
+ To use the next example.
872
+
873
+ 219
874
+ 00:16:53,000 --> 00:16:57,000
875
+ If you remember, we put into our request object one more attribute.
876
+
877
+ 220
878
+ 00:16:58,000 --> 00:17:05,000
879
+ I am talking about user attribute use an expression and I can refer not just to the user object itself,
880
+
881
+ 221
882
+ 00:17:06,000 --> 00:17:08,000
883
+ but also to its properties.
884
+
885
+ 222
886
+ 00:17:08,000 --> 00:17:09,000
887
+ How?
888
+
889
+ 223
890
+ 00:17:09,000 --> 00:17:17,000
891
+ Just by using the, for example, windows that our user attributes should have email to the expression
892
+
893
+ 224
894
+ 00:17:17,000 --> 00:17:22,000
895
+ and we will just start user dot email in order to sync here.
896
+
897
+ 225
898
+ 00:17:22,000 --> 00:17:29,000
899
+ If you want to express properties in this way, you need to make sure that you have got a massive created
900
+
901
+ 226
902
+ 00:17:29,000 --> 00:17:32,000
903
+ for this property and it should be created.
904
+
905
+ 227
906
+ 00:17:32,000 --> 00:17:34,000
907
+ According to the John naming convention.
908
+
909
+ 228
910
+ 00:17:34,000 --> 00:17:38,000
911
+ This means you should have an asset called get email.
912
+
913
+ 229
914
+ 00:17:39,000 --> 00:17:45,000
915
+ What I get is sort of some of the lower keys and the email is stuff from the capital case.
916
+
917
+ 230
918
+ 00:17:45,000 --> 00:17:47,000
919
+ This is important requirement.
920
+
921
+ 231
922
+ 00:17:48,000 --> 00:17:54,000
923
+ Otherwise, in case you wouldn't have proper get a message for the attribute, you would receive compilation
924
+
925
+ 232
926
+ 00:17:54,000 --> 00:17:56,000
927
+ error on the GCP page.
928
+
929
+ 233
930
+ 00:17:56,000 --> 00:18:01,000
931
+ You would see that property email is not readable on type user and that's it.
932
+
933
+ 234
934
+ 00:18:03,000 --> 00:18:06,000
935
+ Take into account we have all necessary those masses created.
936
+
937
+ 235
938
+ 00:18:07,000 --> 00:18:13,000
939
+ Let's check in the web browser how this expression is evolving and Chrome browser.
940
+
941
+ 236
942
+ 00:18:13,000 --> 00:18:17,000
943
+ You can see that our expression is evaluated as expected.
944
+
945
+ 237
946
+ 00:18:18,000 --> 00:18:19,000
947
+ Now we can see the image of the user.
948
+
949
+ 238
950
+ 00:18:20,000 --> 00:18:23,000
951
+ That's all what I wanted to share with you today in our lesson.
952
+
953
+ 239
954
+ 00:18:24,000 --> 00:18:26,000
955
+ Let's recap what we have learned today.
956
+
957
+ 240
958
+ 00:18:27,000 --> 00:18:30,000
959
+ Today with lessons full of practical examples.
960
+
961
+ 241
962
+ 00:18:31,000 --> 00:18:34,000
963
+ Most of the same seminars improve this lesson.
964
+
965
+ 242
966
+ 00:18:34,000 --> 00:18:39,000
967
+ But you can be sure you know something until you try it on practice.
968
+
969
+ 243
970
+ 00:18:40,000 --> 00:18:43,000
971
+ We created our first GCP page on Praxis.
972
+
973
+ 244
974
+ 00:18:43,000 --> 00:18:54,000
975
+ We saw how we can use GCP elements to build GCP page, namely used GCP, common GCP Directives, Declarations,
976
+
977
+ 245
978
+ 00:18:54,000 --> 00:18:54,000
979
+ Expressions.
980
+
981
+ 246
982
+ 00:18:54,000 --> 00:18:58,000
983
+ Scrip class action packs and expression.
984
+
985
+ 247
986
+ 00:18:58,000 --> 00:18:59,000
987
+ Language Examples.
988
+
989
+ 248
990
+ 00:19:00,000 --> 00:19:01,000
991
+ That's all for this lesson.
992
+
993
+ 249
994
+ 00:19:01,000 --> 00:19:03,000
995
+ Thank you all for your attention.
996
+
997
+ 250
998
+ 00:19:03,000 --> 00:19:05,000
999
+ Have a great day and see you.
1000
+
1001
+ 251
1002
+ 00:19:05,000 --> 00:19:06,000
1003
+ Next lesson.
1004
+
68 - JSP/002 JSP-demo-file.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/jsp-demo.jsp
68 - JSP/002 Servlet-source-code-from-the-lesson.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/JspDemoServlet.java
68 - JSP/003 JSTL Part 1_en.srt ADDED
@@ -0,0 +1,860 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, team.
4
+
5
+ 2
6
+ 00:00:07,000 --> 00:00:13,000
7
+ In this lesson, we're going to learn what GSL is and review practical examples to learn how we can
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:16,000
11
+ use G cell tags in our application.
12
+
13
+ 4
14
+ 00:00:17,000 --> 00:00:22,000
15
+ We'll start our lesson from learning what GSL is and why we need it.
16
+
17
+ 5
18
+ 00:00:22,000 --> 00:00:26,000
19
+ I'm going to explain advantages and disadvantages of GSL.
20
+
21
+ 6
22
+ 00:00:27,000 --> 00:00:32,000
23
+ After that, we'll go deep in learning different groups of GSL attacks.
24
+
25
+ 7
26
+ 00:00:32,000 --> 00:00:40,000
27
+ Zia cortex for modern tasks, still functions, sequel tags and x small packs.
28
+
29
+ 8
30
+ 00:00:41,000 --> 00:00:43,000
31
+ Together, we'll configure GSL in our project.
32
+
33
+ 9
34
+ 00:00:44,000 --> 00:00:50,000
35
+ After reviewing all practical examples that I prepared for you, you will become a true professional
36
+
37
+ 10
38
+ 00:00:50,000 --> 00:00:52,000
39
+ in just now, I promise you.
40
+
41
+ 11
42
+ 00:00:53,000 --> 00:00:55,000
43
+ So let's not waste our time.
44
+
45
+ 12
46
+ 00:00:56,000 --> 00:00:57,000
47
+ Let's start our lesson.
48
+
49
+ 13
50
+ 00:00:58,000 --> 00:01:01,000
51
+ Let's understand first what GSL is.
52
+
53
+ 14
54
+ 00:01:02,000 --> 00:01:05,000
55
+ Just two stands for Java Standard Stack Library.
56
+
57
+ 15
58
+ 00:01:06,000 --> 00:01:13,000
59
+ It is also maybe known as GCP Standard Pick Library or Jakarta Standard Tech Library.
60
+
61
+ 16
62
+ 00:01:14,000 --> 00:01:17,000
63
+ All these names describe the same thing.
64
+
65
+ 17
66
+ 00:01:18,000 --> 00:01:25,000
67
+ G Sale is a collection of useful GCP dogs, which encapsulates the core functionality common to meninges
68
+
69
+ 18
70
+ 00:01:25,000 --> 00:01:26,000
71
+ applications.
72
+
73
+ 19
74
+ 00:01:27,000 --> 00:01:33,000
75
+ G has support for common structural tasks such as iteration and conditionals.
76
+
77
+ 20
78
+ 00:01:34,000 --> 00:01:41,000
79
+ Thanks for manipulating SML documents, internationalization tags and school tax lets you use a key
80
+
81
+ 21
82
+ 00:01:41,000 --> 00:01:44,000
83
+ advantage of the still packs of a script.
84
+
85
+ 22
86
+ 00:01:44,000 --> 00:01:47,000
87
+ That's expressions and declarations since a GCP.
88
+
89
+ 23
90
+ 00:01:48,000 --> 00:01:52,000
91
+ First of all, still talks are more readable.
92
+
93
+ 24
94
+ 00:01:52,000 --> 00:01:55,000
95
+ I hope you watched the previous lesson.
96
+
97
+ 25
98
+ 00:01:55,000 --> 00:01:56,000
99
+ An example was script class.
100
+
101
+ 26
102
+ 00:01:57,000 --> 00:01:58,000
103
+ I see you would agree with me.
104
+
105
+ 27
106
+ 00:01:58,000 --> 00:02:00,000
107
+ So that example was Greek.
108
+
109
+ 28
110
+ 00:02:00,000 --> 00:02:02,000
111
+ Let's wasn't straightforward and clear.
112
+
113
+ 29
114
+ 00:02:03,000 --> 00:02:08,000
115
+ I believe each developer should investigate very attentively code with script.
116
+
117
+ 30
118
+ 00:02:08,000 --> 00:02:11,000
119
+ That's to make sure that nothing important was missed.
120
+
121
+ 31
122
+ 00:02:12,000 --> 00:02:19,000
123
+ On the other hand, just to brings more the devil team to our code and this is a very important one.
124
+
125
+ 32
126
+ 00:02:19,000 --> 00:02:25,000
127
+ We develop enterprise applications that are going to be supported and scaled for many years.
128
+
129
+ 33
130
+ 00:02:26,000 --> 00:02:29,000
131
+ The second advantage is a stealth tax, a reusable.
132
+
133
+ 34
134
+ 00:02:30,000 --> 00:02:33,000
135
+ You could compare yourself tax with scrip less.
136
+
137
+ 35
138
+ 00:02:33,000 --> 00:02:40,000
139
+ It is clear across the screen plans should be written manually and we should create scrip lets each
140
+
141
+ 36
142
+ 00:02:40,000 --> 00:02:40,000
143
+ time.
144
+
145
+ 37
146
+ 00:02:40,000 --> 00:02:47,000
147
+ We need to add some logic and be very attentive to make sure that page will be compiled and we don't
148
+
149
+ 38
150
+ 00:02:47,000 --> 00:02:51,000
151
+ accidentally assume a column basis to close the book.
152
+
153
+ 39
154
+ 00:02:52,000 --> 00:02:58,000
155
+ On the other hand, sales tax is something which can be reused over and over again.
156
+
157
+ 40
158
+ 00:02:58,000 --> 00:03:06,000
159
+ There is a quote algorithm that may stand behind each tack and you don't need to think about how to
160
+
161
+ 41
162
+ 00:03:06,000 --> 00:03:08,000
163
+ implement that each time from scratch.
164
+
165
+ 42
166
+ 00:03:09,000 --> 00:03:10,000
167
+ You already have that.
168
+
169
+ 43
170
+ 00:03:10,000 --> 00:03:15,000
171
+ That has clear API and can be used multiple times in similar cases.
172
+
173
+ 44
174
+ 00:03:16,000 --> 00:03:17,000
175
+ No need to test.
176
+
177
+ 45
178
+ 00:03:17,000 --> 00:03:23,000
179
+ You still can just be scripts that can be tested with unit tests, for example.
180
+
181
+ 46
182
+ 00:03:24,000 --> 00:03:25,000
183
+ Those await the test script.
184
+
185
+ 47
186
+ 00:03:25,000 --> 00:03:33,000
187
+ Less is to implement your eye test and verify how presentation is changed based on the different conditions.
188
+
189
+ 48
190
+ 00:03:34,000 --> 00:03:37,000
191
+ But since a different was GST tax.
192
+
193
+ 49
194
+ 00:03:37,000 --> 00:03:39,000
195
+ You don't need to test them.
196
+
197
+ 50
198
+ 00:03:39,000 --> 00:03:43,000
199
+ They already work as expected and this is guarantee.
200
+
201
+ 51
202
+ 00:03:44,000 --> 00:03:52,000
203
+ So using Gestalt that we can be sure that the behavior of the G cell tax will be as it is specified
204
+
205
+ 52
206
+ 00:03:52,000 --> 00:03:53,000
207
+ in the documentation.
208
+
209
+ 53
210
+ 00:03:54,000 --> 00:03:56,000
211
+ GSL can substitute script.
212
+
213
+ 54
214
+ 00:03:56,000 --> 00:03:58,000
215
+ That's in some cases, yes.
216
+
217
+ 55
218
+ 00:03:58,000 --> 00:04:01,000
219
+ This is also the advantage of the sales tax.
220
+
221
+ 56
222
+ 00:04:02,000 --> 00:04:06,000
223
+ Definitely not in all cases, just sales tax.
224
+
225
+ 57
226
+ 00:04:06,000 --> 00:04:07,000
227
+ Conservative is correct.
228
+
229
+ 58
230
+ 00:04:07,000 --> 00:04:09,000
231
+ Let's look a script.
232
+
233
+ 59
234
+ 00:04:09,000 --> 00:04:12,000
235
+ Let's allow us to describe a range of a code.
236
+
237
+ 60
238
+ 00:04:12,000 --> 00:04:17,000
239
+ But still tax covers the most popular operations and algorithms.
240
+
241
+ 61
242
+ 00:04:17,000 --> 00:04:21,000
243
+ Let's sue for the cases that can be covered by just.
244
+
245
+ 62
246
+ 00:04:21,000 --> 00:04:25,000
247
+ Still, it is recommended to create custom tax.
248
+
249
+ 63
250
+ 00:04:25,000 --> 00:04:30,000
251
+ Make sure that this property and use custom tax instead of script.
252
+
253
+ 64
254
+ 00:04:30,000 --> 00:04:33,000
255
+ That's how to create and how to use custom tax.
256
+
257
+ 65
258
+ 00:04:33,000 --> 00:04:35,000
259
+ We're going to love these.
260
+
261
+ 66
262
+ 00:04:35,000 --> 00:04:35,000
263
+ A separate lesson.
264
+
265
+ 67
266
+ 00:04:36,000 --> 00:04:38,000
267
+ That's no disadvantage or subsidy.
268
+
269
+ 68
270
+ 00:04:38,000 --> 00:04:46,000
271
+ You still do still is not so flexible, as scrupulous as we already discuss with squeak less.
272
+
273
+ 69
274
+ 00:04:46,000 --> 00:04:52,000
275
+ You can basically implement any algorithm you need because you write any Java code needed.
276
+
277
+ 70
278
+ 00:04:53,000 --> 00:04:58,000
279
+ Do you still has this amount of text length its number of operations?
280
+
281
+ 71
282
+ 00:04:59,000 --> 00:05:00,000
283
+ Request.
284
+
285
+ 72
286
+ 00:05:00,000 --> 00:05:00,000
287
+ Not enough tax.
288
+
289
+ 73
290
+ 00:05:01,000 --> 00:05:04,000
291
+ Probably the biggest disadvantage.
292
+
293
+ 74
294
+ 00:05:04,000 --> 00:05:09,000
295
+ But still imagine you're a Java developer who never worked was due still times before.
296
+
297
+ 75
298
+ 00:05:10,000 --> 00:05:14,000
299
+ You know you have a syntax and you know how to solve your task was java code.
300
+
301
+ 76
302
+ 00:05:15,000 --> 00:05:23,000
303
+ So why don't you just use quick to do the things that you have to do and skip a step whereas you know
304
+
305
+ 77
306
+ 00:05:23,000 --> 00:05:24,000
307
+ you still tax.
308
+
309
+ 78
310
+ 00:05:25,000 --> 00:05:28,000
311
+ From this point of view, learning of do you still tax me?
312
+
313
+ 79
314
+ 00:05:28,000 --> 00:05:30,000
315
+ Sounds like it's disadvantage.
316
+
317
+ 80
318
+ 00:05:31,000 --> 00:05:36,000
319
+ But if you would accept and understand all of the advantages, is it still tax greatness?
320
+
321
+ 81
322
+ 00:05:37,000 --> 00:05:40,000
323
+ Then you have more motivation to just tell.
324
+
325
+ 82
326
+ 00:05:41,000 --> 00:05:45,000
327
+ So these are the main advantages and disadvantages of the GST.
328
+
329
+ 83
330
+ 00:05:46,000 --> 00:05:47,000
331
+ Let's continue.
332
+
333
+ 84
334
+ 00:05:48,000 --> 00:05:57,000
335
+ While you still tax can be grouped in five different groups to see how course tax for online tax do
336
+
337
+ 85
338
+ 00:05:57,000 --> 00:06:01,000
339
+ still functions school tax and amount tax.
340
+
341
+ 86
342
+ 00:06:02,000 --> 00:06:05,000
343
+ Let's review different groups of tax.
344
+
345
+ 87
346
+ 00:06:06,000 --> 00:06:06,000
347
+ Core.
348
+
349
+ 88
350
+ 00:06:06,000 --> 00:06:15,000
351
+ That's just how core tech library contains stacks for performing basic operations such as printing values,
352
+
353
+ 89
354
+ 00:06:15,000 --> 00:06:21,000
355
+ variables, declaration exception, hand performing durations and declarant conditional statements among
356
+
357
+ 90
358
+ 00:06:21,000 --> 00:06:22,000
359
+ others.
360
+
361
+ 91
362
+ 00:06:23,000 --> 00:06:26,000
363
+ On this slide, you can see the most popular course tax.
364
+
365
+ 92
366
+ 00:06:27,000 --> 00:06:35,000
367
+ If you would ask me what facts are most popular from these ones, I would name said these choose to
368
+
369
+ 93
370
+ 00:06:35,000 --> 00:06:38,000
371
+ be as together was when and otherwise for each.
372
+
373
+ 94
374
+ 00:06:39,000 --> 00:06:40,000
375
+ So they do in the demo.
376
+
377
+ 95
378
+ 00:06:40,000 --> 00:06:43,000
379
+ I'm going to show you examples with Z stats.
380
+
381
+ 96
382
+ 00:06:45,000 --> 00:06:46,000
383
+ Sir Martin.
384
+
385
+ 97
386
+ 00:06:46,000 --> 00:06:46,000
387
+ Thanks.
388
+
389
+ 98
390
+ 00:06:47,000 --> 00:06:56,000
391
+ Do you still for modern talk library provides a convenient way for for Martin text members these times
392
+
393
+ 99
394
+ 00:06:56,000 --> 00:06:58,000
395
+ and other variables for better display.
396
+
397
+ 100
398
+ 00:06:59,000 --> 00:07:06,000
399
+ In my job from zero to first jump course, we also learned localization and internationalization topics.
400
+
401
+ 101
402
+ 00:07:07,000 --> 00:07:13,000
403
+ With the help of full mining tax, you can implement internationalization approach on your presentation
404
+
405
+ 102
406
+ 00:07:13,000 --> 00:07:14,000
407
+ letter of application.
408
+
409
+ 103
410
+ 00:07:15,000 --> 00:07:21,000
411
+ Please feel free to present course on the video player to explore this slide with.
412
+
413
+ 104
414
+ 00:07:21,000 --> 00:07:21,000
415
+ Thanks.
416
+
417
+ 105
418
+ 00:07:22,000 --> 00:07:26,000
419
+ Take your time to read tax reserve descriptions.
420
+
421
+ 106
422
+ 00:07:27,000 --> 00:07:28,000
423
+ The danger is of them.
424
+
425
+ 107
426
+ 00:07:28,000 --> 00:07:32,000
427
+ I also want to share different thoughts on practice.
428
+
429
+ 108
430
+ 00:07:33,000 --> 00:07:38,000
431
+ Once he reviewed the facts on this side, feel free to proceed with the next level.
432
+
433
+ 109
434
+ 00:07:40,000 --> 00:07:41,000
435
+ Do you still functions?
436
+
437
+ 110
438
+ 00:07:42,000 --> 00:07:48,000
439
+ Do you still includes a number of standard functions, most of which are common street manipulation
440
+
441
+ 111
442
+ 00:07:48,000 --> 00:07:49,000
443
+ functions?
444
+
445
+ 112
446
+ 00:07:49,000 --> 00:07:55,000
447
+ As you can see on this slide, the name of functions in most cases are similar to the masses from string
448
+
449
+ 113
450
+ 00:07:55,000 --> 00:07:56,000
451
+ class.
452
+
453
+ 114
454
+ 00:07:57,000 --> 00:08:03,000
455
+ While these functions definitely useful, I wouldn't say that all of them are used as an escort.
456
+
457
+ 115
458
+ 00:08:03,000 --> 00:08:04,000
459
+ For example.
460
+
461
+ 116
462
+ 00:08:05,000 --> 00:08:11,000
463
+ Let's look at this slide in a similar way as the slides or as of course we did.
464
+
465
+ 117
466
+ 00:08:12,000 --> 00:08:14,000
467
+ You shouldn't even remember all of them by heart.
468
+
469
+ 118
470
+ 00:08:15,000 --> 00:08:18,000
471
+ You should just be aware about the presence of these stats.
472
+
473
+ 119
474
+ 00:08:19,000 --> 00:08:23,000
475
+ And once you've finished your meeting, proceed with the next slide.
476
+
477
+ 120
478
+ 00:08:24,000 --> 00:08:33,000
479
+ Sequel Tax Due Sales Sequel Tech Library provides stats for interacting with relational databases about
480
+
481
+ 121
482
+ 00:08:33,000 --> 00:08:40,000
483
+ this group of stacks I want to seize the next thing this great is a juice tale provides us with stacks
484
+
485
+ 122
486
+ 00:08:40,000 --> 00:08:47,000
487
+ to work with the database from the juice page, but I hope you are smart enough to never use these stacks.
488
+
489
+ 123
490
+ 00:08:48,000 --> 00:08:48,000
491
+ Why?
492
+
493
+ 124
494
+ 00:08:49,000 --> 00:08:53,000
495
+ I would say that interaction was a persistence layer from the presentation.
496
+
497
+ 125
498
+ 00:08:53,000 --> 00:08:55,000
499
+ There is not.
500
+
501
+ 126
502
+ 00:08:55,000 --> 00:08:56,000
503
+ Consider that this is best practice.
504
+
505
+ 127
506
+ 00:08:57,000 --> 00:09:03,000
507
+ I can't imagine a case where the logic of the interaction was that database was a presentation.
508
+
509
+ 128
510
+ 00:09:03,000 --> 00:09:09,000
511
+ There definitely learned architecture is not the one portal in the world.
512
+
513
+ 129
514
+ 00:09:10,000 --> 00:09:16,000
515
+ But I would say that basic principles in reference architecture make sense.
516
+
517
+ 130
518
+ 00:09:17,000 --> 00:09:23,000
519
+ So with respect to the separation of concerns between different layers of our application, I don't
520
+
521
+ 131
522
+ 00:09:23,000 --> 00:09:26,000
523
+ recommend it to use SQL do so.
524
+
525
+ 132
526
+ 00:09:26,000 --> 00:09:32,000
527
+ Thanks, but definitely let's none of these what options that we have with SQL tax.
528
+
529
+ 133
530
+ 00:09:33,000 --> 00:09:37,000
531
+ Once you look through the slide, feel free to proceed with the next one.
532
+
533
+ 134
534
+ 00:09:38,000 --> 00:09:46,000
535
+ ExxonMobil tax due is still ExxonMobil tax provides a speed centric way of creating and manipulating
536
+
537
+ 135
538
+ 00:09:46,000 --> 00:09:47,000
539
+ the excellent documents.
540
+
541
+ 136
542
+ 00:09:48,000 --> 00:09:54,000
543
+ G Cell Excellent Title Library provides convenient ways for interaction with XML data.
544
+
545
+ 137
546
+ 00:09:55,000 --> 00:09:56,000
547
+ Who is engaging speech?
548
+
549
+ 138
550
+ 00:09:57,000 --> 00:10:03,000
551
+ Deduce XML to collaborate has custom tax for interacting with XML data.
552
+
553
+ 139
554
+ 00:10:04,000 --> 00:10:13,000
555
+ This includes courses that Excel transforms XML data in the flow control based on the X plus expressions.
556
+
557
+ 140
558
+ 00:10:14,000 --> 00:10:21,000
559
+ And again, definitely this is a great feature of the still and it is great to have opportunity to work
560
+
561
+ 141
562
+ 00:10:21,000 --> 00:10:26,000
563
+ with Exmouth on the GSP, but probably that's not how you will work was excellent.
564
+
565
+ 142
566
+ 00:10:26,000 --> 00:10:32,000
567
+ Most of the times it is very unlikely that you work with X amount of people.
568
+
569
+ 143
570
+ 00:10:32,000 --> 00:10:37,000
571
+ Very often that's all groups of G sales tax.
572
+
573
+ 144
574
+ 00:10:38,000 --> 00:10:40,000
575
+ So we learned enough.
576
+
577
+ 145
578
+ 00:10:40,000 --> 00:10:40,000
579
+ Syria about you.
580
+
581
+ 146
582
+ 00:10:40,000 --> 00:10:41,000
583
+ So thanks.
584
+
585
+ 147
586
+ 00:10:42,000 --> 00:10:47,000
587
+ It is time to have a live demo to see how we can use this to tax and practice.
588
+
589
+ 148
590
+ 00:10:48,000 --> 00:10:52,000
591
+ We've used all groups of G still tats and there's a slide.
592
+
593
+ 149
594
+ 00:10:52,000 --> 00:10:56,000
595
+ I tried to summarize all possible sales tax.
596
+
597
+ 150
598
+ 00:10:57,000 --> 00:11:04,000
599
+ I believe that there is no sense to them on each possible tack as I have them because of a few reasons.
600
+
601
+ 151
602
+ 00:11:05,000 --> 00:11:09,000
603
+ First of all, not all tax I use very often.
604
+
605
+ 152
606
+ 00:11:09,000 --> 00:11:14,000
607
+ Most likely that there are a lot of taxes that you will never use in production.
608
+
609
+ 153
610
+ 00:11:15,000 --> 00:11:22,000
611
+ And the second reason is that from technical side set up and using of different group of tax is similar.
612
+
613
+ 154
614
+ 00:11:23,000 --> 00:11:30,000
615
+ So once we learned how to set up for tax and work with school tax, this become clear for you how to
616
+
617
+ 155
618
+ 00:11:30,000 --> 00:11:32,000
619
+ use OSM tax.
620
+
621
+ 156
622
+ 00:11:33,000 --> 00:11:38,000
623
+ That's why in today's demo we're going to use the most popular use cases of using GST sales.
624
+
625
+ 157
626
+ 00:11:38,000 --> 00:11:39,000
627
+ That's.
628
+
629
+ 158
630
+ 00:11:40,000 --> 00:11:45,000
631
+ Before I start using Gestalt, we have to configure it in our application.
632
+
633
+ 159
634
+ 00:11:46,000 --> 00:11:53,000
635
+ This is a separate library and if you want to use, you still need to include it into our boot.
636
+
637
+ 160
638
+ 00:11:54,000 --> 00:11:56,000
639
+ I already did this before the lesson.
640
+
641
+ 161
642
+ 00:11:57,000 --> 00:12:00,000
643
+ During the course we did the thousands of times already.
644
+
645
+ 162
646
+ 00:12:01,000 --> 00:12:04,000
647
+ And you as a whole course java from zero to first job.
648
+
649
+ 163
650
+ 00:12:04,000 --> 00:12:08,000
651
+ I showed you how to find dependencies of maven repository.
652
+
653
+ 164
654
+ 00:12:09,000 --> 00:12:19,000
655
+ We can also use Google search to find the dependencies that we need, so we need that dependency attention
656
+
657
+ 165
658
+ 00:12:19,000 --> 00:12:20,000
659
+ in this tutorial.
660
+
661
+ 166
662
+ 00:12:20,000 --> 00:12:26,000
663
+ I use Jakarta implementation of GCM because I use Tomcat server version tab.
664
+
665
+ 167
666
+ 00:12:27,000 --> 00:12:34,000
667
+ In case you use Tomcat version low in tab, you need to use a nozzle DSL implementation here.
668
+
669
+ 168
670
+ 00:12:35,000 --> 00:12:40,000
671
+ Once we configure with our dependency, let's look at the source code of our examples.
672
+
673
+ 169
674
+ 00:12:41,000 --> 00:12:45,000
675
+ Before this lesson, I prepared few examples to review with you.
676
+
677
+ 170
678
+ 00:12:45,000 --> 00:12:52,000
679
+ First of all, this is just a demo, so let's look at the similar lesson.
680
+
681
+ 171
682
+ 00:12:52,000 --> 00:13:00,000
683
+ I extract all users from the database, set users as an attribute in my request object, and forwards
684
+
685
+ 172
686
+ 00:13:00,000 --> 00:13:02,000
687
+ the request to the GCP.
688
+
689
+ 173
690
+ 00:13:03,000 --> 00:13:05,000
691
+ I need these users to them.
692
+
693
+ 174
694
+ 00:13:05,000 --> 00:13:09,000
695
+ A similar examples of I'll read them to you in previous lesson request.
696
+
697
+ 175
698
+ 00:13:10,000 --> 00:13:16,000
699
+ But in this lesson, I'm going to show you an elegant solution with the help of GST, so that since
700
+
701
+ 176
702
+ 00:13:16,000 --> 00:13:21,000
703
+ we're getting demos so that now let's open demo files of contents.
704
+
705
+ 177
706
+ 00:13:21,000 --> 00:13:22,000
707
+ Just how.
708
+
709
+ 178
710
+ 00:13:23,000 --> 00:13:26,000
711
+ I also filed was named Damages.
712
+
713
+ 179
714
+ 00:13:27,000 --> 00:13:31,000
715
+ Today, we're going to go over examples from this file again.
716
+
717
+ 180
718
+ 00:13:31,000 --> 00:13:37,000
719
+ So first things that we need to do is to include still library in our speech.
720
+
721
+ 181
722
+ 00:13:37,000 --> 00:13:38,000
723
+ How to do this?
724
+
725
+ 182
726
+ 00:13:39,000 --> 00:13:47,000
727
+ With this tag directive, we use prefix attribute in order to censor graphics that will be used inside
728
+
729
+ 183
730
+ 00:13:47,000 --> 00:13:48,000
731
+ the P file.
732
+
733
+ 184
734
+ 00:13:49,000 --> 00:13:56,000
735
+ It can be different, but there is some conventional naming for prefixes and just usually for course
736
+
737
+ 185
738
+ 00:13:56,000 --> 00:13:57,000
739
+ packs.
740
+
741
+ 186
742
+ 00:13:57,000 --> 00:14:07,000
743
+ We use C for for Martin F T for function percent for sequels we use sequel graphics and for x-mode that
744
+
745
+ 187
746
+ 00:14:07,000 --> 00:14:13,000
747
+ we use X preference on the other right is that assumption would have to be equal.
748
+
749
+ 188
750
+ 00:14:13,000 --> 00:14:23,000
751
+ Exactly these values why it is so important to each group of g still tax has its own tax library descriptors.
752
+
753
+ 189
754
+ 00:14:24,000 --> 00:14:30,000
755
+ That clever descriptor contains definition of all tax inclusions, the reference to the Java classes
756
+
757
+ 190
758
+ 00:14:31,000 --> 00:14:35,000
759
+ that describes the logic of each stack attack library.
760
+
761
+ 191
762
+ 00:14:35,000 --> 00:14:43,000
763
+ This is an excellent document that contains information on the library as a whole and about each stack
764
+
765
+ 192
766
+ 00:14:43,000 --> 00:14:44,000
767
+ contained in the library.
768
+
769
+ 193
770
+ 00:14:45,000 --> 00:14:48,000
771
+ Another to includes that you still stack of specific group.
772
+
773
+ 194
774
+ 00:14:49,000 --> 00:14:51,000
775
+ You have to specify you array of zip.
776
+
777
+ 195
778
+ 00:14:51,000 --> 00:14:54,000
779
+ Exactly just to the library.
780
+
781
+ 196
782
+ 00:14:55,000 --> 00:15:00,000
783
+ If you're interested how talk library looks like, we can check the sources.
784
+
785
+ 197
786
+ 00:15:01,000 --> 00:15:07,000
787
+ Taken into account Maven then loaded all required dependencies we can find in our dependencies.
788
+
789
+ 198
790
+ 00:15:08,000 --> 00:15:10,000
791
+ Just click on the maven dependencies.
792
+
793
+ 199
794
+ 00:15:11,000 --> 00:15:16,000
795
+ After that, click on Jakarta so that GSP is still here.
796
+
797
+ 200
798
+ 00:15:17,000 --> 00:15:25,000
799
+ Expand matter in the recovery and insights method and you will be able to find a lot of different library
800
+
801
+ 201
802
+ 00:15:25,000 --> 00:15:26,000
803
+ descriptors.
804
+
805
+ 202
806
+ 00:15:26,000 --> 00:15:34,000
807
+ For example, let's select C to the Z, the stack library descriptor for our core facts.
808
+
809
+ 203
810
+ 00:15:34,000 --> 00:15:43,000
811
+ And here you can find a uniform or a source identifier that we used in our file is colloquial now and
812
+
813
+ 204
814
+ 00:15:43,000 --> 00:15:47,000
815
+ this the file contains a description of all cortex.
816
+
817
+ 205
818
+ 00:15:48,000 --> 00:15:50,000
819
+ For example, here is a catch stack.
820
+
821
+ 206
822
+ 00:15:51,000 --> 00:15:52,000
823
+ Here is descriptions.
824
+
825
+ 207
826
+ 00:15:52,000 --> 00:15:55,000
827
+ It contains description of its main goal and purpose.
828
+
829
+ 208
830
+ 00:15:56,000 --> 00:16:01,000
831
+ Here's the full name of that class and description of its attributes.
832
+
833
+ 209
834
+ 00:16:02,000 --> 00:16:05,000
835
+ The next stack issues and so on.
836
+
837
+ 210
838
+ 00:16:06,000 --> 00:16:13,000
839
+ If you have time, I would recommend it to looks with you view files of the GST tax we review because
840
+
841
+ 211
842
+ 00:16:13,000 --> 00:16:16,000
843
+ you will be able to find a lot of interesting descriptions.
844
+
845
+ 212
846
+ 00:16:16,000 --> 00:16:18,000
847
+ And then just how bad?
848
+
849
+ 213
850
+ 00:16:19,000 --> 00:16:23,000
851
+ I will not show you positively files, but all of them are here.
852
+
853
+ 214
854
+ 00:16:24,000 --> 00:16:30,000
855
+ You can also see some key sequel, excellent function descriptors.
856
+
857
+ 215
858
+ 00:16:30,000 --> 00:16:34,000
859
+ And now let's get back to the GSP files to review examples.
860
+
68 - JSP/003 JSTL-Dependency-to-add-in-Maven.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/2.0.0
68 - JSP/003 Source-code-of-JSP-file-with-the-JSTL-code-examples.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/webapp/jstl-demo.jsp
68 - JSP/003 Source-code-of-Servlet-for-JSTL-Examples.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/blob/master/online-store.web/src/main/java/com/itbulls/learnit/onlinestore/web/servlets/JstlDemoServlet.java
68 - JSP/004 JSTL Part 2_en.srt ADDED
@@ -0,0 +1,1004 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:02,000 --> 00:00:09,000
3
+ So once we configure so that's to be used on this speech, we're going to proceed with using them.
4
+
5
+ 2
6
+ 00:00:10,000 --> 00:00:14,000
7
+ Let me start to review some of the most popular core facts.
8
+
9
+ 3
10
+ 00:00:15,000 --> 00:00:22,000
11
+ As I said, probably this is the most popular group of facts is that you are going to use more often
12
+
13
+ 4
14
+ 00:00:22,000 --> 00:00:23,000
15
+ than others attacks.
16
+
17
+ 5
18
+ 00:00:24,000 --> 00:00:26,000
19
+ Most likely this is true.
20
+
21
+ 6
22
+ 00:00:27,000 --> 00:00:34,000
23
+ The first thing that I am going to demonstrate is a set that yeah, attention to the syntax.
24
+
25
+ 7
26
+ 00:00:34,000 --> 00:00:43,000
27
+ We use graphics first and after that we use that name when we use attack from Attack Library.
28
+
29
+ 8
30
+ 00:00:43,000 --> 00:00:47,000
31
+ Then use graphics defined for attacks.
32
+
33
+ 9
34
+ 00:00:47,000 --> 00:00:57,000
35
+ In our case, this is C similar to all other attacks that should be closed set that allows us to set
36
+
37
+ 10
38
+ 00:00:57,000 --> 00:00:59,000
39
+ variable within the defined scope.
40
+
41
+ 11
42
+ 00:01:00,000 --> 00:01:08,000
43
+ Scope can be a a page or request or session or application depending on the scope defined here.
44
+
45
+ 12
46
+ 00:01:08,000 --> 00:01:13,000
47
+ Potentially, you can access the variable from different places in your program.
48
+
49
+ 13
50
+ 00:01:14,000 --> 00:01:17,000
51
+ For the sake of a demo, let's keep request scope.
52
+
53
+ 14
54
+ 00:01:18,000 --> 00:01:23,000
55
+ The value of my test variable is equal to 100 ZC.
56
+
57
+ 15
58
+ 00:01:24,000 --> 00:01:32,000
59
+ The next popular callback is if that it is and another of the statements in Java.
60
+
61
+ 16
62
+ 00:01:32,000 --> 00:01:41,000
63
+ So instead of writing script, that was if we can just use the stack, if stack has test attribute,
64
+
65
+ 17
66
+ 00:01:41,000 --> 00:01:44,000
67
+ it basically evaluates some test condition.
68
+
69
+ 18
70
+ 00:01:45,000 --> 00:01:47,000
71
+ We can use expression language to evaluate condition.
72
+
73
+ 19
74
+ 00:01:48,000 --> 00:01:50,000
75
+ Well, you can see grid test the variable.
76
+
77
+ 20
78
+ 00:01:51,000 --> 00:01:59,000
79
+ Let's make sure that our test variable is greater than five in case results of expression will be true.
80
+
81
+ 21
82
+ 00:01:59,000 --> 00:02:01,000
83
+ Will enter this graph.
84
+
85
+ 22
86
+ 00:02:02,000 --> 00:02:07,000
87
+ Let me open the browser to make sure that this statement works as expected.
88
+
89
+ 23
90
+ 00:02:08,000 --> 00:02:15,000
91
+ I send a request to my SO that I show you and you can see that there is a paragraph printed.
92
+
93
+ 24
94
+ 00:02:15,000 --> 00:02:21,000
95
+ This confirms that our expression or account drew and we created this paragraph.
96
+
97
+ 25
98
+ 00:02:22,000 --> 00:02:29,000
99
+ Let's get back to tweets and reviews for an example there remember example was users and scriptures
100
+
101
+ 26
102
+ 00:02:29,000 --> 00:02:30,000
103
+ from previous lesson.
104
+
105
+ 27
106
+ 00:02:31,000 --> 00:02:35,000
107
+ In short, we need to please a table with all our users.
108
+
109
+ 28
110
+ 00:02:36,000 --> 00:02:40,000
111
+ I'm going to show how reason solves this task with the help of how.
112
+
113
+ 29
114
+ 00:02:41,000 --> 00:02:52,000
115
+ First of all we check was a user's attendance present is a request so we can use that for this in case
116
+
117
+ 30
118
+ 00:02:52,000 --> 00:03:02,000
119
+ users owns a page with red table tag and after that we use it for each tag that there is a syntax for
120
+
121
+ 31
122
+ 00:03:02,000 --> 00:03:06,000
123
+ each stack has such attributes, items and var.
124
+
125
+ 32
126
+ 00:03:07,000 --> 00:03:10,000
127
+ We have to pass collection to the items.
128
+
129
+ 33
130
+ 00:03:10,000 --> 00:03:13,000
131
+ We have to give a variable to save or to do.
132
+
133
+ 34
134
+ 00:03:14,000 --> 00:03:23,000
135
+ We'll use variable name on each iteration to refer to each element in our collection using expression,
136
+
137
+ 35
138
+ 00:03:23,000 --> 00:03:26,000
139
+ which we extract the user properties that we need.
140
+
141
+ 36
142
+ 00:03:27,000 --> 00:03:28,000
143
+ And that's it.
144
+
145
+ 37
146
+ 00:03:29,000 --> 00:03:34,000
147
+ This solution is more readable and reliable than the solution or the script.
148
+
149
+ 38
150
+ 00:03:34,000 --> 00:03:36,000
151
+ That's if we want to compare.
152
+
153
+ 39
154
+ 00:03:37,000 --> 00:03:41,000
155
+ Then I can open example from previous lessons and use demo file.
156
+
157
+ 40
158
+ 00:03:42,000 --> 00:03:48,000
159
+ Do remember how attentive we're about to put all necessary braces and sinks like this.
160
+
161
+ 41
162
+ 00:03:49,000 --> 00:03:54,000
163
+ I believe you can understand why you still solution is better for solving this stuff.
164
+
165
+ 42
166
+ 00:03:55,000 --> 00:03:56,000
167
+ It is more readable.
168
+
169
+ 43
170
+ 00:03:56,000 --> 00:04:00,000
171
+ It works as expected and it is already tested.
172
+
173
+ 44
174
+ 00:04:00,000 --> 00:04:04,000
175
+ It is reliable, it is shorter and loops better.
176
+
177
+ 45
178
+ 00:04:05,000 --> 00:04:06,000
179
+ Would you agree with me?
180
+
181
+ 46
182
+ 00:04:06,000 --> 00:04:08,000
183
+ Let me show is this table is a browser.
184
+
185
+ 47
186
+ 00:04:09,000 --> 00:04:17,000
187
+ So as you can see, the output table looks similar to the table from previous lesson that proves that
188
+
189
+ 48
190
+ 00:04:17,000 --> 00:04:20,000
191
+ you still tax work as expected.
192
+
193
+ 49
194
+ 00:04:21,000 --> 00:04:23,000
195
+ Let's continue and you're using that stack.
196
+
197
+ 50
198
+ 00:04:24,000 --> 00:04:31,000
199
+ Remember that as the beginning of the lesson we declared a variable we're set that let's now we're moving
200
+
201
+ 51
202
+ 00:04:32,000 --> 00:04:40,000
203
+ for such purposes we have removed them and to prove that the variable doesn't exist anymore, we created
204
+
205
+ 52
206
+ 00:04:40,000 --> 00:04:41,000
207
+ the response button.
208
+
209
+ 53
210
+ 00:04:42,000 --> 00:04:46,000
211
+ Considering that the variable was removed, we were receiving some care.
212
+
213
+ 54
214
+ 00:04:47,000 --> 00:04:52,000
215
+ By the way, here is in you task to discuss out time.
216
+
217
+ 55
218
+ 00:04:52,000 --> 00:04:54,000
219
+ It is also relative of popular.
220
+
221
+ 56
222
+ 00:04:55,000 --> 00:05:00,000
223
+ For example, we can consider the default value to display in case of values.
224
+
225
+ 57
226
+ 00:05:00,000 --> 00:05:04,000
227
+ Its value will be empty and we can escape tax infinite.
228
+
229
+ 58
230
+ 00:05:04,000 --> 00:05:11,000
231
+ Well now let's use three examples was out there and understand what will be present on the page.
232
+
233
+ 59
234
+ 00:05:12,000 --> 00:05:21,000
235
+ In the first case, we operate on the tax and will ignore a no tax because escape maximum attitude is
236
+
237
+ 60
238
+ 00:05:21,000 --> 00:05:22,000
239
+ set to false.
240
+
241
+ 61
242
+ 00:05:23,000 --> 00:05:30,000
243
+ In the second scenario, we would create all content of value add to including impact.
244
+
245
+ 62
246
+ 00:05:31,000 --> 00:05:34,000
247
+ Because Escape X-Mode is set to tour.
248
+
249
+ 63
250
+ 00:05:34,000 --> 00:05:40,000
251
+ And in this case, we're going to print a default value because value will be invalidated.
252
+
253
+ 64
254
+ 00:05:40,000 --> 00:05:44,000
255
+ This snow and in this case will prevent default value.
256
+
257
+ 65
258
+ 00:05:45,000 --> 00:05:52,000
259
+ One more thing that I didn't share with you before that Daniels at all tracks are closed.
260
+
261
+ 66
262
+ 00:05:52,000 --> 00:05:59,000
263
+ You can also close that without additional act in case it has all the attributes.
264
+
265
+ 67
266
+ 00:05:59,000 --> 00:06:03,000
267
+ You can just use at the end of the attack to close it.
268
+
269
+ 68
270
+ 00:06:03,000 --> 00:06:11,000
271
+ Instead of having separate closing time basically out, that is closed in the search example, the same
272
+
273
+ 69
274
+ 00:06:11,000 --> 00:06:13,000
275
+ as in the first and second.
276
+
277
+ 70
278
+ 00:06:14,000 --> 00:06:20,000
279
+ Let's open Google Chrome to check out my predictions about the results of evaluation are correct.
280
+
281
+ 71
282
+ 00:06:21,000 --> 00:06:28,000
283
+ And as we have just discussed in the first example, we can see that all value is evaluated and printed
284
+
285
+ 72
286
+ 00:06:28,000 --> 00:06:29,000
287
+ as a response body.
288
+
289
+ 73
290
+ 00:06:30,000 --> 00:06:38,000
291
+ In the second example, we printed average besides attack and in the search example we printed on the
292
+
293
+ 74
294
+ 00:06:38,000 --> 00:06:39,000
295
+ default value.
296
+
297
+ 75
298
+ 00:06:39,000 --> 00:06:43,000
299
+ Let's navigate back to eclipse using that example.
300
+
301
+ 76
302
+ 00:06:44,000 --> 00:06:46,000
303
+ The next example is Catch Nemo.
304
+
305
+ 77
306
+ 00:06:47,000 --> 00:06:49,000
307
+ We can catch exceptions.
308
+
309
+ 78
310
+ 00:06:49,000 --> 00:06:56,000
311
+ I would say that this is very popular tack, but just in case you decided to use class and you need
312
+
313
+ 79
314
+ 00:06:56,000 --> 00:07:01,000
315
+ to build error handling around script that you can use to catch that.
316
+
317
+ 80
318
+ 00:07:02,000 --> 00:07:07,000
319
+ In this case, we expect to get to runtime exception because of division by zero.
320
+
321
+ 81
322
+ 00:07:08,000 --> 00:07:16,000
323
+ We surround lack of growth potentially can throw an exception with catch tech and give a name to Venmo.
324
+
325
+ 82
326
+ 00:07:16,000 --> 00:07:22,000
327
+ With the help of this wearable, we can get access to the exception object in case exception is not
328
+
329
+ 83
330
+ 00:07:22,000 --> 00:07:23,000
331
+ empty.
332
+
333
+ 84
334
+ 00:07:23,000 --> 00:07:27,000
335
+ We print exception and exception message to the response buddy.
336
+
337
+ 85
338
+ 00:07:28,000 --> 00:07:33,000
339
+ Let's look in the browser how we handle the exception on here.
340
+
341
+ 86
342
+ 00:07:33,000 --> 00:07:40,000
343
+ You can see that our recent exception was cough and we bring that exception details and exception message
344
+
345
+ 87
346
+ 00:07:40,000 --> 00:07:41,000
347
+ to console.
348
+
349
+ 88
350
+ 00:07:41,000 --> 00:07:42,000
351
+ That's great.
352
+
353
+ 89
354
+ 00:07:43,000 --> 00:07:47,000
355
+ Now you know how to catch exceptions with the help of the still.
356
+
357
+ 90
358
+ 00:07:48,000 --> 00:07:50,000
359
+ Let's review a massive popular path.
360
+
361
+ 91
362
+ 00:07:50,000 --> 00:07:53,000
363
+ I'm talking about Chu Stack now.
364
+
365
+ 92
366
+ 00:07:53,000 --> 00:07:57,000
367
+ This stack is analogue to switch statement in Java.
368
+
369
+ 93
370
+ 00:07:57,000 --> 00:08:02,000
371
+ We can have different cases in case conditions are met.
372
+
373
+ 94
374
+ 00:08:02,000 --> 00:08:04,000
375
+ We enter said law.
376
+
377
+ 95
378
+ 00:08:04,000 --> 00:08:07,000
379
+ That's why insights choose that.
380
+
381
+ 96
382
+ 00:08:07,000 --> 00:08:10,000
383
+ We have one that evaluates some condition.
384
+
385
+ 97
386
+ 00:08:11,000 --> 00:08:19,000
387
+ I set value to the salary variable and after that I describe conditions inside, choose their in case
388
+
389
+ 98
390
+ 00:08:19,000 --> 00:08:23,000
391
+ salary is less than or equal to 1000.
392
+
393
+ 99
394
+ 00:08:23,000 --> 00:08:25,000
395
+ Zeller Parenthesis.
396
+
397
+ 100
398
+ 00:08:25,000 --> 00:08:35,000
399
+ Thanks in case salary is greater than 1000 and less than 5000, then we print this tax and in all other
400
+
401
+ 101
402
+ 00:08:35,000 --> 00:08:37,000
403
+ cases we print this.
404
+
405
+ 102
406
+ 00:08:38,000 --> 00:08:43,000
407
+ Otherwise is similar to the default law in speech statement in Java.
408
+
409
+ 103
410
+ 00:08:44,000 --> 00:08:48,000
411
+ In case these are conditions that we enter.
412
+
413
+ 104
414
+ 00:08:48,000 --> 00:08:49,000
415
+ Otherwise the.
416
+
417
+ 105
418
+ 00:08:50,000 --> 00:08:51,000
419
+ Let's look in the browser.
420
+
421
+ 106
422
+ 00:08:52,000 --> 00:08:53,000
423
+ How is that possible?
424
+
425
+ 107
426
+ 00:08:54,000 --> 00:08:57,000
427
+ And in the browser we see expect this result.
428
+
429
+ 108
430
+ 00:08:58,000 --> 00:08:59,000
431
+ That's great.
432
+
433
+ 109
434
+ 00:09:00,000 --> 00:09:03,000
435
+ Let's get back to the eclipse to review the next example.
436
+
437
+ 110
438
+ 00:09:04,000 --> 00:09:08,000
439
+ Let's now review example of Euro on the import tax.
440
+
441
+ 111
442
+ 00:09:09,000 --> 00:09:11,000
443
+ You wrote that is very useful.
444
+
445
+ 112
446
+ 00:09:11,000 --> 00:09:12,000
447
+ What do you need to create?
448
+
449
+ 113
450
+ 00:09:12,000 --> 00:09:18,000
451
+ Your was different attributes and saw it as a variable in order to reuse multiple times.
452
+
453
+ 114
454
+ 00:09:19,000 --> 00:09:24,000
455
+ We can also store the euro into the variable within the consumers scope.
456
+
457
+ 115
458
+ 00:09:25,000 --> 00:09:30,000
459
+ Adding of multiple parameters can become an easy and reasonable sync.
460
+
461
+ 116
462
+ 00:09:30,000 --> 00:09:35,000
463
+ Because of the forma, we use parameter to add parameter to zero.
464
+
465
+ 117
466
+ 00:09:36,000 --> 00:09:41,000
467
+ That's how we build URLs that we can use in other places within the session scope.
468
+
469
+ 118
470
+ 00:09:42,000 --> 00:09:45,000
471
+ The next stack here is important.
472
+
473
+ 119
474
+ 00:09:46,000 --> 00:09:52,000
475
+ In this case, it retrieves an absolute relative and exposes its contents to the page.
476
+
477
+ 120
478
+ 00:09:53,000 --> 00:09:59,000
479
+ You can read the communication for this stack on the slide that I have already presented in the beginning
480
+
481
+ 121
482
+ 00:09:59,000 --> 00:10:06,000
483
+ of this lesson, and you will find that content also may be extracted into the three variable to.
484
+
485
+ 122
486
+ 00:10:07,000 --> 00:10:08,000
487
+ In this case.
488
+
489
+ 123
490
+ 00:10:08,000 --> 00:10:14,000
491
+ We want to import examples from previous lesson GCP include demo contains on the one line.
492
+
493
+ 124
494
+ 00:10:15,000 --> 00:10:17,000
495
+ Let me open this file to show it to you.
496
+
497
+ 125
498
+ 00:10:18,000 --> 00:10:21,000
499
+ As you can see on the one line was held in three elements.
500
+
501
+ 126
502
+ 00:10:22,000 --> 00:10:29,000
503
+ Let's navigate the browser to see how our final euro looks like and what was included.
504
+
505
+ 127
506
+ 00:10:30,000 --> 00:10:38,000
507
+ As you can see here is our single run in anticipation and those so you can see final look of the euros
508
+
509
+ 128
510
+ 00:10:38,000 --> 00:10:41,000
511
+ that we created was all its parameters.
512
+
513
+ 129
514
+ 00:10:42,000 --> 00:10:46,000
515
+ Probably these are main tracks from core libraries that I wanted to show you.
516
+
517
+ 130
518
+ 00:10:47,000 --> 00:10:53,000
519
+ Let's get some examples of for Martin Tax for the sake of the demo.
520
+
521
+ 131
522
+ 00:10:53,000 --> 00:11:01,000
523
+ I said some balance variables here was helpful for mining tax reform on this value in different ways.
524
+
525
+ 132
526
+ 00:11:01,000 --> 00:11:05,000
527
+ Is the first examples here related to the form of number.
528
+
529
+ 133
530
+ 00:11:06,000 --> 00:11:11,000
531
+ As you can see, this stack may have different attributes that will impact our formatting.
532
+
533
+ 134
534
+ 00:11:12,000 --> 00:11:16,000
535
+ For example, the maximum integer digits.
536
+
537
+ 135
538
+ 00:11:16,000 --> 00:11:18,000
539
+ Maximum fraction digits.
540
+
541
+ 136
542
+ 00:11:18,000 --> 00:11:21,000
543
+ You can use part analysis.
544
+
545
+ 137
546
+ 00:11:21,000 --> 00:11:25,000
547
+ You can find the source quotes of this example in attachments to a media.
548
+
549
+ 138
550
+ 00:11:26,000 --> 00:11:32,000
551
+ I encourage you to take your time after watching this video and look through these examples on your
552
+
553
+ 139
554
+ 00:11:32,000 --> 00:11:33,000
555
+ local computer.
556
+
557
+ 140
558
+ 00:11:34,000 --> 00:11:36,000
559
+ Likewise, change.
560
+
561
+ 141
562
+ 00:11:36,000 --> 00:11:37,000
563
+ Attribute Values.
564
+
565
+ 142
566
+ 00:11:37,000 --> 00:11:41,000
567
+ Explore how the for market value is changed.
568
+
569
+ 143
570
+ 00:11:41,000 --> 00:11:44,000
571
+ This will help you to understand topic better.
572
+
573
+ 144
574
+ 00:11:45,000 --> 00:11:51,000
575
+ Another important and useful taxon for Montana Library is set locale.
576
+
577
+ 145
578
+ 00:11:52,000 --> 00:11:55,000
579
+ We can change locale from the presentation there.
580
+
581
+ 146
582
+ 00:11:55,000 --> 00:12:03,000
583
+ This might be needed to consider specifics of region during the formatting if you don't know what localization
584
+
585
+ 147
586
+ 00:12:03,000 --> 00:12:06,000
587
+ and internationalization is.
588
+
589
+ 148
590
+ 00:12:06,000 --> 00:12:13,000
591
+ I have a long and very comprehensive lesson about localization and internationalization in my course,
592
+
593
+ 149
594
+ 00:12:13,000 --> 00:12:20,000
595
+ go from zero to first job watching and asking in case you have any questions in this case will change
596
+
597
+ 150
598
+ 00:12:20,000 --> 00:12:26,000
599
+ local in order to change for mining of currency according to the U.S. standards.
600
+
601
+ 151
602
+ 00:12:26,000 --> 00:12:30,000
603
+ It will also add a local specific currency item.
604
+
605
+ 152
606
+ 00:12:30,000 --> 00:12:37,000
607
+ In this case, I can also American dollar also zeros very powerful tack to form a base.
608
+
609
+ 153
610
+ 00:12:37,000 --> 00:12:45,000
611
+ This stack also may have friends attributes like for example type because we can afford the time of
612
+
613
+ 154
614
+ 00:12:45,000 --> 00:12:46,000
615
+ both.
616
+
617
+ 155
618
+ 00:12:46,000 --> 00:12:51,000
619
+ And one other option this are date style, time, store and party.
620
+
621
+ 156
622
+ 00:12:52,000 --> 00:12:59,000
623
+ And again, I encourage you to spend some time with this example to understand that how foreign modern
624
+
625
+ 157
626
+ 00:12:59,000 --> 00:13:01,000
627
+ energy still works.
628
+
629
+ 158
630
+ 00:13:01,000 --> 00:13:02,000
631
+ This may open Brazil.
632
+
633
+ 159
634
+ 00:13:02,000 --> 00:13:08,000
635
+ Now to show you how our number and date was for model is a browser.
636
+
637
+ 160
638
+ 00:13:08,000 --> 00:13:15,000
639
+ We can see the the same number and the same date have different presentation because different rules
640
+
641
+ 161
642
+ 00:13:15,000 --> 00:13:16,000
643
+ apply to.
644
+
645
+ 162
646
+ 00:13:17,000 --> 00:13:23,000
647
+ Here you can see also example when we change local printed currency in the U.S. for money.
648
+
649
+ 163
650
+ 00:13:24,000 --> 00:13:27,000
651
+ Let's continue with the review of function.
652
+
653
+ 164
654
+ 00:13:27,000 --> 00:13:30,000
655
+ That's as we already discussed.
656
+
657
+ 165
658
+ 00:13:30,000 --> 00:13:34,000
659
+ Most of the text from function group works with means.
660
+
661
+ 166
662
+ 00:13:34,000 --> 00:13:42,000
663
+ We perform operations with strings and name of the text also may be familiar to you because in most
664
+
665
+ 167
666
+ 00:13:42,000 --> 00:13:43,000
667
+ cases yes.
668
+
669
+ 168
670
+ 00:13:43,000 --> 00:13:45,000
671
+ Similar to the masses from JDK.
672
+
673
+ 169
674
+ 00:13:46,000 --> 00:13:55,000
675
+ Choose example of contains contain signal case and squeeze index off split joint lengths.
676
+
677
+ 170
678
+ 00:13:55,000 --> 00:13:57,000
679
+ Replace stars with functions.
680
+
681
+ 171
682
+ 00:13:58,000 --> 00:14:03,000
683
+ Also pay attention to how functions are used in these examples.
684
+
685
+ 172
686
+ 00:14:03,000 --> 00:14:10,000
687
+ I use them in the expression language, thus an example of how these functions may be used.
688
+
689
+ 173
690
+ 00:14:10,000 --> 00:14:19,000
691
+ Some practice the way how they work is also similar to the way how they work in Java in case names of
692
+
693
+ 174
694
+ 00:14:19,000 --> 00:14:21,000
695
+ functions look strange to you.
696
+
697
+ 175
698
+ 00:14:21,000 --> 00:14:24,000
699
+ Feel free to check this example and just in case.
700
+
701
+ 176
702
+ 00:14:25,000 --> 00:14:26,000
703
+ Watch lesson about strings start.
704
+
705
+ 177
706
+ 00:14:27,000 --> 00:14:32,000
707
+ So my job of course in this lesson we discussed a lot of string related methods.
708
+
709
+ 178
710
+ 00:14:33,000 --> 00:14:37,000
711
+ The next group of attacks that I'd like to DMU is sequel.
712
+
713
+ 179
714
+ 00:14:38,000 --> 00:14:44,000
715
+ We already discussed that sending queries to the persistence live from the presentation that these are
716
+
717
+ 180
718
+ 00:14:45,000 --> 00:14:47,000
719
+ the best architectural decision.
720
+
721
+ 181
722
+ 00:14:47,000 --> 00:14:54,000
723
+ And I never did like this in practice, but just in case and for the purposes, I'm going to show how
724
+
725
+ 182
726
+ 00:14:54,000 --> 00:14:55,000
727
+ you can do this.
728
+
729
+ 183
730
+ 00:14:56,000 --> 00:15:00,000
731
+ First of all, we have to set data source for this.
732
+
733
+ 184
734
+ 00:15:00,000 --> 00:15:04,000
735
+ We need to pass the your real to our database username and password.
736
+
737
+ 185
738
+ 00:15:05,000 --> 00:15:13,000
739
+ Once we create a data source and give it a name, we can create and execute SQL Query Using Data Source
740
+
741
+ 186
742
+ 00:15:13,000 --> 00:15:13,000
743
+ created.
744
+
745
+ 187
746
+ 00:15:14,000 --> 00:15:16,000
747
+ Let's extract all users.
748
+
749
+ 188
750
+ 00:15:17,000 --> 00:15:22,000
751
+ The result of the query will be stored in a variable whose name are s.
752
+
753
+ 189
754
+ 00:15:23,000 --> 00:15:29,000
755
+ The object of this type has actually the rows that it contains information that we need.
756
+
757
+ 190
758
+ 00:15:29,000 --> 00:15:33,000
759
+ I create for each stack to iterate over all rows.
760
+
761
+ 191
762
+ 00:15:34,000 --> 00:15:40,000
763
+ You'll really know how to use for each stack and with the expression one which I select fields is a
764
+
765
+ 192
766
+ 00:15:40,000 --> 00:15:42,000
767
+ thing needs from the result.
768
+
769
+ 193
770
+ 00:15:42,000 --> 00:15:42,000
771
+ Set.
772
+
773
+ 194
774
+ 00:15:43,000 --> 00:15:44,000
775
+ Let me open browser.
776
+
777
+ 195
778
+ 00:15:45,000 --> 00:15:53,000
779
+ Here is our table with results extracted from the database and you can see that we get absolutely the
780
+
781
+ 196
782
+ 00:15:53,000 --> 00:15:55,000
783
+ same result as the previous example.
784
+
785
+ 197
786
+ 00:15:55,000 --> 00:16:04,000
787
+ One of the work was the user activity is a previous example we extracted from the database in our facade.
788
+
789
+ 198
790
+ 00:16:04,000 --> 00:16:12,000
791
+ And you may be wondering, Andrey, why do we need so many classes if we can send necessary request
792
+
793
+ 199
794
+ 00:16:12,000 --> 00:16:13,000
795
+ from the GSB?
796
+
797
+ 200
798
+ 00:16:14,000 --> 00:16:21,000
799
+ Because in case you change the database or table name or data structure, you would need to make changes
800
+
801
+ 201
802
+ 00:16:21,000 --> 00:16:27,000
803
+ on all pages where you use sequel tag from GSP directory.
804
+
805
+ 202
806
+ 00:16:27,000 --> 00:16:35,000
807
+ This may cause defects and it's also time consuming with the market actions that we have a view on most
808
+
809
+ 203
810
+ 00:16:35,000 --> 00:16:36,000
811
+ of this structure.
812
+
813
+ 204
814
+ 00:16:37,000 --> 00:16:42,000
815
+ You build scalable applications that is easy to scale and easy to support.
816
+
817
+ 205
818
+ 00:16:42,000 --> 00:16:50,000
819
+ You have only one place to make appropriate changes, but with sequel tax things are different.
820
+
821
+ 206
822
+ 00:16:50,000 --> 00:16:54,000
823
+ That's why using single use sales tax, I'm not recommending.
824
+
825
+ 207
826
+ 00:16:56,000 --> 00:16:58,000
827
+ And the last, but not the least examples for today.
828
+
829
+ 208
830
+ 00:16:58,000 --> 00:17:01,000
831
+ I related to the x-mode you steal tax.
832
+
833
+ 209
834
+ 00:17:02,000 --> 00:17:04,000
835
+ We're going to have a separate lesson about ExxonMobil.
836
+
837
+ 210
838
+ 00:17:05,000 --> 00:17:12,000
839
+ But I believe you already for me was of ExxonMobil files because we used it many times.
840
+
841
+ 211
842
+ 00:17:12,000 --> 00:17:18,000
843
+ For example, we use EXIM, a form of in and build to inform Excel.
844
+
845
+ 212
846
+ 00:17:18,000 --> 00:17:23,000
847
+ We also use Excel in WebEx and I'll file our deployment.
848
+
849
+ 213
850
+ 00:17:23,000 --> 00:17:31,000
851
+ This group we declare here variable employees with value of excellent simple structure with these two
852
+
853
+ 214
854
+ 00:17:31,000 --> 00:17:35,000
855
+ for employees the first names, last names, roles and salaries.
856
+
857
+ 215
858
+ 00:17:36,000 --> 00:17:40,000
859
+ By the way, theoretically we can import x amount from external file.
860
+
861
+ 216
862
+ 00:17:41,000 --> 00:17:44,000
863
+ After we have x amount we pass.
864
+
865
+ 217
866
+ 00:17:44,000 --> 00:17:46,000
867
+ It was excellent to pass.
868
+
869
+ 218
870
+ 00:17:47,000 --> 00:17:56,000
871
+ We store pass into the variable and after that with the help of weeks pass, we can print zeros from
872
+
873
+ 219
874
+ 00:17:56,000 --> 00:17:57,000
875
+ exynos that we need.
876
+
877
+ 220
878
+ 00:17:58,000 --> 00:18:01,000
879
+ If you don't know what its boss is, I was explaining.
880
+
881
+ 221
882
+ 00:18:02,000 --> 00:18:02,000
883
+ Sure.
884
+
885
+ 222
886
+ 00:18:03,000 --> 00:18:07,000
887
+ This is syntax that allows me to navigate the XML file.
888
+
889
+ 223
890
+ 00:18:08,000 --> 00:18:12,000
891
+ It's like an analogue of CSA selectors with just four.
892
+
893
+ 224
894
+ 00:18:12,000 --> 00:18:12,000
895
+ Simple.
896
+
897
+ 225
898
+ 00:18:13,000 --> 00:18:19,000
899
+ I hope that this competition will help you to understand what makes is.
900
+
901
+ 226
902
+ 00:18:19,000 --> 00:18:26,000
903
+ Anyway, we're going to have a separate lesson about eczema, where we'll will learn what exposure is.
904
+
905
+ 227
906
+ 00:18:27,000 --> 00:18:29,000
907
+ In this particular example, I want to point.
908
+
909
+ 228
910
+ 00:18:29,000 --> 00:18:33,000
911
+ First name and last name of the first employee from the eczema.
912
+
913
+ 229
914
+ 00:18:34,000 --> 00:18:35,000
915
+ First employee is Jon Snow.
916
+
917
+ 230
918
+ 00:18:36,000 --> 00:18:41,000
919
+ Let's check on the browser whether we created our plus expression correctly.
920
+
921
+ 231
922
+ 00:18:42,000 --> 00:18:45,000
923
+ And as we can see grows it reprinted.
924
+
925
+ 232
926
+ 00:18:45,000 --> 00:18:46,000
927
+ John Smith.
928
+
929
+ 233
930
+ 00:18:47,000 --> 00:18:47,000
931
+ Amazing.
932
+
933
+ 234
934
+ 00:18:48,000 --> 00:18:55,000
935
+ This is a simple example of how we can use this to flex to work with external inside our speak.
936
+
937
+ 235
938
+ 00:18:55,000 --> 00:19:02,000
939
+ And again, I never use them in production quote and I would recommend you to use more powerful tools
940
+
941
+ 236
942
+ 00:19:02,000 --> 00:19:05,000
943
+ to work with external inside Java.
944
+
945
+ 237
946
+ 00:19:05,000 --> 00:19:09,000
947
+ Cope with them to learn them to in a separate lesson.
948
+
949
+ 238
950
+ 00:19:09,000 --> 00:19:14,000
951
+ Working with external directly from the GCP is not considered as best practice.
952
+
953
+ 239
954
+ 00:19:15,000 --> 00:19:17,000
955
+ That's why I don't recommend you to do so.
956
+
957
+ 240
958
+ 00:19:18,000 --> 00:19:21,000
959
+ That's all what I wanted to share with you today.
960
+
961
+ 241
962
+ 00:19:21,000 --> 00:19:24,000
963
+ Let's recap what we have learned in this lesson.
964
+
965
+ 242
966
+ 00:19:25,000 --> 00:19:28,000
967
+ In this lesson, we learned what Jesus tale is.
968
+
969
+ 243
970
+ 00:19:28,000 --> 00:19:32,000
971
+ We discussed advantages and disadvantages of Jesus.
972
+
973
+ 244
974
+ 00:19:32,000 --> 00:19:34,000
975
+ Then also years.
976
+
977
+ 245
978
+ 00:19:34,000 --> 00:19:38,000
979
+ The lesson we configure still in our core and learned core.
980
+
981
+ 246
982
+ 00:19:38,000 --> 00:19:44,000
983
+ Thanks for modern text just so functions sequel tax and axonal tax.
984
+
985
+ 247
986
+ 00:19:45,000 --> 00:19:49,000
987
+ After this lesson, you can work with due still tax like a true professional.
988
+
989
+ 248
990
+ 00:19:50,000 --> 00:19:52,000
991
+ And I want to congratulate you on this.
992
+
993
+ 249
994
+ 00:19:53,000 --> 00:19:55,000
995
+ Thank you for your attention.
996
+
997
+ 250
998
+ 00:19:55,000 --> 00:19:57,000
999
+ Have a great day and see you.
1000
+
1001
+ 251
1002
+ 00:19:57,000 --> 00:19:58,000
1003
+ Next lesson.
1004
+
68 - JSP/005 Custom Tags in JSP_en.srt ADDED
@@ -0,0 +1,1576 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1
2
+ 00:00:06,000 --> 00:00:06,000
3
+ Hello, team.
4
+
5
+ 2
6
+ 00:00:06,000 --> 00:00:12,000
7
+ In this lesson, we're going to learn how to create custom G speed tags and use them on GSP pages.
8
+
9
+ 3
10
+ 00:00:13,000 --> 00:00:19,000
11
+ We'll start from General Ivory to understand what GSP custom talks are and why we need them.
12
+
13
+ 4
14
+ 00:00:20,000 --> 00:00:27,000
15
+ We're going to run some new definitions like that library that have the simple tag and classic tag items
16
+
17
+ 5
18
+ 00:00:27,000 --> 00:00:34,000
19
+ that will have the advantages of custom text in the lesson will review API of custom text and we're
20
+
21
+ 6
22
+ 00:00:34,000 --> 00:00:39,000
23
+ going to review main interfaces and classes from the Custom Text API.
24
+
25
+ 7
26
+ 00:00:39,000 --> 00:00:46,000
27
+ Also review attacks with different kinds of attributes, select simple fragment and dynamic attributes.
28
+
29
+ 8
30
+ 00:00:47,000 --> 00:00:53,000
31
+ And after we learn all this, we're going to have a lot of practical activities to learn how to work
32
+
33
+ 9
34
+ 00:00:53,000 --> 00:00:56,000
35
+ with stacks and create custom tax in practice.
36
+
37
+ 10
38
+ 00:00:57,000 --> 00:00:58,000
39
+ Let's start our lesson.
40
+
41
+ 11
42
+ 00:00:59,000 --> 00:01:03,000
43
+ Let's learn what the definition of the custom to the custom pack is.
44
+
45
+ 12
46
+ 00:01:03,000 --> 00:01:11,000
47
+ The user defined the GCP language element when a page containing a custom pack it is translated into.
48
+
49
+ 13
50
+ 00:01:11,000 --> 00:01:19,000
51
+ So when the attack is converted to operations on an object called Attack Handler, the web campaign
52
+
53
+ 14
54
+ 00:01:19,000 --> 00:01:24,000
55
+ that invokes those operations once a GSP page's silhouette is executed.
56
+
57
+ 15
58
+ 00:01:25,000 --> 00:01:31,000
59
+ The great thing about custom packs is that with the help of custom packs look in the woods.
60
+
61
+ 16
62
+ 00:01:31,000 --> 00:01:37,000
63
+ One of the still disadvantage we talked about in the previous lesson, we thought that still covers
64
+
65
+ 17
66
+ 00:01:37,000 --> 00:01:43,000
67
+ only basic operations and scripts that allow us to read any custom algorithm.
68
+
69
+ 18
70
+ 00:01:44,000 --> 00:01:50,000
71
+ This is no more a problem for you if you know how to work with custom text, because if you need to
72
+
73
+ 19
74
+ 00:01:50,000 --> 00:01:57,000
75
+ describe very custom algorithm and we need to use it on the GSP page, we can create custom tag and
76
+
77
+ 20
78
+ 00:01:57,000 --> 00:01:59,000
79
+ don't use script for that at all.
80
+
81
+ 21
82
+ 00:02:00,000 --> 00:02:08,000
83
+ GSP Tag Extensions lets you create new text that you can insert directly in the Java seven page.
84
+
85
+ 22
86
+ 00:02:09,000 --> 00:02:15,000
87
+ Let's know some important vocabulary that we are going to use the lesson because there are multiple
88
+
89
+ 23
90
+ 00:02:15,000 --> 00:02:18,000
91
+ new terms of words that you are going to hear today.
92
+
93
+ 24
94
+ 00:02:19,000 --> 00:02:28,000
95
+ Custom Text A distributed tag library which defines a set of related custom text and contains the objects
96
+
97
+ 25
98
+ 00:02:28,000 --> 00:02:29,000
99
+ it implements.
100
+
101
+ 26
102
+ 00:02:29,000 --> 00:02:31,000
103
+ It tops that library.
104
+
105
+ 27
106
+ 00:02:31,000 --> 00:02:34,000
107
+ It usually has a form of library descriptor.
108
+
109
+ 28
110
+ 00:02:35,000 --> 00:02:36,000
111
+ This is a file.
112
+
113
+ 29
114
+ 00:02:36,000 --> 00:02:42,000
115
+ Still, the extension is it contains all information related to custom tax.
116
+
117
+ 30
118
+ 00:02:43,000 --> 00:02:44,000
119
+ Is it objects it implements?
120
+
121
+ 31
122
+ 00:02:44,000 --> 00:02:47,000
123
+ A custom tag is called dog handler.
124
+
125
+ 32
126
+ 00:02:48,000 --> 00:02:54,000
127
+ GSP technology defines two types of dog handlers simple and class.
128
+
129
+ 33
130
+ 00:02:55,000 --> 00:03:01,000
131
+ Simple tax handlers can be used only for packs that do not use scripts and elements.
132
+
133
+ 34
134
+ 00:03:01,000 --> 00:03:07,000
135
+ The attributes, values or the tag buddy classic dog handlers must be used.
136
+
137
+ 35
138
+ 00:03:07,000 --> 00:03:09,000
139
+ This creates the elements required.
140
+
141
+ 36
142
+ 00:03:09,000 --> 00:03:17,000
143
+ The body of a single tag is processed as a GSP fragment type, which can only convey template packs
144
+
145
+ 37
146
+ 00:03:17,000 --> 00:03:19,000
147
+ and GSP action elements.
148
+
149
+ 38
150
+ 00:03:19,000 --> 00:03:24,000
151
+ So it must not contain let's postscript expressions.
152
+
153
+ 39
154
+ 00:03:25,000 --> 00:03:33,000
155
+ Whereas a classic pack doesn't have this restriction as its, but it is processed as by company type
156
+
157
+ 40
158
+ 00:03:33,000 --> 00:03:35,000
159
+ which is a subclass of GSP.
160
+
161
+ 41
162
+ 00:03:35,000 --> 00:03:35,000
163
+ Right.
164
+
165
+ 42
166
+ 00:03:36,000 --> 00:03:42,000
167
+ In a minute we're going to announce these types and I will tell you more about these types.
168
+
169
+ 43
170
+ 00:03:43,000 --> 00:03:44,000
171
+ In the last.
172
+
173
+ 44
174
+ 00:03:44,000 --> 00:03:48,000
175
+ We're going to talk mostly about simple talk handlers.
176
+
177
+ 45
178
+ 00:03:48,000 --> 00:03:56,000
179
+ We'll cover review of types that helps us create classic dog handlers, but will not use them on practice
180
+
181
+ 46
182
+ 00:03:56,000 --> 00:03:58,000
183
+ because of a few reasons.
184
+
185
+ 47
186
+ 00:03:59,000 --> 00:04:03,000
187
+ First of all, in most cases we use simple talk Henderson practice.
188
+
189
+ 48
190
+ 00:04:04,000 --> 00:04:09,000
191
+ The second reason scripting in on GSP pages is generally discouraged.
192
+
193
+ 49
194
+ 00:04:09,000 --> 00:04:14,000
195
+ That's why I don't even focus your attention on none in CS.
196
+
197
+ 50
198
+ 00:04:14,000 --> 00:04:17,000
199
+ It is not recommended to use nowadays.
200
+
201
+ 51
202
+ 00:04:17,000 --> 00:04:19,000
203
+ But you will have enough knowledge to provide.
204
+
205
+ 52
206
+ 00:04:19,000 --> 00:04:21,000
207
+ And I'll see you in the interview.
208
+
209
+ 53
210
+ 00:04:21,000 --> 00:04:26,000
211
+ So let's proceed further with discussion about simple dog handlers.
212
+
213
+ 54
214
+ 00:04:27,000 --> 00:04:34,000
215
+ You can write simple dog handlers using the GCP knowledge or using the Java language with the help of
216
+
217
+ 55
218
+ 00:04:34,000 --> 00:04:35,000
219
+ the GSP.
220
+
221
+ 56
222
+ 00:04:35,000 --> 00:04:37,000
223
+ And we can create files.
224
+
225
+ 57
226
+ 00:04:37,000 --> 00:04:38,000
227
+ Start extension.
228
+
229
+ 58
230
+ 00:04:39,000 --> 00:04:46,000
231
+ The talk file is a source file containing every usable fragment of juice because that is translated
232
+
233
+ 59
234
+ 00:04:46,000 --> 00:04:49,000
235
+ into a single handler by the container.
236
+
237
+ 60
238
+ 00:04:50,000 --> 00:04:58,000
239
+ That files can be used to develop a custom text that the presentation centric or that can take advantage
240
+
241
+ 61
242
+ 00:04:58,000 --> 00:05:04,000
243
+ of existing tax libraries or by page authors who do not know Java.
244
+
245
+ 62
246
+ 00:05:04,000 --> 00:05:12,000
247
+ For example, we can describe GSP code that we will insert into another page stacks in order to use
248
+
249
+ 63
250
+ 00:05:12,000 --> 00:05:14,000
251
+ some piece of presentation.
252
+
253
+ 64
254
+ 00:05:14,000 --> 00:05:17,000
255
+ Let's take online shop as an example.
256
+
257
+ 65
258
+ 00:05:17,000 --> 00:05:24,000
259
+ Most likely is a folder of all the pages will look the same on all pages, no matter whether you are
260
+
261
+ 66
262
+ 00:05:24,000 --> 00:05:30,000
263
+ on the product page or on the part of the details page or on the home page.
264
+
265
+ 67
266
+ 00:05:30,000 --> 00:05:33,000
267
+ The footer looks the same on all pages.
268
+
269
+ 68
270
+ 00:05:34,000 --> 00:05:41,000
271
+ That's why it makes sense to create a separate footer that is going to be reused across your app on
272
+
273
+ 69
274
+ 00:05:41,000 --> 00:05:42,000
275
+ different pages.
276
+
277
+ 70
278
+ 00:05:43,000 --> 00:05:50,000
279
+ And in case one, the flexibility of the Java programming language is needed to define that use.
280
+
281
+ 71
282
+ 00:05:50,000 --> 00:05:56,000
283
+ P technology provides a simple API for developing a talk handler in the Java programming language.
284
+
285
+ 72
286
+ 00:05:57,000 --> 00:06:00,000
287
+ Now let's review the advantages of using custom.
288
+
289
+ 73
290
+ 00:06:00,000 --> 00:06:02,000
291
+ That's the first advantage.
292
+
293
+ 74
294
+ 00:06:03,000 --> 00:06:09,000
295
+ Custom tech eliminates the need of separate that that which is considered that programming approach
296
+
297
+ 75
298
+ 00:06:09,000 --> 00:06:09,000
299
+ in use.
300
+
301
+ 76
302
+ 00:06:10,000 --> 00:06:18,000
303
+ The second advantage separation of business logic from GSP is a custom that separates the business logic
304
+
305
+ 77
306
+ 00:06:18,000 --> 00:06:23,000
307
+ from the juice page, making it easier to maintain and to support.
308
+
309
+ 78
310
+ 00:06:23,000 --> 00:06:30,000
311
+ Imagine if you have a huge GSP page and you need to scroll 10 minutes in order to find a place on the
312
+
313
+ 79
314
+ 00:06:30,000 --> 00:06:32,000
315
+ page that you need.
316
+
317
+ 80
318
+ 00:06:32,000 --> 00:06:35,000
319
+ It might be challenging or imagine huge screen.
320
+
321
+ 81
322
+ 00:06:35,000 --> 00:06:41,000
323
+ Glad that you can't carry with you this, but you can do so with the custom pack.
324
+
325
+ 82
326
+ 00:06:42,000 --> 00:06:45,000
327
+ And the disadvantage is for usability.
328
+
329
+ 83
330
+ 00:06:46,000 --> 00:06:52,000
331
+ The custom text makes a possibility to use the same business logic again and again.
332
+
333
+ 84
334
+ 00:06:53,000 --> 00:06:58,000
335
+ They haven't tax maybe customers looking at this from the column page.
336
+
337
+ 85
338
+ 00:06:59,000 --> 00:07:02,000
339
+ These are main advantages of custom tax.
340
+
341
+ 86
342
+ 00:07:03,000 --> 00:07:05,000
343
+ Let's now review custom tax API.
344
+
345
+ 87
346
+ 00:07:06,000 --> 00:07:11,000
347
+ I must admit that this is not the easiest topic and we need to know a few more types.
348
+
349
+ 88
350
+ 00:07:11,000 --> 00:07:13,000
351
+ From Jakarta Enterprise Edition.
352
+
353
+ 89
354
+ 00:07:14,000 --> 00:07:22,000
355
+ Let's move user key types that will support us in the creation of custom tax new speed interface.
356
+
357
+ 90
358
+ 00:07:22,000 --> 00:07:26,000
359
+ It serves as a base type for tax and simple tax.
360
+
361
+ 91
362
+ 00:07:27,000 --> 00:07:33,000
363
+ Simple attack interface interface for defined and single pack handlers.
364
+
365
+ 92
366
+ 00:07:33,000 --> 00:07:40,000
367
+ Simple tasks handlers differ from the classic handlers in that instead of supporting the start dock
368
+
369
+ 93
370
+ 00:07:41,000 --> 00:07:49,000
371
+ and the end talk masses, this simple attack interface provides a simple the attack message, which
372
+
373
+ 94
374
+ 00:07:49,000 --> 00:07:58,000
375
+ is called once and only once for any given fact invocation, all tack, logic, iteration, body evaluations,
376
+
377
+ 95
378
+ 00:07:58,000 --> 00:08:02,000
379
+ etc. are to be performed in this single message.
380
+
381
+ 96
382
+ 00:08:02,000 --> 00:08:10,000
383
+ Thus simple text handlers have the equivalent power of attack, but with a much simpler lifecycle from
384
+
385
+ 97
386
+ 00:08:10,000 --> 00:08:10,000
387
+ the interface.
388
+
389
+ 98
390
+ 00:08:11,000 --> 00:08:17,000
391
+ This one's implementation of this interface is used most often for creation of back handlers.
392
+
393
+ 99
394
+ 00:08:18,000 --> 00:08:23,000
395
+ Simple Tax Support, class and base clause for defining implement.
396
+
397
+ 100
398
+ 00:08:23,000 --> 00:08:26,000
399
+ Simple attack is a simple text.
400
+
401
+ 101
402
+ 00:08:26,000 --> 00:08:33,000
403
+ Support equals is a utility class intended to be used as a base class for use simple attack handlers.
404
+
405
+ 102
406
+ 00:08:33,000 --> 00:08:39,000
407
+ The simple attacks support equals implement the single thought interface and adds additional convenience
408
+
409
+ 103
410
+ 00:08:39,000 --> 00:08:45,000
411
+ message, including get analysis for the properties suitable to talk interface.
412
+
413
+ 104
414
+ 00:08:46,000 --> 00:08:51,000
415
+ The interface of a classic talk handler that doesn't want to manipulate its buddy.
416
+
417
+ 105
418
+ 00:08:52,000 --> 00:08:59,000
419
+ The Duck interface difference is a basic protocol between a talk and speech implementation class.
420
+
421
+ 106
422
+ 00:09:00,000 --> 00:09:03,000
423
+ It defines the lifecycle and the masses to be invoked.
424
+
425
+ 107
426
+ 00:09:03,000 --> 00:09:04,000
427
+ Head Start.
428
+
429
+ 108
430
+ 00:09:04,000 --> 00:09:04,000
431
+ And.
432
+
433
+ 109
434
+ 00:09:04,000 --> 00:09:05,000
435
+ And the.
436
+
437
+ 110
438
+ 00:09:06,000 --> 00:09:08,000
439
+ Iteration tech interface.
440
+
441
+ 111
442
+ 00:09:08,000 --> 00:09:17,000
443
+ This one extends tech interface by defining one additional massive controls at validation of its body.
444
+
445
+ 112
446
+ 00:09:17,000 --> 00:09:25,000
447
+ Attack handler is an implement situation that is treated as once it implements stock runs at the start
448
+
449
+ 113
450
+ 00:09:25,000 --> 00:09:27,000
451
+ dock and the end dock methods.
452
+
453
+ 114
454
+ 00:09:28,000 --> 00:09:32,000
455
+ Iteration dock provides a new message do after body.
456
+
457
+ 115
458
+ 00:09:33,000 --> 00:09:42,000
459
+ The do after button is invoked after every body revelation to control whether the body will be rehabilitated
460
+
461
+ 116
462
+ 00:09:42,000 --> 00:09:42,000
463
+ or not.
464
+
465
+ 117
466
+ 00:09:43,000 --> 00:09:51,000
467
+ If the after body message features evolve body again constant, then the body will be evaluated.
468
+
469
+ 118
470
+ 00:09:52,000 --> 00:09:59,000
471
+ If the after body, which has key body zones in body will escape, then to enter will be invalidated
472
+
473
+ 119
474
+ 00:09:59,000 --> 00:09:59,000
475
+ and set.
476
+
477
+ 120
478
+ 00:10:00,000 --> 00:10:10,000
479
+ Fox class at race class for the final week implement into the tech support class easy to attack was
480
+
481
+ 121
482
+ 00:10:10,000 --> 00:10:14,000
483
+ intended to be used as a base course for new handlers.
484
+
485
+ 122
486
+ 00:10:15,000 --> 00:10:22,000
487
+ The tech support plus implements the talk and iteration package interfaces and adds additional convenience
488
+
489
+ 123
490
+ 00:10:22,000 --> 00:10:26,000
491
+ masses, including getting matches for the properties in back.
492
+
493
+ 124
494
+ 00:10:27,000 --> 00:10:34,000
495
+ But attacking the face is a modern tech interface extends iteration tech by defining additional masses
496
+
497
+ 125
498
+ 00:10:34,000 --> 00:10:39,000
499
+ that let a talk handler manipulate the content of the bullet in its body.
500
+
501
+ 126
502
+ 00:10:40,000 --> 00:10:48,000
503
+ It is the responsibility of the tough candidate to manipulate the body content, for example, to make
504
+
505
+ 127
506
+ 00:10:48,000 --> 00:10:55,000
507
+ things in body content converted into something that uses the body count and gets to transcend using
508
+
509
+ 128
510
+ 00:10:55,000 --> 00:11:04,000
511
+ or make things in body content and write it out into be right sprite using the body content right out
512
+
513
+ 129
514
+ 00:11:04,000 --> 00:11:05,000
515
+ message.
516
+
517
+ 130
518
+ 00:11:06,000 --> 00:11:14,000
519
+ Jesus provides the interface, the actions and template data in the space is written using a g speechwriter
520
+
521
+ 131
522
+ 00:11:14,000 --> 00:11:21,000
523
+ object that is referenced was implicit variable out which is initialized automatically using masses
524
+
525
+ 132
526
+ 00:11:22,000 --> 00:11:23,000
527
+ a page context object.
528
+
529
+ 133
530
+ 00:11:24,000 --> 00:11:28,000
531
+ This absent plus emulates some of the functionality found.
532
+
533
+ 134
534
+ 00:11:28,000 --> 00:11:32,000
535
+ These are buffer right and write the classes.
536
+
537
+ 135
538
+ 00:11:32,000 --> 00:11:38,000
539
+ However, in the first that it slows by oh exception from the masses.
540
+
541
+ 136
542
+ 00:11:38,000 --> 00:11:40,000
543
+ While print writer does not.
544
+
545
+ 137
546
+ 00:11:41,000 --> 00:11:48,000
547
+ So as you can see, there is a big tree of different types that provides you with tons of flexibility
548
+
549
+ 138
550
+ 00:11:48,000 --> 00:11:51,000
551
+ in creation and configuration of you attack.
552
+
553
+ 139
554
+ 00:11:52,000 --> 00:11:57,000
555
+ If you ask me what is the most popular way to create toxin production?
556
+
557
+ 140
558
+ 00:11:57,000 --> 00:12:04,000
559
+ My answer would be the next one based on my experience, simple facts and reasonable plan, which I
560
+
561
+ 141
562
+ 00:12:04,000 --> 00:12:13,000
563
+ use just with quantification and insurance tax immunity of the font and components in case customizations
564
+
565
+ 142
566
+ 00:12:13,000 --> 00:12:14,000
567
+ are needed.
568
+
569
+ 143
570
+ 00:12:14,000 --> 00:12:16,000
571
+ Simple tax support cost is used.
572
+
573
+ 144
574
+ 00:12:17,000 --> 00:12:23,000
575
+ The rest of the types still can be used, but I would say that zero is not so big amount of business
576
+
577
+ 145
578
+ 00:12:23,000 --> 00:12:29,000
579
+ cases, so it can be only undressed with all other types but still.
580
+
581
+ 146
582
+ 00:12:29,000 --> 00:12:29,000
583
+ Right.
584
+
585
+ 147
586
+ 00:12:29,000 --> 00:12:30,000
587
+ Parachute.
588
+
589
+ 148
590
+ 00:12:30,000 --> 00:12:34,000
591
+ That shows that you show the communication of the package that we have just reviewed.
592
+
593
+ 149
594
+ 00:12:35,000 --> 00:12:38,000
595
+ Looks for the source code and just learn more details.
596
+
597
+ 150
598
+ 00:12:39,000 --> 00:12:41,000
599
+ This should help you to understand the topic better.
600
+
601
+ 151
602
+ 00:12:43,000 --> 00:12:45,000
603
+ Let's talk now about types of simple tax.
604
+
605
+ 152
606
+ 00:12:46,000 --> 00:12:54,000
607
+ Simple tax maybe was money who was out by a single tack and have to use that to customize the behavior
608
+
609
+ 153
610
+ 00:12:54,000 --> 00:13:03,000
611
+ of a custom that justice parameters customize the behavior of mass Zazi types of objects, simple attributes,
612
+
613
+ 154
614
+ 00:13:03,000 --> 00:13:06,000
615
+ fragment attributes and dynamic attributes.
616
+
617
+ 155
618
+ 00:13:07,000 --> 00:13:10,000
619
+ What are the difference between all these kinds of items?
620
+
621
+ 156
622
+ 00:13:10,000 --> 00:13:11,000
623
+ Let me explain.
624
+
625
+ 157
626
+ 00:13:12,000 --> 00:13:17,000
627
+ Simple items are evaluated by the company before being passed to the dog handler.
628
+
629
+ 158
630
+ 00:13:18,000 --> 00:13:24,000
631
+ Simple attributes at listed in the start that have the syntax of key value pair.
632
+
633
+ 159
634
+ 00:13:25,000 --> 00:13:32,000
635
+ Basically, these are regular attributes that we are all used to this point circle symbol.
636
+
637
+ 160
638
+ 00:13:32,000 --> 00:13:40,000
639
+ For example, you can set a simple adjective value from a string constant or an expression lounge expression.
640
+
641
+ 161
642
+ 00:13:41,000 --> 00:13:49,000
643
+ A GCP fragment is a portion of despicable past, the toxin that can be invoked as many times as needed.
644
+
645
+ 162
646
+ 00:13:49,000 --> 00:13:57,000
647
+ You can see of a fragment as a template that is used by dog handler to produce customized content.
648
+
649
+ 163
650
+ 00:13:58,000 --> 00:14:06,000
651
+ Thus, unlike a single item which is evaluated by the containment, the fragment is evaluated by a toxin
652
+
653
+ 164
654
+ 00:14:06,000 --> 00:14:11,000
655
+ that the exact location where the fragments are too.
656
+
657
+ 165
658
+ 00:14:11,000 --> 00:14:14,000
659
+ You use the fragments of the article directly.
660
+
661
+ 166
662
+ 00:14:15,000 --> 00:14:24,000
663
+ Or use the fragment some element of the attribute to the element uniform the value of a fragment by
664
+
665
+ 167
666
+ 00:14:24,000 --> 00:14:33,000
667
+ using a GCP attribute element when used to specify a fragment attribute z body of GSP attributes animal
668
+
669
+ 168
670
+ 00:14:33,000 --> 00:14:38,000
671
+ can contain on the static text Winston and custom tats.
672
+
673
+ 169
674
+ 00:14:38,000 --> 00:14:41,000
675
+ It can contain scripting elements.
676
+
677
+ 170
678
+ 00:14:42,000 --> 00:14:50,000
679
+ Luke And the example in the slides and imagine Z mixing, you have custom product details and we can
680
+
681
+ 171
682
+ 00:14:50,000 --> 00:14:58,000
683
+ have normal price and special price for sale and will read code of detail stack to decide which of the
684
+
685
+ 172
686
+ 00:14:58,000 --> 00:14:59,000
687
+ fragments to use.
688
+
689
+ 173
690
+ 00:15:00,000 --> 00:15:09,000
691
+ You can see that with the help of the GCP attribute that we pass portion of GCP code, the tag executes
692
+
693
+ 174
694
+ 00:15:09,000 --> 00:15:14,000
695
+ the normal price fragment using the values from the price expression language variable.
696
+
697
+ 175
698
+ 00:15:15,000 --> 00:15:23,000
699
+ If the product is full price, if the product is on sale, the pack executes all sale fragments using
700
+
701
+ 176
702
+ 00:15:23,000 --> 00:15:25,000
703
+ zip price and sale price variables.
704
+
705
+ 177
706
+ 00:15:26,000 --> 00:15:33,000
707
+ GCP fragments are represented in Java by an instance of the fragment absolute class.
708
+
709
+ 178
710
+ 00:15:34,000 --> 00:15:42,000
711
+ Pieces of GSP code are translated into GSP fragments in the context of that invocation, these fragments
712
+
713
+ 179
714
+ 00:15:42,000 --> 00:15:43,000
715
+ are created.
716
+
717
+ 180
718
+ 00:15:43,000 --> 00:15:50,000
719
+ One provides a body of GCP attribute standards action for an attribute that is defined as a fragment
720
+
721
+ 181
722
+ 00:15:50,000 --> 00:15:58,000
723
+ of Type B fragment, or when providing the body of attack invocation handled by a simple talk handler
724
+
725
+ 182
726
+ 00:15:59,000 --> 00:15:59,000
727
+ user demo.
728
+
729
+ 183
730
+ 00:15:59,000 --> 00:16:02,000
731
+ We are also going to cover GSP fragments.
732
+
733
+ 184
734
+ 00:16:03,000 --> 00:16:07,000
735
+ And the last but not least, time is stuck with the dynamic attitude.
736
+
737
+ 185
738
+ 00:16:07,000 --> 00:16:13,000
739
+ A dynamic cultivate is a narrative that is not specified in the definition of attack.
740
+
741
+ 186
742
+ 00:16:13,000 --> 00:16:19,000
743
+ Then I refer to this I use promoted by tax, whose activists are treated in a uniform manner.
744
+
745
+ 187
746
+ 00:16:20,000 --> 00:16:24,000
747
+ But those names are not necessarily known and development time.
748
+
749
+ 188
750
+ 00:16:25,000 --> 00:16:32,000
751
+ For example, this statute accepts an arbitrary number of atoms whose values, colours and outputs are
752
+
753
+ 189
754
+ 00:16:32,000 --> 00:16:36,000
755
+ both at least of the artist colour according to the values.
756
+
757
+ 190
758
+ 00:16:36,000 --> 00:16:43,000
759
+ You can also set the value of dynamic attributes using an expression, language, expression, or using
760
+
761
+ 191
762
+ 00:16:43,000 --> 00:16:47,000
763
+ the GSP attribute time in order to make dynamic heart in its work.
764
+
765
+ 192
766
+ 00:16:47,000 --> 00:16:49,000
767
+ We also need to enable them.
768
+
769
+ 193
770
+ 00:16:49,000 --> 00:16:52,000
771
+ Is it that library descriptor then for it?
772
+
773
+ 194
774
+ 00:16:52,000 --> 00:16:55,000
775
+ I'm going to show you the details in the example.
776
+
777
+ 195
778
+ 00:16:55,000 --> 00:17:02,000
779
+ At least now you're aware of what the name attributes are, and now it is time of live demo and practical
780
+
781
+ 196
782
+ 00:17:02,000 --> 00:17:03,000
783
+ activities.
784
+
785
+ 197
786
+ 00:17:03,000 --> 00:17:08,000
787
+ Let me start screen sharing and walk you through the examples that I've prepared for you.
788
+
789
+ 198
790
+ 00:17:09,000 --> 00:17:12,000
791
+ We're going to have a lot of examples today.
792
+
793
+ 199
794
+ 00:17:12,000 --> 00:17:16,000
795
+ Let me describe the plan of our demo at the beginning.
796
+
797
+ 200
798
+ 00:17:16,000 --> 00:17:19,000
799
+ We're going to create simple pack with a sponge.
800
+
801
+ 201
802
+ 00:17:20,000 --> 00:17:23,000
803
+ After that, we'll add simple activists to them.
804
+
805
+ 202
806
+ 00:17:23,000 --> 00:17:26,000
807
+ We're going to create simple talk handlers.
808
+
809
+ 203
810
+ 00:17:26,000 --> 00:17:29,000
811
+ After that, let's create simple talk with fragments.
812
+
813
+ 204
814
+ 00:17:30,000 --> 00:17:36,000
815
+ Once we learn these kinds of attacks, we're going to view attacks with the enemy activists.
816
+
817
+ 205
818
+ 00:17:36,000 --> 00:17:40,000
819
+ Let's stick to the plan and start with the first example.
820
+
821
+ 206
822
+ 00:17:40,000 --> 00:17:41,000
823
+ That's the beginning.
824
+
825
+ 207
826
+ 00:17:41,000 --> 00:17:44,000
827
+ We're going to create a simple that was a sponge.
828
+
829
+ 208
830
+ 00:17:45,000 --> 00:17:52,000
831
+ I opened files and I prepared specially for this lesson that the school could use be tax damages.
832
+
833
+ 209
834
+ 00:17:53,000 --> 00:17:55,000
835
+ I will walk you through examples from this file.
836
+
837
+ 210
838
+ 00:17:56,000 --> 00:17:58,000
839
+ Let's start from the top lead directive.
840
+
841
+ 211
842
+ 00:17:59,000 --> 00:18:02,000
843
+ We need to declare profits, then talk directly.
844
+
845
+ 212
846
+ 00:18:03,000 --> 00:18:04,000
847
+ Attention to the boss.
848
+
849
+ 213
850
+ 00:18:04,000 --> 00:18:06,000
851
+ This is important for us.
852
+
853
+ 214
854
+ 00:18:06,000 --> 00:18:10,000
855
+ Is equal to that is that's after it.
856
+
857
+ 215
858
+ 00:18:11,000 --> 00:18:13,000
859
+ Any folder that we created.
860
+
861
+ 216
862
+ 00:18:13,000 --> 00:18:18,000
863
+ Web tax is a conventional name that is mandatory to follow.
864
+
865
+ 217
866
+ 00:18:18,000 --> 00:18:25,000
867
+ If you want to use custom tax, it was GCP language and described the files with stock extension.
868
+
869
+ 218
870
+ 00:18:26,000 --> 00:18:30,000
871
+ Zip pass is it goes after map and stats can be different.
872
+
873
+ 219
874
+ 00:18:31,000 --> 00:18:35,000
875
+ In our particular case, let's call it fold it general.
876
+
877
+ 220
878
+ 00:18:35,000 --> 00:18:37,000
879
+ Our prefix is simply g.
880
+
881
+ 221
882
+ 00:18:38,000 --> 00:18:40,000
883
+ G stands for general tax.
884
+
885
+ 222
886
+ 00:18:41,000 --> 00:18:48,000
887
+ Let's expand verb in folder sheet and find tax folder and general folder inside it.
888
+
889
+ 223
890
+ 00:18:49,000 --> 00:18:53,000
891
+ So this is true and relevant to our tax.
892
+
893
+ 224
894
+ 00:18:53,000 --> 00:18:55,000
895
+ Inside we have our tax.
896
+
897
+ 225
898
+ 00:18:56,000 --> 00:19:01,000
899
+ Look, Milka file was named filter and was extension their attention.
900
+
901
+ 226
902
+ 00:19:01,000 --> 00:19:07,000
903
+ So this file doesn't have GSP extension, but talk extension.
904
+
905
+ 227
906
+ 00:19:08,000 --> 00:19:17,000
907
+ And then our before we can refer to the folder tag using our prefix just like this looks super simple.
908
+
909
+ 228
910
+ 00:19:18,000 --> 00:19:19,000
911
+ Would you agree with me?
912
+
913
+ 229
914
+ 00:19:20,000 --> 00:19:23,000
915
+ And like this you can have multiple tags on GCP.
916
+
917
+ 230
918
+ 00:19:23,000 --> 00:19:26,000
919
+ Page is like named and made from bricks.
920
+
921
+ 231
922
+ 00:19:26,000 --> 00:19:29,000
923
+ You can change the order of Greeks.
924
+
925
+ 232
926
+ 00:19:29,000 --> 00:19:30,000
927
+ We use them and so on.
928
+
929
+ 233
930
+ 00:19:31,000 --> 00:19:33,000
931
+ My Web server already up and running.
932
+
933
+ 234
934
+ 00:19:34,000 --> 00:19:41,000
935
+ Let me send the request to this GSP file and show you as a result in browser is the other line.
936
+
937
+ 235
938
+ 00:19:41,000 --> 00:19:49,000
939
+ You can see address of our JSP page and here we see markup from the footer to let's continue.
940
+
941
+ 236
942
+ 00:19:50,000 --> 00:19:51,000
943
+ Now let's create that.
944
+
945
+ 237
946
+ 00:19:51,000 --> 00:19:59,000
947
+ That takes attributes with the help of the still an expression and I declare an array variable and after
948
+
949
+ 238
950
+ 00:19:59,000 --> 00:20:04,000
951
+ it I use custom tech and pass my array as an attribute.
952
+
953
+ 239
954
+ 00:20:04,000 --> 00:20:07,000
955
+ My new custom task is called Queen three.
956
+
957
+ 240
958
+ 00:20:08,000 --> 00:20:12,000
959
+ Let's look at the source code of the attack in that file.
960
+
961
+ 241
962
+ 00:20:12,000 --> 00:20:15,000
963
+ I can use this same GSP directives.
964
+
965
+ 242
966
+ 00:20:15,000 --> 00:20:24,000
967
+ For example, I can use core g still tags inside my to define need to declare attribute in the attack.
968
+
969
+ 243
970
+ 00:20:24,000 --> 00:20:26,000
971
+ I use this patching directive.
972
+
973
+ 244
974
+ 00:20:27,000 --> 00:20:30,000
975
+ The rest here is pretty clear and intuitive.
976
+
977
+ 245
978
+ 00:20:31,000 --> 00:20:32,000
979
+ We declare the name of the attribute.
980
+
981
+ 246
982
+ 00:20:33,000 --> 00:20:34,000
983
+ It's type.
984
+
985
+ 247
986
+ 00:20:34,000 --> 00:20:40,000
987
+ And in this particular case I also declare it is a this such a is going to be required for this attack.
988
+
989
+ 248
990
+ 00:20:41,000 --> 00:20:47,000
991
+ That means that I can use this attack without passing value to this attack.
992
+
993
+ 249
994
+ 00:20:48,000 --> 00:20:51,000
995
+ And after that I use collection of cells to fields.
996
+
997
+ 250
998
+ 00:20:51,000 --> 00:20:54,000
999
+ The table that I agree with for each.
1000
+
1001
+ 251
1002
+ 00:20:55,000 --> 00:20:55,000
1003
+ That's it.
1004
+
1005
+ 252
1006
+ 00:20:56,000 --> 00:20:59,000
1007
+ Let's look in the browser how it looks like.
1008
+
1009
+ 253
1010
+ 00:21:00,000 --> 00:21:05,000
1011
+ In the browser you can see how I printed table with values for my array.
1012
+
1013
+ 254
1014
+ 00:21:05,000 --> 00:21:07,000
1015
+ In case you have any questions.
1016
+
1017
+ 255
1018
+ 00:21:08,000 --> 00:21:14,000
1019
+ Please hesitate to ask you questions and comments below this video and I will be happy to answer those.
1020
+
1021
+ 256
1022
+ 00:21:15,000 --> 00:21:17,000
1023
+ Let's continue this example.
1024
+
1025
+ 257
1026
+ 00:21:17,000 --> 00:21:21,000
1027
+ Let's create now simple to convert within this Java.
1028
+
1029
+ 258
1030
+ 00:21:22,000 --> 00:21:29,000
1031
+ For this we talk library descriptor and talk handler and then Java in the page directive.
1032
+
1033
+ 259
1034
+ 00:21:29,000 --> 00:21:37,000
1035
+ I declare that I want to use text from this stack library descriptor will convert know what that library
1036
+
1037
+ 260
1038
+ 00:21:37,000 --> 00:21:46,000
1039
+ descriptor is and also in the lesson but just still review do of cortex do remember this from previous
1040
+
1041
+ 261
1042
+ 00:21:46,000 --> 00:21:50,000
1043
+ lesson I specified past as a to the file.
1044
+
1045
+ 262
1046
+ 00:21:50,000 --> 00:21:51,000
1047
+ Let's take a look at it.
1048
+
1049
+ 263
1050
+ 00:21:52,000 --> 00:21:54,000
1051
+ Here it is in web folder.
1052
+
1053
+ 264
1054
+ 00:21:55,000 --> 00:22:03,000
1055
+ It is called custom two of the that's open this target file should have one root element is a scroll
1056
+
1057
+ 265
1058
+ 00:22:04,000 --> 00:22:04,000
1059
+ target.
1060
+
1061
+ 266
1062
+ 00:22:05,000 --> 00:22:08,000
1063
+ This file contains multiple elements.
1064
+
1065
+ 267
1066
+ 00:22:09,000 --> 00:22:11,000
1067
+ TAC and channel should specify name.
1068
+
1069
+ 268
1070
+ 00:22:12,000 --> 00:22:17,000
1071
+ This is the name of the tag that we will use on the GCP page top class.
1072
+
1073
+ 269
1074
+ 00:22:17,000 --> 00:22:20,000
1075
+ This is a complete plus name of the dog handler.
1076
+
1077
+ 270
1078
+ 00:22:21,000 --> 00:22:23,000
1079
+ We're going to review it in a minute.
1080
+
1081
+ 271
1082
+ 00:22:24,000 --> 00:22:31,000
1083
+ We also specify that this stack will not have any body content in case this stack will have any content
1084
+
1085
+ 272
1086
+ 00:22:31,000 --> 00:22:34,000
1087
+ in the tag body, an exception will throw.
1088
+
1089
+ 273
1090
+ 00:22:35,000 --> 00:22:42,000
1091
+ And we can see that this stack may have different activities all at once by default after three thought.
1092
+
1093
+ 274
1094
+ 00:22:43,000 --> 00:22:51,000
1095
+ That's why when I described the message on TV, I didn't specify it vividly that it has to start not
1096
+
1097
+ 275
1098
+ 00:22:51,000 --> 00:22:55,000
1099
+ the activities collection but attention to.
1100
+
1101
+ 276
1102
+ 00:22:55,000 --> 00:23:03,000
1103
+ One more important element is that the scope party expression value can be used a true or false the
1104
+
1105
+ 277
1106
+ 00:23:03,000 --> 00:23:08,000
1107
+ false value means is a static value can be specified for this.
1108
+
1109
+ 278
1110
+ 00:23:08,000 --> 00:23:14,000
1111
+ Actually, a true value means that a request time achieve its value can be specified.
1112
+
1113
+ 279
1114
+ 00:23:14,000 --> 00:23:21,000
1115
+ When we say request time value, we can mean also values that will be evaluated by the expression,
1116
+
1117
+ 280
1118
+ 00:23:21,000 --> 00:23:24,000
1119
+ language, for example, request or session.
1120
+
1121
+ 281
1122
+ 00:23:24,000 --> 00:23:28,000
1123
+ That to me was having this element set to true.
1124
+
1125
+ 282
1126
+ 00:23:29,000 --> 00:23:33,000
1127
+ We can use expression language to pass values to this attribute.
1128
+
1129
+ 283
1130
+ 00:23:34,000 --> 00:23:41,000
1131
+ And in a similar way you can describe whatever tax you want and again you can use still defaults of
1132
+
1133
+ 284
1134
+ 00:23:41,000 --> 00:23:43,000
1135
+ still library as a reference.
1136
+
1137
+ 285
1138
+ 00:23:44,000 --> 00:23:50,000
1139
+ In the previous lesson, I explained you how you can explore the source code of the files from the g
1140
+
1141
+ 286
1142
+ 00:23:50,000 --> 00:23:58,000
1143
+ is still knowledge of G still to do files to help you use creation of your own custom text library descriptors.
1144
+
1145
+ 287
1146
+ 00:23:59,000 --> 00:24:02,000
1147
+ Now let's review ahead of itself.
1148
+
1149
+ 288
1150
+ 00:24:03,000 --> 00:24:06,000
1151
+ I created a plus and put it in the docs package.
1152
+
1153
+ 289
1154
+ 00:24:07,000 --> 00:24:09,000
1155
+ It is called Pillow Talk Hymnal.
1156
+
1157
+ 290
1158
+ 00:24:10,000 --> 00:24:17,000
1159
+ As we already learned, the great tax hamlet we need to send you cloth from as a single tax support
1160
+
1161
+ 291
1162
+ 00:24:17,000 --> 00:24:19,000
1163
+ and override the tax message.
1164
+
1165
+ 292
1166
+ 00:24:20,000 --> 00:24:22,000
1167
+ In this class we have two fields.
1168
+
1169
+ 293
1170
+ 00:24:23,000 --> 00:24:30,000
1171
+ These are fields where the references to the art of this post to the tax will be stored in order to
1172
+
1173
+ 294
1174
+ 00:24:30,000 --> 00:24:32,000
1175
+ initialize these variables with values.
1176
+
1177
+ 295
1178
+ 00:24:33,000 --> 00:24:36,000
1179
+ We need to make sure that we create setters for these fields.
1180
+
1181
+ 296
1182
+ 00:24:37,000 --> 00:24:41,000
1183
+ You can see setter for my message attribute and setter for collection activity.
1184
+
1185
+ 297
1186
+ 00:24:42,000 --> 00:24:45,000
1187
+ And here is implementation of the do tax message.
1188
+
1189
+ 298
1190
+ 00:24:46,000 --> 00:24:53,000
1191
+ I get the reference to the GCP writer in order to write about how you use context against the reference
1192
+
1193
+ 299
1194
+ 00:24:53,000 --> 00:24:54,000
1195
+ residues.
1196
+
1197
+ 300
1198
+ 00:24:54,000 --> 00:24:54,000
1199
+ Right.
1200
+
1201
+ 301
1202
+ 00:24:55,000 --> 00:24:58,000
1203
+ Get GCP context message from simple tasks.
1204
+
1205
+ 302
1206
+ 00:24:58,000 --> 00:25:02,000
1207
+ Support class can help me to get zero flows to the GCP context.
1208
+
1209
+ 303
1210
+ 00:25:03,000 --> 00:25:06,000
1211
+ And here we actually write and Java a quote.
1212
+
1213
+ 304
1214
+ 00:25:06,000 --> 00:25:08,000
1215
+ We need to describe any algorithm we need.
1216
+
1217
+ 305
1218
+ 00:25:09,000 --> 00:25:18,000
1219
+ In our case, if collection attribute is now, then would just hello from custom task and message even
1220
+
1221
+ 306
1222
+ 00:25:18,000 --> 00:25:24,000
1223
+ in case through below no difference and in case collection achievement is passed is as that.
1224
+
1225
+ 307
1226
+ 00:25:25,000 --> 00:25:30,000
1227
+ Then we eliminate the size of the collection and its size as a response body.
1228
+
1229
+ 308
1230
+ 00:25:31,000 --> 00:25:38,000
1231
+ It is very complicated logic and I believe this is more than enough to custom tax from the very beginning.
1232
+
1233
+ 309
1234
+ 00:25:39,000 --> 00:25:46,000
1235
+ At least you can understand the principle how the value of the tax will be evaluated, and you can create
1236
+
1237
+ 310
1238
+ 00:25:46,000 --> 00:25:48,000
1239
+ tax of any complexities that you need.
1240
+
1241
+ 311
1242
+ 00:25:49,000 --> 00:25:51,000
1243
+ So we are going to use this tax.
1244
+
1245
+ 312
1246
+ 00:25:51,000 --> 00:25:54,000
1247
+ Let's get back to our speech.
1248
+
1249
+ 313
1250
+ 00:25:54,000 --> 00:25:56,000
1251
+ On our speech.
1252
+
1253
+ 314
1254
+ 00:25:56,000 --> 00:26:04,000
1255
+ I'm going to use this tax three times without actually this was Massachusetts and it was message and
1256
+
1257
+ 315
1258
+ 00:26:04,000 --> 00:26:07,000
1259
+ collection activities as a collection achievement.
1260
+
1261
+ 316
1262
+ 00:26:07,000 --> 00:26:11,000
1263
+ I'm going to use a phrase that we used in our previous example.
1264
+
1265
+ 317
1266
+ 00:26:12,000 --> 00:26:18,000
1267
+ Let me navigate to the browser and explore how our custom thoughts were evaluated on the frontend.
1268
+
1269
+ 318
1270
+ 00:26:18,000 --> 00:26:24,000
1271
+ And as you can see, we get what we expect without message attribute.
1272
+
1273
+ 319
1274
+ 00:26:24,000 --> 00:26:30,000
1275
+ We print it now with the message attribute, which means that the content of the message that triggered
1276
+
1277
+ 320
1278
+ 00:26:30,000 --> 00:26:32,000
1279
+ and was correction attribute.
1280
+
1281
+ 321
1282
+ 00:26:32,000 --> 00:26:34,000
1283
+ We also bring the size of the collection.
1284
+
1285
+ 322
1286
+ 00:26:34,000 --> 00:26:41,000
1287
+ Is it clear if no, please ask questions below this video and I will be happy to answer.
1288
+
1289
+ 323
1290
+ 00:26:41,000 --> 00:26:43,000
1291
+ If yes, that's more.
1292
+
1293
+ 324
1294
+ 00:26:44,000 --> 00:26:47,000
1295
+ The next example is about that was fragment.
1296
+
1297
+ 325
1298
+ 00:26:48,000 --> 00:26:50,000
1299
+ So imagine that we have element.
1300
+
1301
+ 326
1302
+ 00:26:50,000 --> 00:26:52,000
1303
+ Is it supposed to create modules, attack that.
1304
+
1305
+ 327
1306
+ 00:26:53,000 --> 00:26:56,000
1307
+ And one of the fragments provided based on the condition.
1308
+
1309
+ 328
1310
+ 00:26:56,000 --> 00:27:02,000
1311
+ In this particular case, we need to select one out of two possible photos.
1312
+
1313
+ 329
1314
+ 00:27:02,000 --> 00:27:06,000
1315
+ We have let go of photo and photos, context form.
1316
+
1317
+ 330
1318
+ 00:27:07,000 --> 00:27:08,000
1319
+ Just imagine that.
1320
+
1321
+ 331
1322
+ 00:27:08,000 --> 00:27:14,000
1323
+ And then also you can imagine that we have some condition is it is passed from the outside of attack.
1324
+
1325
+ 332
1326
+ 00:27:15,000 --> 00:27:18,000
1327
+ These are from some similar or from the request form.
1328
+
1329
+ 333
1330
+ 00:27:18,000 --> 00:27:19,000
1331
+ It doesn't matter.
1332
+
1333
+ 334
1334
+ 00:27:20,000 --> 00:27:26,000
1335
+ The main thing is that there is something which will define which photo we have to print and we have
1336
+
1337
+ 335
1338
+ 00:27:26,000 --> 00:27:29,000
1339
+ to cross this condition into the future style.
1340
+
1341
+ 336
1342
+ 00:27:31,000 --> 00:27:36,000
1343
+ As you can see, the fragments past was reduced to zero.
1344
+
1345
+ 337
1346
+ 00:27:37,000 --> 00:27:38,000
1347
+ Photo regular.
1348
+
1349
+ 338
1350
+ 00:27:38,000 --> 00:27:40,000
1351
+ These are future contact form.
1352
+
1353
+ 339
1354
+ 00:27:41,000 --> 00:27:42,000
1355
+ Separately, we have GCP body.
1356
+
1357
+ 340
1358
+ 00:27:43,000 --> 00:27:44,000
1359
+ So let me know.
1360
+
1361
+ 341
1362
+ 00:27:44,000 --> 00:27:46,000
1363
+ Opens attack itself.
1364
+
1365
+ 342
1366
+ 00:27:47,000 --> 00:27:50,000
1367
+ Here's our fragment them back on top.
1368
+
1369
+ 343
1370
+ 00:27:50,000 --> 00:27:51,000
1371
+ You can see that.
1372
+
1373
+ 344
1374
+ 00:27:51,000 --> 00:27:52,000
1375
+ I digress.
1376
+
1377
+ 345
1378
+ 00:27:52,000 --> 00:27:54,000
1379
+ We are to use Fortress style.
1380
+
1381
+ 346
1382
+ 00:27:55,000 --> 00:27:56,000
1383
+ It is a required one.
1384
+
1385
+ 347
1386
+ 00:27:57,000 --> 00:28:00,000
1387
+ Foods are regular and foods are contact form of fragments.
1388
+
1389
+ 348
1390
+ 00:28:01,000 --> 00:28:07,000
1391
+ You can understand this because fragment thought of it is set to true to point to body.
1392
+
1393
+ 349
1394
+ 00:28:08,000 --> 00:28:13,000
1395
+ I coat the body action type and based on the condition post foods.
1396
+
1397
+ 350
1398
+ 00:28:14,000 --> 00:28:19,000
1399
+ A fragment is that they need principles if needed and explore this example.
1400
+
1401
+ 351
1402
+ 00:28:20,000 --> 00:28:24,000
1403
+ By the way, you can find source for the full examples in attachments to the lesson.
1404
+
1405
+ 352
1406
+ 00:28:25,000 --> 00:28:27,000
1407
+ Ends of the speech.
1408
+
1409
+ 353
1410
+ 00:28:27,000 --> 00:28:33,000
1411
+ I have two versions of the stack with regular footer and contact form for the.
1412
+
1413
+ 354
1414
+ 00:28:34,000 --> 00:28:38,000
1415
+ Lithium navigate into the browser now and show you how it looks like.
1416
+
1417
+ 355
1418
+ 00:28:39,000 --> 00:28:46,000
1419
+ Here you can see the difference body in both cases and based on the condition icons in different fragments.
1420
+
1421
+ 356
1422
+ 00:28:47,000 --> 00:28:48,000
1423
+ That's how it works.
1424
+
1425
+ 357
1426
+ 00:28:48,000 --> 00:28:49,000
1427
+ Let's come to you.
1428
+
1429
+ 358
1430
+ 00:28:50,000 --> 00:28:55,000
1431
+ And the last but not least example for this example was dynamic attitudes.
1432
+
1433
+ 359
1434
+ 00:28:55,000 --> 00:29:03,000
1435
+ You can see that in my speech I used to visit the school cooler at least items was a practice custom
1436
+
1437
+ 360
1438
+ 00:29:03,000 --> 00:29:04,000
1439
+ and they was different.
1440
+
1441
+ 361
1442
+ 00:29:05,000 --> 00:29:05,000
1443
+ This was values.
1444
+
1445
+ 362
1446
+ 00:29:06,000 --> 00:29:11,000
1447
+ The key thing here is that it doesn't matter how much you achieve this I will pass.
1448
+
1449
+ 363
1450
+ 00:29:11,000 --> 00:29:15,000
1451
+ Here is the same as it doesn't matter how they will be called.
1452
+
1453
+ 364
1454
+ 00:29:16,000 --> 00:29:20,000
1455
+ This is that was dynamic attitudes working to navigate.
1456
+
1457
+ 365
1458
+ 00:29:20,000 --> 00:29:24,000
1459
+ Now does it attack library descriptor in this still defile file?
1460
+
1461
+ 366
1462
+ 00:29:24,000 --> 00:29:26,000
1463
+ I have one more talk this quiet.
1464
+
1465
+ 367
1466
+ 00:29:27,000 --> 00:29:33,000
1467
+ You can see the similar attributes as we have in the previous description, but he is a difference.
1468
+
1469
+ 368
1470
+ 00:29:34,000 --> 00:29:37,000
1471
+ We set true value in dynamic attributes element.
1472
+
1473
+ 369
1474
+ 00:29:37,000 --> 00:29:38,000
1475
+ This is important.
1476
+
1477
+ 370
1478
+ 00:29:39,000 --> 00:29:43,000
1479
+ Now let's navigate to the source code of the handler class.
1480
+
1481
+ 371
1482
+ 00:29:44,000 --> 00:29:51,000
1483
+ This class also stands simple tax handler, but it also implements dynamic action to see the face.
1484
+
1485
+ 372
1486
+ 00:29:52,000 --> 00:29:59,000
1487
+ This interface makes us implement set dynamic attributes massive where a local name is the name of the
1488
+
1489
+ 373
1490
+ 00:29:59,000 --> 00:30:04,000
1491
+ attributes and the value is a value of the attribute you arrive.
1492
+
1493
+ 374
1494
+ 00:30:04,000 --> 00:30:07,000
1495
+ Parameter is the namespace of the attribute.
1496
+
1497
+ 375
1498
+ 00:30:07,000 --> 00:30:09,000
1499
+ It will be now is it attribute?
1500
+
1501
+ 376
1502
+ 00:30:09,000 --> 00:30:11,000
1503
+ This is a default namespace.
1504
+
1505
+ 377
1506
+ 00:30:12,000 --> 00:30:19,000
1507
+ This setter is invoked each time new attributes is discovered is attacked, and one new attribute is
1508
+
1509
+ 378
1510
+ 00:30:19,000 --> 00:30:19,000
1511
+ added.
1512
+
1513
+ 379
1514
+ 00:30:19,000 --> 00:30:27,000
1515
+ I pulled active with name and attributes value into the map and during the implementation of the task
1516
+
1517
+ 380
1518
+ 00:30:27,000 --> 00:30:35,000
1519
+ message I iterate over all entries and use name of the attribute and its value in order to build the
1520
+
1521
+ 381
1522
+ 00:30:35,000 --> 00:30:36,000
1523
+ color list.
1524
+
1525
+ 382
1526
+ 00:30:36,000 --> 00:30:39,000
1527
+ Let me open the browser to show you how it looks like.
1528
+
1529
+ 383
1530
+ 00:30:40,000 --> 00:30:44,000
1531
+ And in the bottom of the file you can see color list.
1532
+
1533
+ 384
1534
+ 00:30:45,000 --> 00:30:52,000
1535
+ This is example of the dynamic nuttiness that so what I wanted to show you today, let's recap what
1536
+
1537
+ 385
1538
+ 00:30:52,000 --> 00:30:57,000
1539
+ we have learned in this lesson, learned a lot of things.
1540
+
1541
+ 386
1542
+ 00:30:57,000 --> 00:31:00,000
1543
+ Now you know what custom GCP talks are.
1544
+
1545
+ 387
1546
+ 00:31:00,000 --> 00:31:03,000
1547
+ We learned what that library is.
1548
+
1549
+ 388
1550
+ 00:31:03,000 --> 00:31:10,000
1551
+ Also, we learned what Canva is, you know, with simple talk and classic dog handlers.
1552
+
1553
+ 389
1554
+ 00:31:11,000 --> 00:31:16,000
1555
+ We reviewed main classes and interfaces from GCP, Custom Tax API.
1556
+
1557
+ 390
1558
+ 00:31:17,000 --> 00:31:25,000
1559
+ We learned different kinds of attributes in GCP tax like single fragment and dynamic catchiness and
1560
+
1561
+ 391
1562
+ 00:31:25,000 --> 00:31:30,000
1563
+ the examples of lesson you used real life examples to learn how to use taxable practice.
1564
+
1565
+ 392
1566
+ 00:31:31,000 --> 00:31:32,000
1567
+ That's all for today.
1568
+
1569
+ 393
1570
+ 00:31:33,000 --> 00:31:34,000
1571
+ Thanks a lot for your attention.
1572
+
1573
+ 394
1574
+ 00:31:35,000 --> 00:31:37,000
1575
+ Have a great day and see you in the next lesson.
1576
+
68 - JSP/005 Folder-with-custom-tags.url ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ [InternetShortcut]
2
+ URL=https://github.com/AndriiPiatakha/java-learnit-web-online-store/tree/master/online-store.web/src/main/webapp/WEB-INF/tags/general