├── .idea
├── .gitignore
├── artifacts
│ ├── 10_InCP.xml
│ ├── 12_Filters.xml
│ └── dbcp09.xml
├── dataSources.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── libraries
│ ├── JSONP.xml
│ ├── Java_EE_6_Java_EE_6.xml
│ ├── commons_dbcp2_2_8_0.xml
│ └── mysql_connector_java_8_0_23.xml
├── misc.xml
├── modules.xml
├── sqldialects.xml
├── vcs.xml
└── webContexts.xml
├── 01_Hello_Servlet
├── 01_Hello_Servlet.iml
├── src
│ └── lk
│ │ ├── Customer.java
│ │ └── HelloServlet.java
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assets
│ ├── css
│ │ └── bootstrap.css
│ └── js
│ │ └── bootstrap.js
│ └── index.html
├── 02_Life_Cycle
├── 02_Life_Cycle.iml
├── src
│ └── lk
│ │ ├── Customer.java
│ │ └── MyServlet.java
└── web
│ └── WEB-INF
│ └── web.xml
├── 03_Servlet_Mapping
├── 03_Servlet_Mapping.iml
├── src
│ └── lk
│ │ ├── DefaultMapping.java
│ │ ├── EmptyStringMapping.java
│ │ ├── FileExtensionMapping.java
│ │ ├── PathMapping.java
│ │ └── WildCardMapping.java
└── web
│ └── WEB-INF
│ └── web.xml
├── 04_Simple_Pos
├── 04_Simple_Pos.iml
├── src
│ ├── lk
│ │ ├── CustomerServlet.java
│ │ └── CustomerServlet2.java
│ └── sql
│ │ └── simplepos.sql
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ ├── customer.jsp
│ ├── index.jsp
│ └── index2.html
├── 05_Ajax
├── 05_Ajax.iml
├── css
│ └── bootstrap.css
├── db
│ ├── db.json
│ ├── db.txt
│ └── db.xml
├── index.html
├── index2.html
└── js
│ ├── bootstrap.js
│ └── jquery-3.6.0.js
├── 06_Timers
├── 06_Timers.iml
└── index.html
├── 07_POS_With_AJAX
├── 07_POS_With_AJAX.iml
├── src
│ └── lk
│ │ └── CustomerServlet.java
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ ├── jquery-3.6.0.min.js
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── index.html
├── 08_JSONP
├── 08_JSONP.iml
├── src
│ └── lk
│ │ └── CustomerServlet.java
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ ├── jquery-3.6.0.min.js
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── index.html
├── 09_DBCP
├── 09_DBCP.iml
├── src
│ └── lk
│ │ ├── CustomerServlet.java
│ │ └── Listner.java
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ ├── jquery-3.6.0.min.js
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── index.html
├── 10_InCP
├── 10_InCP.iml
├── src
│ └── lk
│ │ └── CustomerServlet.java
└── web
│ ├── META-INF
│ └── context.xml
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ ├── jquery-3.6.0.min.js
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── index.html
├── 11_FileUpload
├── 11_FileUpload.iml
├── src
│ └── lk
│ │ └── FileUploadServlet.java
└── web
│ ├── WEB-INF
│ └── web.xml
│ ├── assests
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap-grid.css.map
│ │ ├── bootstrap-grid.min.css
│ │ ├── bootstrap-grid.min.css.map
│ │ ├── bootstrap-grid.rtl.css
│ │ ├── bootstrap-grid.rtl.css.map
│ │ ├── bootstrap-grid.rtl.min.css
│ │ ├── bootstrap-grid.rtl.min.css.map
│ │ ├── bootstrap-reboot.css
│ │ ├── bootstrap-reboot.css.map
│ │ ├── bootstrap-reboot.min.css
│ │ ├── bootstrap-reboot.min.css.map
│ │ ├── bootstrap-reboot.rtl.css
│ │ ├── bootstrap-reboot.rtl.css.map
│ │ ├── bootstrap-reboot.rtl.min.css
│ │ ├── bootstrap-reboot.rtl.min.css.map
│ │ ├── bootstrap-utilities.css
│ │ ├── bootstrap-utilities.css.map
│ │ ├── bootstrap-utilities.min.css
│ │ ├── bootstrap-utilities.min.css.map
│ │ ├── bootstrap-utilities.rtl.css
│ │ ├── bootstrap-utilities.rtl.css.map
│ │ ├── bootstrap-utilities.rtl.min.css
│ │ ├── bootstrap-utilities.rtl.min.css.map
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ ├── jquery-3.6.0.min.js
│ └── js
│ │ ├── bootstrap.bundle.js
│ │ ├── bootstrap.bundle.js.map
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.bundle.min.js.map
│ │ ├── bootstrap.esm.js
│ │ ├── bootstrap.esm.js.map
│ │ ├── bootstrap.esm.min.js
│ │ ├── bootstrap.esm.min.js.map
│ │ ├── bootstrap.js
│ │ ├── bootstrap.js.map
│ │ ├── bootstrap.min.js
│ │ └── bootstrap.min.js.map
│ └── index.html
├── 12_Filters
├── 12_Filters.iml
├── src
│ └── lk
│ │ ├── filter
│ │ └── CustomerFilter.java
│ │ └── servlet
│ │ └── CustomerServlet.java
└── web
│ └── WEB-INF
│ └── web.xml
├── README.md
└── images
├── 01 Hello Servlet.jpg
├── 02 Hello Customer.jpg
├── 03 Hello Servlet.jpg
├── 04 Send Request customer and hello page to go.jpg
├── 05 Input ID and Name.jpg
├── 06 Input data output.png
├── 07 Customer doPost Called.jpg
├── 08 Customer doPut Calledjpg.jpg
├── 09 Customer doDelete Called.jpg
├── 10 lifeCycle.jpg
└── 11 Simple Pos Using JSP.jpg
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Datasource local storage ignored files
5 | /../../../../../:\MyWorksSpace\JavaEE Projects\First_JavaEE_Project\.idea/dataSources/
6 | /dataSources.local.xml
7 | # Editor-based HTTP Client requests
8 | /httpRequests/
9 |
--------------------------------------------------------------------------------
/.idea/artifacts/10_InCP.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | $PROJECT_DIR$/out/artifacts/10_InCP
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/artifacts/12_Filters.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | $PROJECT_DIR$/out/artifacts/12_Filters
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/artifacts/dbcp09.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | $PROJECT_DIR$/out/artifacts/dbcp09
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.idea/dataSources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mysql.8
6 | true
7 | com.mysql.cj.jdbc.Driver
8 | jdbc:mysql://localhost:3306/simplepos
9 | $ProjectFileDir$
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/libraries/JSONP.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Java_EE_6_Java_EE_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/libraries/commons_dbcp2_2_8_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/mysql_connector_java_8_0_23.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/sqldialects.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/webContexts.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/01_Hello_Servlet/01_Hello_Servlet.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/01_Hello_Servlet/src/lk/Customer.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 | @WebServlet(urlPatterns = "/customer")
11 | public class Customer extends HttpServlet {
12 |
13 | @Override
14 | protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
15 | response.getWriter().write("Customer doGet Called");
16 | }
17 |
18 | @Override
19 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
20 | resp.getWriter().write("Customer doPost Called");
21 | }
22 |
23 | @Override
24 | protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
25 | resp.getWriter().write("Customer doPut Called");
26 | }
27 |
28 | @Override
29 | protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
30 | resp.getWriter().write("Customer doDelete Called");
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/01_Hello_Servlet/src/lk/HelloServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 | @WebServlet(urlPatterns = "/hello")
11 | public class HelloServlet extends HttpServlet {
12 |
13 | @Override
14 | protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
15 | response.getWriter().write("Hello doGet Called");
16 | }
17 |
18 | @Override
19 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
20 | resp.getWriter().write("Hello doPost Called");
21 | }
22 | @Override
23 | protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
24 | resp.getWriter().write("Hello doPut Called");
25 | }
26 |
27 | @Override
28 | protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
29 | resp.getWriter().write("Hello doDelete Called");
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/01_Hello_Servlet/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/01_Hello_Servlet/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Hello Servlet
7 |
8 |
9 | Hello Servlet
10 |
11 | Send Request to Hello Servlet
12 | Send Request to Customer Servlet
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/02_Life_Cycle/02_Life_Cycle.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/02_Life_Cycle/src/lk/Customer.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletConfig;
4 | import javax.servlet.ServletException;
5 | import javax.servlet.annotation.WebServlet;
6 | import javax.servlet.http.HttpServlet;
7 | import javax.servlet.http.HttpServletRequest;
8 | import javax.servlet.http.HttpServletResponse;
9 | import java.io.IOException;
10 | import java.io.PrintWriter;
11 |
12 | //@WebServlet(name = "MyServlet",urlPatterns = "/myServlet")
13 | public class Customer extends HttpServlet {
14 |
15 | public Customer(){
16 | System.out.println("Created Customer Object (Instantiated)");
17 | }
18 |
19 | @Override
20 | public void init(ServletConfig config) throws ServletException {
21 | System.out.println("Init Customer");
22 | }
23 |
24 | @Override
25 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
26 | PrintWriter printWriter = resp.getWriter();
27 | printWriter.write("Customer doGet");
28 | printWriter.close();
29 | }
30 |
31 | @Override
32 | public void destroy() {
33 | System.out.println("Customer Destroy");
34 | }
35 |
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/02_Life_Cycle/src/lk/MyServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletConfig;
4 | import javax.servlet.ServletException;
5 | import javax.servlet.annotation.WebServlet;
6 | import javax.servlet.http.HttpServlet;
7 | import javax.servlet.http.HttpServletRequest;
8 | import javax.servlet.http.HttpServletResponse;
9 | import java.io.IOException;
10 | import java.io.PrintWriter;
11 |
12 | @WebServlet(name = "MyServlet",urlPatterns = "/myServlet")
13 | public class MyServlet extends HttpServlet {
14 |
15 | public MyServlet(){
16 | System.out.println("Created MyServlet Object (Instantiated)");
17 | }
18 |
19 | @Override
20 | public void init(ServletConfig config) throws ServletException {
21 | System.out.println("Init Servlet");
22 | }
23 |
24 | @Override
25 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
26 | System.out.println("My Servlet doGet Called");
27 | try (PrintWriter writer = resp.getWriter()) {
28 | writer.write("My Servlet Called");
29 | } catch (IOException e) {
30 | }
31 | }
32 |
33 | @Override
34 | public void destroy() {
35 | System.out.println("My Servlet Destroy");
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/02_Life_Cycle/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Customer
19 | lk.Customer
20 |
21 |
22 | Customer
23 | /customer
24 |
25 |
26 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/03_Servlet_Mapping.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/src/lk/DefaultMapping.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 |
11 | //default mapping
12 | //http://localhost:8080/mapping/ No
13 | //http://localhost:8080/mapping NO
14 | //http://localhost:8080/mapping/abcd YES
15 | //http://localhost:8080/mapping/abcd/ndjandjsand YES
16 |
17 | @WebServlet(urlPatterns = "/")
18 | public class DefaultMapping extends HttpServlet {
19 | @Override
20 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21 | System.out.println("Default Mapping Servlet Invoked");
22 | resp.getWriter().write("Default Mapping Servlet Invoked
");
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/src/lk/EmptyStringMapping.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 |
11 | //Empty String Mapping
12 | //http://localhost:8080/mapping/ YES
13 | //http://localhost:8080/mapping YES
14 | //http://localhost:8080/mapping/abcd NO
15 | //http://localhost:8080/mapping/abcd/ndjandjsand NO
16 |
17 |
18 | @WebServlet(urlPatterns = "")
19 | public class EmptyStringMapping extends HttpServlet {
20 | @Override
21 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
22 | System.out.println("Empty String Mapping Was Invoked");
23 | resp.getWriter().write("Empty String Mapping Was Invoked
");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/src/lk/FileExtensionMapping.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 |
11 | //File Extension Mapping
12 | //http://localhost:8080/mapping/ NO
13 | //http://localhost:8080/mapping NO
14 | //http://localhost:8080/mapping/abcd.php YES
15 | //http://localhost:8080/mapping/abcd/ndjandjsand.php YES
16 |
17 |
18 | @WebServlet(urlPatterns = "*.php")
19 | public class FileExtensionMapping extends HttpServlet {
20 | @Override
21 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
22 | System.out.println("File Extension Mapping Was Called");
23 | resp.getWriter().write("File Extension Mapping Was Called
");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/src/lk/PathMapping.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 |
11 | //Path Mapping or Exact Mapping
12 | //http://localhost:8080/mapping/ NO
13 | //http://localhost:8080/mapping NO
14 | //http://localhost:8080/mapping/path YES
15 | //http://localhost:8080/mapping/abcd/ndjandjsand/path NO
16 |
17 | @WebServlet(urlPatterns = "/path")
18 | public class PathMapping extends HttpServlet {
19 |
20 | @Override
21 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
22 | System.out.println("Path Servlet DO GET Invoked");
23 | resp.getWriter().write("Path Servlet DO GET Invoked
");
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/src/lk/WildCardMapping.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 |
11 | //Wild Card Mapping
12 | //http://localhost:8080/mapping/ NO
13 | //http://localhost:8080/mapping NO
14 | //http://localhost:8080/mapping/item/a/b/c/d YES
15 | //http://localhost:8080/mapping/abcd/item/1/2/3 NO
16 |
17 | @WebServlet(urlPatterns = "/items/*")
18 | public class WildCardMapping extends HttpServlet {
19 | @Override
20 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21 | System.out.println("Wild Card Mapping Was Invoked");
22 | resp.getWriter().write("Wild Card Mapping Was Invoked
");
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/03_Servlet_Mapping/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/04_Simple_Pos/04_Simple_Pos.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/04_Simple_Pos/src/lk/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 | import java.io.PrintWriter;
10 | import java.sql.*;
11 |
12 | @WebServlet(urlPatterns = "/customer")
13 | public class CustomerServlet extends HttpServlet {
14 |
15 | @Override
16 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
17 |
18 | // String pathInfo = req.getPathInfo();
19 | // String method = req.getMethod();
20 | // String contextPath = req.getContextPath();
21 | // String queryString = req.getQueryString();
22 | // StringBuffer requestURL = req.getRequestURL();
23 | // String servletPath = req.getServletPath();
24 | //
25 | // System.out.println("Path InFo" + pathInfo);
26 | // System.out.println("Method " + method);
27 | // System.out.println("Context Path " + contextPath);
28 | // System.out.println("Query String " + queryString);
29 | // System.out.println("Request URL " + requestURL);
30 | // System.out.println("Servlet Path " + servletPath);
31 |
32 | try {
33 | Class.forName("com.mysql.cj.jdbc.Driver");
34 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
35 | PreparedStatement pstm = connection.prepareStatement("SELECT * FROM customer");
36 | ResultSet rst = pstm.executeQuery();
37 |
38 | resp.setContentType("text/html");
39 | //response generate
40 | PrintWriter writer = resp.getWriter();
41 | writer.write("");
42 | writer.write("");
44 | writer.write("");
45 | writer.write("ID | Name | Address | Salary | ");
46 | writer.write("
");
47 | writer.write("");
48 | writer.write("");
49 | while (rst.next()) {
50 | String id = rst.getString(1);
51 | String name = rst.getString(2);
52 | String address = rst.getString(3);
53 | String salary = rst.getString(4);
54 |
55 | writer.write("" + id + " | " + name + " | " + address + " | " + salary + " |
");
56 | }
57 |
58 | writer.write("");
59 | writer.write("
");
60 | writer.close();
61 |
62 | } catch (ClassNotFoundException e) {
63 | } catch (SQLException throwables) {
64 | }
65 | }
66 |
67 | @Override
68 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
69 | //gather the information from the request
70 | String id = req.getParameter("id");
71 | String name = req.getParameter("name");
72 | String address = req.getParameter("address");
73 | String salary = req.getParameter("salary");
74 |
75 |
76 | try {
77 | Class.forName("com.mysql.cj.jdbc.Driver");
78 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
79 | PreparedStatement pstm = connection.prepareStatement("INSERT INTO customer values(?,?,?,?)");
80 | pstm.setObject(1, id);
81 | pstm.setObject(2, name);
82 | pstm.setObject(3, address);
83 | pstm.setObject(4, salary);
84 | PrintWriter writer = resp.getWriter();
85 | int i = pstm.executeUpdate();
86 | if (i > 0) {
87 | writer.write("Customer Saved");
88 | } else {
89 | writer.write("Customer Not Saved");
90 | }
91 | writer.close();
92 |
93 | } catch (ClassNotFoundException e) {
94 | } catch (SQLException throwables) {
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/04_Simple_Pos/src/lk/CustomerServlet2.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 | import java.sql.*;
10 |
11 | @WebServlet(urlPatterns = "/customer2")
12 | public class CustomerServlet2 extends HttpServlet {
13 |
14 | @Override
15 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
16 |
17 | try {
18 | Class.forName("com.mysql.cj.jdbc.Driver");
19 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
20 | PreparedStatement pstm = connection.prepareStatement("SELECT * FROM customer");
21 | ResultSet rst = pstm.executeQuery();
22 |
23 | req.getServletContext().setAttribute("rst", rst);
24 |
25 | resp.sendRedirect("index.jsp");
26 |
27 | } catch (ClassNotFoundException e) {
28 | } catch (SQLException throwables) {
29 | }
30 |
31 | }
32 |
33 | @Override
34 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
35 | //gather the information from the request
36 | String id = req.getParameter("id");
37 | String name = req.getParameter("name");
38 | String address = req.getParameter("address");
39 | String salary = req.getParameter("salary");
40 |
41 |
42 | try {
43 | Class.forName("com.mysql.cj.jdbc.Driver");
44 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
45 | PreparedStatement pstm = connection.prepareStatement("insert into Customer values(?,?,?,?)");
46 | pstm.setObject(1, id);
47 | pstm.setObject(2, name);
48 | pstm.setObject(3, address);
49 | pstm.setObject(4, salary);
50 | int i = pstm.executeUpdate();
51 |
52 |
53 | resp.sendRedirect("customer2");
54 | } catch (ClassNotFoundException e) {
55 | } catch (SQLException throwables) {
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/04_Simple_Pos/src/sql/simplepos.sql:
--------------------------------------------------------------------------------
1 | DROP DATABASE pos;
2 | CREATE DATABASE pos;
3 | USE pos;
4 | CREATE TABLE customer(
5 | id varchar(5),
6 | name varchar(25),
7 | address varchar(25),
8 | salary varchar(25),
9 | CONSTRAINT PRIMARY KEY (id)
10 | );
11 | SELECT * FROM customer;
--------------------------------------------------------------------------------
/04_Simple_Pos/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/04_Simple_Pos/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/04_Simple_Pos/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/04_Simple_Pos/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/04_Simple_Pos/web/customer.jsp:
--------------------------------------------------------------------------------
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 |
3 |
4 | Customer View
5 |
6 |
7 | <%--scriplet--%>
8 | <%
9 | String id = "C001";
10 | String name = "Dasun";
11 | String address = "Galle";
12 | double salary = 10000;
13 | %>
14 |
15 | <%--declaration--%>
16 | <%! int age=10;%>
17 |
18 |
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 | ID |
29 | Name |
30 | Address |
31 | Salary |
32 |
33 |
34 |
35 |
36 | <%-- expression--%>
37 | <%=id%> |
38 | <%=name%> |
39 | <%=address%> |
40 | <%=salary%> |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | <%--<%%> scriplet
55 | <%=%> expression
56 | <%!%> declaration--%>
57 |
--------------------------------------------------------------------------------
/04_Simple_Pos/web/index.jsp:
--------------------------------------------------------------------------------
1 | <%@ page import="java.sql.ResultSet" %>
2 |
3 | <%@ page contentType="text/html;charset=UTF-8" language="java" %>
4 |
5 |
6 | Customer View
7 |
8 |
9 |
10 |
11 |
14 |
15 |
38 |
39 |
40 |
41 |
42 | ID |
43 | Name |
44 | Address |
45 | Salary |
46 |
47 |
48 |
49 | <%
50 | ResultSet rst = (ResultSet) request.getServletContext().getAttribute("rst");
51 | if (rst!=null){
52 | while (rst.next()) {
53 | String id = rst.getString(1);
54 | String name = rst.getString(2);
55 | String address = rst.getString(3);
56 | String salary = rst.getString(4);
57 | %>
58 |
59 | <%=id%> |
60 | <%=name%> |
61 | <%=address%> |
62 | <%=salary%> |
63 |
64 | <%
65 | }
66 | }
67 | %>
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/04_Simple_Pos/web/index2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple POS
6 |
7 |
8 |
9 |
10 |
11 |
12 | Customer Manage
13 |
14 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/05_Ajax/05_Ajax.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/05_Ajax/db/db.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": "C001",
4 | "name": "Dasun",
5 | "address": "Galle",
6 | "salary": 1000
7 | },
8 | {
9 | "id": "C002",
10 | "name": "Ramal",
11 | "address": "Panadura",
12 | "salary": 2000
13 | },
14 | {
15 | "id": "C003",
16 | "name": "Ramindu",
17 | "address": "Panadura",
18 | "salary": 20000
19 | }
20 | ]
21 |
--------------------------------------------------------------------------------
/05_Ajax/db/db.txt:
--------------------------------------------------------------------------------
1 | C001 Dasun Galle 2020d
2 |
--------------------------------------------------------------------------------
/05_Ajax/db/db.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | C001
4 | Dasun
5 | Galle
6 | 10000
7 |
8 |
9 | C002
10 | Ramal
11 | Panadura
12 | 2000
13 |
14 |
15 | C003
16 | Chamal
17 | Galle
18 | 1000
19 |
20 |
21 |
--------------------------------------------------------------------------------
/05_Ajax/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AJAX
6 |
7 |
8 |
9 |
12 |
13 |
14 |
38 |
39 |
40 |
41 |
42 | ID |
43 | Name |
44 | Address |
45 | Salary |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
119 |
120 |
--------------------------------------------------------------------------------
/05_Ajax/index2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AJAX With Jquery
6 |
7 |
8 |
9 |
12 |
13 |
14 |
41 |
42 |
43 |
44 |
45 | ID |
46 | Name |
47 | Address |
48 | Salary |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/06_Timers/06_Timers.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/06_Timers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Timers
6 |
7 |
8 | Async Web APIs in JS (non blocking)
9 |
10 |
11 |
12 | - AJAX
13 | - Events
14 | - Timers
15 |
16 |
17 |
18 |
19 |
20 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/07_POS_With_AJAX/07_POS_With_AJAX.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/07_POS_With_AJAX/src/lk/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 | import java.io.PrintWriter;
10 | import java.io.Writer;
11 | import java.sql.*;
12 |
13 |
14 | @WebServlet(urlPatterns = "/customer")
15 | public class CustomerServlet extends HttpServlet {
16 |
17 | @Override
18 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
19 | try {
20 | Class.forName("com.mysql.cj.jdbc.Driver");
21 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
22 | PreparedStatement pstm = connection.prepareStatement("select * from Customer");
23 | ResultSet rst = pstm.executeQuery();
24 | PrintWriter writer = resp.getWriter();
25 | resp.setContentType("application/json");
26 |
27 | String json = "[";
28 | while (rst.next()) {
29 | String id = rst.getString(1);
30 | String name = rst.getString(2);
31 | String address = rst.getString(3);
32 | String salary = rst.getString(4);
33 | json += "{\"id\":\"" + id + "\",\"name\":\"" + name + "\",\"address\":\"" + address + "\",\"salary\":" + salary + "},";
34 | }
35 | json = json.substring(0, json.length() - 1);
36 | json += "]";
37 | writer.write(json);
38 | writer.close();
39 | } catch (ClassNotFoundException e) {
40 |
41 | } catch (SQLException throwables) {
42 | }
43 | }
44 |
45 | @Override
46 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
47 | String id = req.getParameter("id");
48 | String name = req.getParameter("name");
49 | String address = req.getParameter("address");
50 | String salary = req.getParameter("salary");
51 |
52 | try {
53 | Class.forName("com.mysql.cj.jdbc.Driver");
54 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
55 | PreparedStatement pstm = connection.prepareStatement("insert into Customer values(?,?,?,?)");
56 | pstm.setObject(1, id);
57 | pstm.setObject(2, name);
58 | pstm.setObject(3, address);
59 | pstm.setObject(4, salary);
60 | int i = pstm.executeUpdate();
61 |
62 | PrintWriter writer = resp.getWriter();
63 | resp.setContentType("application/json");
64 | if (i > 0) {
65 | writer.write("{\"operation\":\"success\"}");
66 | }
67 | writer.close();
68 | } catch (ClassNotFoundException e) {
69 |
70 | } catch (SQLException throwables) {
71 |
72 | }
73 |
74 |
75 | }
76 |
77 | @Override
78 | protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
79 |
80 | }
81 |
82 |
83 | @Override
84 | protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
85 |
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/07_POS_With_AJAX/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/07_POS_With_AJAX/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/07_POS_With_AJAX/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/07_POS_With_AJAX/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/07_POS_With_AJAX/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple POS
6 |
7 |
8 |
9 |
10 |
11 |
12 | Customer Manage
13 |
14 |
15 |
39 |
40 |
41 |
42 |
43 | ID |
44 | Name |
45 | Address |
46 | Salary |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/08_JSONP/08_JSONP.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/08_JSONP/src/lk/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.json.*;
4 | import javax.servlet.ServletException;
5 | import javax.servlet.annotation.WebServlet;
6 | import javax.servlet.http.HttpServlet;
7 | import javax.servlet.http.HttpServletRequest;
8 | import javax.servlet.http.HttpServletResponse;
9 | import java.io.IOException;
10 | import java.io.PrintWriter;
11 | import java.sql.*;
12 |
13 |
14 | @WebServlet(urlPatterns = "/customer")
15 | public class CustomerServlet extends HttpServlet {
16 |
17 | @Override
18 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
19 | try {
20 | Class.forName("com.mysql.cj.jdbc.Driver");
21 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
22 | PreparedStatement pstm = connection.prepareStatement("select * from Customer");
23 | ResultSet rst = pstm.executeQuery();
24 | PrintWriter writer = resp.getWriter();
25 | resp.setContentType("application/json");
26 |
27 | JsonArrayBuilder allCustomers = Json.createArrayBuilder();
28 |
29 | while (rst.next()) {
30 | String id = rst.getString(1);
31 | String name = rst.getString(2);
32 | String address = rst.getString(3);
33 | String salary = rst.getString(4);
34 |
35 | JsonObjectBuilder customer = Json.createObjectBuilder();
36 | customer.add("id",id);
37 | customer.add("name",name);
38 | customer.add("address",address);
39 | customer.add("salary",salary);
40 | allCustomers.add(customer.build());
41 | }
42 | writer.print(allCustomers.build());
43 | writer.close();
44 | } catch (ClassNotFoundException e) {
45 |
46 | } catch (SQLException throwables) {
47 | }
48 | }
49 |
50 | @Override
51 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
52 | String id = req.getParameter("id");
53 | String name = req.getParameter("name");
54 | String address = req.getParameter("address");
55 | String salary = req.getParameter("salary");
56 |
57 | try {
58 | Class.forName("com.mysql.cj.jdbc.Driver");
59 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
60 | PreparedStatement pstm = connection.prepareStatement("insert into Customer values(?,?,?,?)");
61 | pstm.setObject(1, id);
62 | pstm.setObject(2, name);
63 | pstm.setObject(3, address);
64 | pstm.setObject(4, salary);
65 | int i = pstm.executeUpdate();
66 |
67 | PrintWriter writer = resp.getWriter();
68 | resp.setContentType("application/json");
69 | if (i > 0) {
70 | writer.write("{\"operation\":\"success\"}");
71 | }
72 | writer.close();
73 | } catch (ClassNotFoundException e) {
74 |
75 | } catch (SQLException throwables) {
76 |
77 | }
78 |
79 |
80 | }
81 |
82 | @Override
83 | protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
84 | JsonReader jsonReader = Json.createReader(req.getReader());
85 | JsonObject customer = jsonReader.readObject();
86 | String id = req.getParameter("id");
87 | String name = req.getParameter("name");
88 | String address = req.getParameter("address");
89 | String salary = req.getParameter("salary");
90 |
91 | try {
92 | Class.forName("com.mysql.cj.jdbc.Driver");
93 | Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/pos", "root", "1023");
94 | PreparedStatement pstm = connection.prepareStatement("UPDATE customer set name=?,address=?,salary=? WHERE id=?");
95 | pstm.setObject(1,name);
96 | pstm.setObject(2,address);
97 | pstm.setObject(3,salary);
98 | pstm.setObject(4,id);
99 | int i = pstm.executeUpdate();
100 | PrintWriter writer = resp.getWriter();
101 |
102 | if(i>0){
103 | writer.write("Customer Updated");
104 | writer.write(id);
105 | writer.write(name);
106 | writer.write(address);
107 | writer.write(salary);
108 | }
109 | writer.close();
110 |
111 | } catch (ClassNotFoundException e) {
112 |
113 | } catch (SQLException throwables) {
114 | }
115 | }
116 |
117 |
118 | @Override
119 | protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
120 | // JsonReader jsonReader =
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/08_JSONP/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/08_JSONP/web/assests/css/bootstrap-reboot.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-left: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-left: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr /* rtl:ignore */;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: left;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: left;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: left;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | /* rtl:raw:
381 | [type="tel"],
382 | [type="url"],
383 | [type="email"],
384 | [type="number"] {
385 | direction: ltr;
386 | }
387 | */
388 | ::-webkit-search-decoration {
389 | -webkit-appearance: none;
390 | }
391 |
392 | ::-webkit-color-swatch-wrapper {
393 | padding: 0;
394 | }
395 |
396 | ::file-selector-button {
397 | font: inherit;
398 | }
399 |
400 | ::-webkit-file-upload-button {
401 | font: inherit;
402 | -webkit-appearance: button;
403 | }
404 |
405 | output {
406 | display: inline-block;
407 | }
408 |
409 | iframe {
410 | border: 0;
411 | }
412 |
413 | summary {
414 | display: list-item;
415 | cursor: pointer;
416 | }
417 |
418 | progress {
419 | vertical-align: baseline;
420 | }
421 |
422 | [hidden] {
423 | display: none !important;
424 | }
425 |
426 | /*# sourceMappingURL=bootstrap-reboot.css.map */
--------------------------------------------------------------------------------
/08_JSONP/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/08_JSONP/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/08_JSONP/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/08_JSONP/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple POS
6 |
7 |
8 |
9 |
10 |
11 |
12 | Customer Manage
13 |
14 |
15 |
39 |
40 |
41 |
42 |
43 | ID |
44 | Name |
45 | Address |
46 | Salary |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/09_DBCP/09_DBCP.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/09_DBCP/src/lk/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import org.apache.commons.dbcp2.BasicDataSource;
4 | import javax.json.*;
5 | import javax.servlet.ServletException;
6 | import javax.servlet.annotation.WebServlet;
7 | import javax.servlet.http.HttpServlet;
8 | import javax.servlet.http.HttpServletRequest;
9 | import javax.servlet.http.HttpServletResponse;
10 | import java.io.IOException;
11 | import java.io.PrintWriter;
12 | import java.sql.*;
13 |
14 |
15 | @WebServlet(urlPatterns = "/customer")
16 | public class CustomerServlet extends HttpServlet {
17 |
18 | @Override
19 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
20 | try {
21 | BasicDataSource ds = (BasicDataSource) getServletContext().getAttribute("ds");
22 | Connection connection = ds.getConnection();
23 |
24 | PreparedStatement pstm = connection.prepareStatement("SELECT * FROM Customer");
25 | ResultSet rst = pstm.executeQuery();
26 | PrintWriter writer = resp.getWriter();
27 | resp.setContentType("application/json");
28 |
29 | //for creating a json array
30 | JsonArrayBuilder allCustomers = Json.createArrayBuilder();
31 |
32 | while (rst.next()) {
33 | String id = rst.getString(1);
34 | String name = rst.getString(2);
35 | String address = rst.getString(3);
36 | String salary = rst.getString(4);
37 |
38 | //creating a json object
39 | JsonObjectBuilder customer = Json.createObjectBuilder();
40 | customer.add("id", id);
41 | customer.add("name", name);
42 | customer.add("address", address);
43 | customer.add("salary", salary);
44 | allCustomers.add(customer.build());
45 | }
46 | connection.close();
47 | writer.print(allCustomers.build());
48 | writer.close();
49 | } catch (SQLException throwables) {
50 | }
51 | }
52 |
53 | @Override
54 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
55 |
56 | String id = req.getParameter("id");
57 | String name = req.getParameter("name");
58 | String address = req.getParameter("address");
59 | String salary = req.getParameter("salary");
60 |
61 | try {
62 | BasicDataSource ds = (BasicDataSource) getServletContext().getAttribute("ds");
63 | Connection connection = ds.getConnection();
64 | PreparedStatement pstm = connection.prepareStatement("INSERT INTO Customer VALUES (?,?,?,?)");
65 | pstm.setObject(1, id);
66 | pstm.setObject(2, name);
67 | pstm.setObject(3, address);
68 | pstm.setObject(4, salary);
69 | int i = pstm.executeUpdate();
70 |
71 | PrintWriter writer = resp.getWriter();
72 | resp.setContentType("application/json");
73 | if (i > 0) {
74 | JsonObjectBuilder response = Json.createObjectBuilder();
75 | response.add("operation", "success");
76 | writer.print(response.build());
77 | }
78 | connection.close();
79 | writer.close();
80 | } catch (SQLException throwables) {
81 | }
82 | }
83 |
84 | @Override
85 | protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
86 | JsonReader reader = Json.createReader(req.getReader());
87 | JsonObject customer = reader.readObject();
88 | String id = customer.getString("id");
89 | String name = customer.getString("name");
90 | String address = customer.getString("address");
91 | String salary = customer.getString("salary");
92 |
93 | try {
94 | BasicDataSource ds = (BasicDataSource) getServletContext().getAttribute("ds");
95 | Connection connection = ds.getConnection();
96 | PreparedStatement pstm = connection.prepareStatement("UPDATE Customer SET name=?,address=?,salary=? where id=?");
97 | pstm.setObject(1, name);
98 | pstm.setObject(2, address);
99 | pstm.setObject(3, salary);
100 | pstm.setObject(4, id);
101 | int i = pstm.executeUpdate();
102 | PrintWriter writer = resp.getWriter();
103 | resp.setContentType("application/json");
104 | if (i > 0) {
105 | JsonObjectBuilder response = Json.createObjectBuilder();
106 | response.add("operation", "success");
107 | writer.print(response.build());
108 | }
109 | writer.close();
110 | connection.close();
111 | } catch (SQLException throwables) {
112 | throwables.printStackTrace();
113 | }
114 | }
115 |
116 | @Override
117 | protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
118 | String id = req.getParameter("id");
119 | try {
120 | BasicDataSource ds = (BasicDataSource) getServletContext().getAttribute("ds");
121 | Connection connection = ds.getConnection();
122 | PreparedStatement pstm = connection.prepareStatement("DELETE FROM Customer WHERE id=?");
123 | pstm.setObject(1, id);
124 | int i = pstm.executeUpdate();
125 | PrintWriter writer = resp.getWriter();
126 | resp.setContentType("application/json");
127 | if (i > 0) {
128 | JsonObjectBuilder response = Json.createObjectBuilder();
129 | response.add("operation", "success");
130 | writer.print(response.build());
131 | }
132 | writer.close();
133 | connection.close();
134 | } catch (SQLException throwables) {
135 | throwables.printStackTrace();
136 | }
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/09_DBCP/src/lk/Listner.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import org.apache.commons.dbcp2.BasicDataSource;
4 | import javax.servlet.ServletContextEvent;
5 | import javax.servlet.ServletContextListener;
6 |
7 | public class Listner implements ServletContextListener {
8 |
9 | @Override
10 | public void contextInitialized(ServletContextEvent servletContextEvent) {
11 | System.out.println("Application Servlet Context Was Created");
12 | BasicDataSource dataSource = new BasicDataSource();
13 | dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
14 | dataSource.setUrl("jdbc:mysql://localhost:3306/kade");
15 | dataSource.setUsername("root");
16 | dataSource.setPassword("1023");
17 | dataSource.setMaxTotal(2);
18 | dataSource.setInitialSize(2);
19 | servletContextEvent.getServletContext().setAttribute("ds", dataSource);
20 | }
21 |
22 | @Override
23 | public void contextDestroyed(ServletContextEvent servletContextEvent) {
24 | System.out.println("Application Servlet Context Was Destroyed");
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/09_DBCP/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/09_DBCP/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/09_DBCP/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/09_DBCP/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/09_DBCP/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple POS
6 |
7 |
8 |
9 |
10 |
11 |
12 | Customer Manage
13 |
14 |
15 |
41 |
42 |
43 |
44 |
45 | ID |
46 | Name |
47 | Address |
48 | Salary |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/10_InCP/10_InCP.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/10_InCP/src/lk/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 | import javax.annotation.Resource;
3 | import javax.json.*;
4 | import javax.servlet.ServletException;
5 | import javax.servlet.annotation.WebServlet;
6 | import javax.servlet.http.HttpServlet;
7 | import javax.servlet.http.HttpServletRequest;
8 | import javax.servlet.http.HttpServletResponse;
9 | import javax.sql.DataSource;
10 | import java.io.IOException;
11 | import java.sql.Connection;
12 | import java.sql.PreparedStatement;
13 | import java.sql.ResultSet;
14 | import java.sql.SQLException;
15 |
16 | @WebServlet(urlPatterns = "/customer")
17 | public class CustomerServlet extends HttpServlet {
18 |
19 | @Resource(name = "java:comp/env/jdbc/pool")
20 | DataSource ds;
21 |
22 | @Override
23 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
24 |
25 | String option = req.getParameter("option");
26 | switch (option) {
27 | case "search":
28 | break;
29 | case "getAll":
30 |
31 | }
32 |
33 | try {
34 | try (Connection connection = ds.getConnection()) {
35 | PreparedStatement pstm = connection.prepareStatement("select * from Customer");
36 | ResultSet rst = pstm.executeQuery();
37 | JsonArrayBuilder allCustomers = Json.createArrayBuilder();
38 | while (rst.next()) {
39 | JsonObjectBuilder customer = Json.createObjectBuilder();
40 | customer.add("id", rst.getString(1));
41 | customer.add("name", rst.getString(2));
42 | customer.add("address", rst.getString(3));
43 | customer.add("salary", rst.getString(4));
44 | allCustomers.add(customer.build());
45 | }
46 |
47 | resp.getWriter().print(allCustomers.build());
48 | }
49 |
50 | } catch (SQLException throwables) {
51 | throwables.printStackTrace();
52 | }
53 | }
54 |
55 |
56 | @Override
57 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
58 | //how to read a json array from a request body using JSON P
59 | JsonReader reader = Json.createReader(req.getReader());
60 | JsonArray jsonArray = reader.readArray();
61 |
62 | /* for (int i = 0; i < jsonArray.size(); i++) {
63 | JsonObject jsonObject = jsonArray.getJsonObject(i);
64 | String id = jsonObject.getString("id");
65 | System.out.println(id);
66 | }*/
67 |
68 | for (JsonValue jsonObject : jsonArray) {
69 | JsonObject customer = jsonObject.asJsonObject();
70 | String id = customer.getString("id");
71 | String name = customer.getString("name");
72 | String address = customer.getString("address");
73 | String salary = customer.getString("salary");
74 | System.out.println(id + " " + name + " " + address + " " + salary);
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/10_InCP/web/META-INF/context.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/10_InCP/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/10_InCP/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/10_InCP/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/10_InCP/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/10_InCP/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple POS
6 |
7 |
8 |
9 |
10 |
11 |
12 | Customer Manage
13 |
14 |
15 |
41 |
42 |
43 |
44 |
45 | ID |
46 | Name |
47 | Address |
48 | Salary |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/11_FileUpload/11_FileUpload.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/11_FileUpload/src/lk/FileUploadServlet.java:
--------------------------------------------------------------------------------
1 | package lk;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.MultipartConfig;
5 | import javax.servlet.annotation.WebServlet;
6 | import javax.servlet.http.HttpServlet;
7 | import javax.servlet.http.HttpServletRequest;
8 | import javax.servlet.http.HttpServletResponse;
9 | import javax.servlet.http.Part;
10 | import java.io.File;
11 | import java.io.FileOutputStream;
12 | import java.io.IOException;
13 | import java.io.InputStream;
14 |
15 | @WebServlet(urlPatterns = "/up")
16 | @MultipartConfig
17 | public class FileUploadServlet extends HttpServlet {
18 |
19 | @Override
20 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21 | //Catch the file from the request
22 | Part uploadedFile = req.getPart("file");
23 | //Get the file name
24 | String submittedFileName = uploadedFile.getSubmittedFileName();
25 | //Select a place to upload
26 | String realPath = getServletContext().getRealPath("");
27 | //Get the input stream of the file
28 | InputStream inputStream = uploadedFile.getInputStream();
29 |
30 | //Create a new empty file to store the uploaded file
31 | File newFile = new File(realPath + File.separator + submittedFileName);
32 | newFile.createNewFile();
33 |
34 | //To write down the file
35 | FileOutputStream out = new FileOutputStream(newFile);
36 |
37 | //Read the input stream and write it down to the newly created file
38 | int read;
39 | byte[] buffer = new byte[1024];
40 | while ((read = inputStream.read(buffer, 0, buffer.length)) != -1) {
41 | out.write(buffer, 0, buffer.length);
42 | // resp.getOutputStream().write(buffer, 0, buffer.length);
43 | }
44 | out.close();
45 |
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/11_FileUpload/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/11_FileUpload/web/assests/css/bootstrap-reboot.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */
--------------------------------------------------------------------------------
/11_FileUpload/web/assests/css/bootstrap-reboot.rtl.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 | *,
9 | *::before,
10 | *::after {
11 | box-sizing: border-box;
12 | }
13 |
14 | @media (prefers-reduced-motion: no-preference) {
15 | :root {
16 | scroll-behavior: smooth;
17 | }
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23 | font-size: 1rem;
24 | font-weight: 400;
25 | line-height: 1.5;
26 | color: #212529;
27 | background-color: #fff;
28 | -webkit-text-size-adjust: 100%;
29 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
30 | }
31 |
32 | hr {
33 | margin: 1rem 0;
34 | color: inherit;
35 | background-color: currentColor;
36 | border: 0;
37 | opacity: 0.25;
38 | }
39 |
40 | hr:not([size]) {
41 | height: 1px;
42 | }
43 |
44 | h6, h5, h4, h3, h2, h1 {
45 | margin-top: 0;
46 | margin-bottom: 0.5rem;
47 | font-weight: 500;
48 | line-height: 1.2;
49 | }
50 |
51 | h1 {
52 | font-size: calc(1.375rem + 1.5vw);
53 | }
54 | @media (min-width: 1200px) {
55 | h1 {
56 | font-size: 2.5rem;
57 | }
58 | }
59 |
60 | h2 {
61 | font-size: calc(1.325rem + 0.9vw);
62 | }
63 | @media (min-width: 1200px) {
64 | h2 {
65 | font-size: 2rem;
66 | }
67 | }
68 |
69 | h3 {
70 | font-size: calc(1.3rem + 0.6vw);
71 | }
72 | @media (min-width: 1200px) {
73 | h3 {
74 | font-size: 1.75rem;
75 | }
76 | }
77 |
78 | h4 {
79 | font-size: calc(1.275rem + 0.3vw);
80 | }
81 | @media (min-width: 1200px) {
82 | h4 {
83 | font-size: 1.5rem;
84 | }
85 | }
86 |
87 | h5 {
88 | font-size: 1.25rem;
89 | }
90 |
91 | h6 {
92 | font-size: 1rem;
93 | }
94 |
95 | p {
96 | margin-top: 0;
97 | margin-bottom: 1rem;
98 | }
99 |
100 | abbr[title],
101 | abbr[data-bs-original-title] {
102 | -webkit-text-decoration: underline dotted;
103 | text-decoration: underline dotted;
104 | cursor: help;
105 | -webkit-text-decoration-skip-ink: none;
106 | text-decoration-skip-ink: none;
107 | }
108 |
109 | address {
110 | margin-bottom: 1rem;
111 | font-style: normal;
112 | line-height: inherit;
113 | }
114 |
115 | ol,
116 | ul {
117 | padding-right: 2rem;
118 | }
119 |
120 | ol,
121 | ul,
122 | dl {
123 | margin-top: 0;
124 | margin-bottom: 1rem;
125 | }
126 |
127 | ol ol,
128 | ul ul,
129 | ol ul,
130 | ul ol {
131 | margin-bottom: 0;
132 | }
133 |
134 | dt {
135 | font-weight: 700;
136 | }
137 |
138 | dd {
139 | margin-bottom: 0.5rem;
140 | margin-right: 0;
141 | }
142 |
143 | blockquote {
144 | margin: 0 0 1rem;
145 | }
146 |
147 | b,
148 | strong {
149 | font-weight: bolder;
150 | }
151 |
152 | small {
153 | font-size: 0.875em;
154 | }
155 |
156 | mark {
157 | padding: 0.2em;
158 | background-color: #fcf8e3;
159 | }
160 |
161 | sub,
162 | sup {
163 | position: relative;
164 | font-size: 0.75em;
165 | line-height: 0;
166 | vertical-align: baseline;
167 | }
168 |
169 | sub {
170 | bottom: -0.25em;
171 | }
172 |
173 | sup {
174 | top: -0.5em;
175 | }
176 |
177 | a {
178 | color: #0d6efd;
179 | text-decoration: underline;
180 | }
181 | a:hover {
182 | color: #0a58ca;
183 | }
184 |
185 | a:not([href]):not([class]), a:not([href]):not([class]):hover {
186 | color: inherit;
187 | text-decoration: none;
188 | }
189 |
190 | pre,
191 | code,
192 | kbd,
193 | samp {
194 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
195 | font-size: 1em;
196 | direction: ltr ;
197 | unicode-bidi: bidi-override;
198 | }
199 |
200 | pre {
201 | display: block;
202 | margin-top: 0;
203 | margin-bottom: 1rem;
204 | overflow: auto;
205 | font-size: 0.875em;
206 | }
207 | pre code {
208 | font-size: inherit;
209 | color: inherit;
210 | word-break: normal;
211 | }
212 |
213 | code {
214 | font-size: 0.875em;
215 | color: #d63384;
216 | word-wrap: break-word;
217 | }
218 | a > code {
219 | color: inherit;
220 | }
221 |
222 | kbd {
223 | padding: 0.2rem 0.4rem;
224 | font-size: 0.875em;
225 | color: #fff;
226 | background-color: #212529;
227 | border-radius: 0.2rem;
228 | }
229 | kbd kbd {
230 | padding: 0;
231 | font-size: 1em;
232 | font-weight: 700;
233 | }
234 |
235 | figure {
236 | margin: 0 0 1rem;
237 | }
238 |
239 | img,
240 | svg {
241 | vertical-align: middle;
242 | }
243 |
244 | table {
245 | caption-side: bottom;
246 | border-collapse: collapse;
247 | }
248 |
249 | caption {
250 | padding-top: 0.5rem;
251 | padding-bottom: 0.5rem;
252 | color: #6c757d;
253 | text-align: right;
254 | }
255 |
256 | th {
257 | text-align: inherit;
258 | text-align: -webkit-match-parent;
259 | }
260 |
261 | thead,
262 | tbody,
263 | tfoot,
264 | tr,
265 | td,
266 | th {
267 | border-color: inherit;
268 | border-style: solid;
269 | border-width: 0;
270 | }
271 |
272 | label {
273 | display: inline-block;
274 | }
275 |
276 | button {
277 | border-radius: 0;
278 | }
279 |
280 | button:focus:not(:focus-visible) {
281 | outline: 0;
282 | }
283 |
284 | input,
285 | button,
286 | select,
287 | optgroup,
288 | textarea {
289 | margin: 0;
290 | font-family: inherit;
291 | font-size: inherit;
292 | line-height: inherit;
293 | }
294 |
295 | button,
296 | select {
297 | text-transform: none;
298 | }
299 |
300 | [role=button] {
301 | cursor: pointer;
302 | }
303 |
304 | select {
305 | word-wrap: normal;
306 | }
307 | select:disabled {
308 | opacity: 1;
309 | }
310 |
311 | [list]::-webkit-calendar-picker-indicator {
312 | display: none;
313 | }
314 |
315 | button,
316 | [type=button],
317 | [type=reset],
318 | [type=submit] {
319 | -webkit-appearance: button;
320 | }
321 | button:not(:disabled),
322 | [type=button]:not(:disabled),
323 | [type=reset]:not(:disabled),
324 | [type=submit]:not(:disabled) {
325 | cursor: pointer;
326 | }
327 |
328 | ::-moz-focus-inner {
329 | padding: 0;
330 | border-style: none;
331 | }
332 |
333 | textarea {
334 | resize: vertical;
335 | }
336 |
337 | fieldset {
338 | min-width: 0;
339 | padding: 0;
340 | margin: 0;
341 | border: 0;
342 | }
343 |
344 | legend {
345 | float: right;
346 | width: 100%;
347 | padding: 0;
348 | margin-bottom: 0.5rem;
349 | font-size: calc(1.275rem + 0.3vw);
350 | line-height: inherit;
351 | }
352 | @media (min-width: 1200px) {
353 | legend {
354 | font-size: 1.5rem;
355 | }
356 | }
357 | legend + * {
358 | clear: right;
359 | }
360 |
361 | ::-webkit-datetime-edit-fields-wrapper,
362 | ::-webkit-datetime-edit-text,
363 | ::-webkit-datetime-edit-minute,
364 | ::-webkit-datetime-edit-hour-field,
365 | ::-webkit-datetime-edit-day-field,
366 | ::-webkit-datetime-edit-month-field,
367 | ::-webkit-datetime-edit-year-field {
368 | padding: 0;
369 | }
370 |
371 | ::-webkit-inner-spin-button {
372 | height: auto;
373 | }
374 |
375 | [type=search] {
376 | outline-offset: -2px;
377 | -webkit-appearance: textfield;
378 | }
379 |
380 | [type="tel"],
381 | [type="url"],
382 | [type="email"],
383 | [type="number"] {
384 | direction: ltr;
385 | }
386 | ::-webkit-search-decoration {
387 | -webkit-appearance: none;
388 | }
389 |
390 | ::-webkit-color-swatch-wrapper {
391 | padding: 0;
392 | }
393 |
394 | ::file-selector-button {
395 | font: inherit;
396 | }
397 |
398 | ::-webkit-file-upload-button {
399 | font: inherit;
400 | -webkit-appearance: button;
401 | }
402 |
403 | output {
404 | display: inline-block;
405 | }
406 |
407 | iframe {
408 | border: 0;
409 | }
410 |
411 | summary {
412 | display: list-item;
413 | cursor: pointer;
414 | }
415 |
416 | progress {
417 | vertical-align: baseline;
418 | }
419 |
420 | [hidden] {
421 | display: none !important;
422 | }
423 | /*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
--------------------------------------------------------------------------------
/11_FileUpload/web/assests/css/bootstrap-reboot.rtl.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.0.0-beta3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
8 | /*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
--------------------------------------------------------------------------------
/11_FileUpload/web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | File Upload
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Upload a file Using Servlet
13 |
18 |
19 |
20 |
21 |
22 |
23 |
Send Ajax Request
24 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/12_Filters/12_Filters.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/12_Filters/src/lk/filter/CustomerFilter.java:
--------------------------------------------------------------------------------
1 | package lk.filter;
2 |
3 | import javax.servlet.*;
4 | import javax.servlet.annotation.WebFilter;
5 | import java.io.IOException;
6 |
7 | @WebFilter(urlPatterns = "/customer")
8 | public class CustomerFilter implements Filter {
9 | @Override
10 | public void init(FilterConfig filterConfig) throws ServletException {
11 | System.out.println("Customer Filter Initialized");
12 | }
13 |
14 | @Override
15 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
16 | // HttpServletResponse http= (HttpServletResponse) servletResponse;
17 | // http.sendRedirect("index.jsp");
18 |
19 | System.out.println("Customer Do Filter Called");
20 | servletRequest.setAttribute("x", "Institute");// add some new information to request object
21 |
22 | filterChain.doFilter(servletRequest, servletResponse);//forward request to servlet with request and response object
23 |
24 | //can modify response object if we want
25 | servletResponse.setContentType("application/json"); // add a response content type before sending the response
26 |
27 | }
28 |
29 | @Override
30 | public void destroy() {
31 | System.out.println("Customer Filter Destroyed");
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/12_Filters/src/lk/servlet/CustomerServlet.java:
--------------------------------------------------------------------------------
1 | package lk.servlet;
2 |
3 | import javax.servlet.ServletException;
4 | import javax.servlet.annotation.WebServlet;
5 | import javax.servlet.http.HttpServlet;
6 | import javax.servlet.http.HttpServletRequest;
7 | import javax.servlet.http.HttpServletResponse;
8 | import java.io.IOException;
9 |
10 | @WebServlet(urlPatterns = "/customer")
11 | public class CustomerServlet extends HttpServlet {
12 |
13 | @Override
14 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
15 | String x = (String) req.getAttribute("x");
16 | System.out.println("Customer Request Received : " + x);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/12_Filters/web/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # First_JavaEE_Project
2 |
3 | ## Hello Servlet
4 | 
5 |
6 | ## Hello Customer
7 | 
8 |
9 | ## Hello Servlet added Web Facets
10 | 
11 |
12 | ## Customer and Hello page link
13 | 
14 |
15 | ## Input Form
16 | 
17 |
18 | ## Input data view
19 | 
20 |
21 | ## Default doGet / Manually select doPost
22 | 
23 |
24 | ## doPut Called and doDelete Called
25 | 
26 |
27 | 
28 |
29 |
30 | ## Life Cycle
31 | 
32 |
33 | ##Simple POS Using JSP
34 | 
--------------------------------------------------------------------------------
/images/01 Hello Servlet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/01 Hello Servlet.jpg
--------------------------------------------------------------------------------
/images/02 Hello Customer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/02 Hello Customer.jpg
--------------------------------------------------------------------------------
/images/03 Hello Servlet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/03 Hello Servlet.jpg
--------------------------------------------------------------------------------
/images/04 Send Request customer and hello page to go.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/04 Send Request customer and hello page to go.jpg
--------------------------------------------------------------------------------
/images/05 Input ID and Name.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/05 Input ID and Name.jpg
--------------------------------------------------------------------------------
/images/06 Input data output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/06 Input data output.png
--------------------------------------------------------------------------------
/images/07 Customer doPost Called.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/07 Customer doPost Called.jpg
--------------------------------------------------------------------------------
/images/08 Customer doPut Calledjpg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/08 Customer doPut Calledjpg.jpg
--------------------------------------------------------------------------------
/images/09 Customer doDelete Called.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/09 Customer doDelete Called.jpg
--------------------------------------------------------------------------------
/images/10 lifeCycle.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/10 lifeCycle.jpg
--------------------------------------------------------------------------------
/images/11 Simple Pos Using JSP.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindula-Dilthushan/First_JavaEE_Project/d8789d12dc9a3e1ab9d06441709678d001e18328/images/11 Simple Pos Using JSP.jpg
--------------------------------------------------------------------------------