From 65c5535c7d6ef788d819b8c13ce03528be0b2def Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Sun, 27 Nov 2016 11:42:32 +0530 Subject: [PATCH 01/22] Added BAEL-425 Intro to Servets module named javax-servlets --- javax-servlets/pom.xml | 34 +++++++++++++++++++ .../src/main/java/com/root/FormServlet.java | 19 +++++++++++ .../test/java/com/root/FormServletTest.java | 34 +++++++++++++++++++ javax-servlets/web/WEB-INF/web.xml | 7 ++++ javax-servlets/web/index.jsp | 30 ++++++++++++++++ pom.xml | 1 + 6 files changed, 125 insertions(+) create mode 100644 javax-servlets/pom.xml create mode 100644 javax-servlets/src/main/java/com/root/FormServlet.java create mode 100644 javax-servlets/src/test/java/com/root/FormServletTest.java create mode 100644 javax-servlets/web/WEB-INF/web.xml create mode 100644 javax-servlets/web/index.jsp diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml new file mode 100644 index 0000000000..2d2e3a4b8a --- /dev/null +++ b/javax-servlets/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.root + ServletmavenExample + 1.0-SNAPSHOT + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + + + + \ No newline at end of file diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java new file mode 100644 index 0000000000..c8e8212f30 --- /dev/null +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -0,0 +1,19 @@ +package com.root; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +public class FormServlet extends HttpServlet { + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String userName = request.getParameter("userName"); + String userPlanet = request.getParameter("userPlanet"); + } +} diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java new file mode 100644 index 0000000000..12545317c6 --- /dev/null +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -0,0 +1,34 @@ +package com.root; + +import org.junit.Test; +import org.mockito.Mockito; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import java.io.StringWriter; + +import static org.junit.Assert.*; + +/** + * Created by shubham on 27/11/16. + */ +public class FormServletTest extends Mockito { + + @Test + public void testFormServlet() throws Exception { + + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + + when(request.getParameter("userName")).thenReturn("baeldung"); + when(request.getParameter("userPlanet")).thenReturn("Mars"); + + PrintWriter writer = new PrintWriter(new StringWriter()); + when(response.getWriter()).thenReturn(writer); + + new FormServlet().doPost(request, response); + + assertTrue(request.getParameter("userName").contains("baeldung")); + } +} diff --git a/javax-servlets/web/WEB-INF/web.xml b/javax-servlets/web/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/web/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp new file mode 100644 index 0000000000..4054b1acf0 --- /dev/null +++ b/javax-servlets/web/index.jsp @@ -0,0 +1,30 @@ +<%-- + Created by IntelliJ IDEA. + User: shubham + Date: 26/11/16 + Time: 8:52 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Form + + + +
+ + Name:

+ Planet: + +

+ + +
+ + + diff --git a/pom.xml b/pom.xml index 77cf615a98..eacedf1e6a 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,7 @@ jackson java-cassandra + javax-servlets javaxval jee7 jjwt From 115f70c9173590414c8a5dca946a758aa0d66e49 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 09:36:42 +0530 Subject: [PATCH 02/22] RequestDispatcher added to servlet --- .../META-INF/MANIFEST.MF | 5 +++ .../WEB-INF/web.xml | 7 ++++ .../index.jsp | 26 ++++++++++++++ .../src/main/java/com/root/FormServlet.java | 31 +++++++++++++++-- javax-servlets/web/index.jsp | 34 ++++++++----------- 5 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e8d1783f02 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: shubham +Created-By: IntelliJ IDEA +Build-Jdk: 1.8.0_91 + diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp new file mode 100644 index 0000000000..5a2e018a41 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp @@ -0,0 +1,26 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Calculate BMI + + + +
+ + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

+
+ + + diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index c8e8212f30..5c11a586d3 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -1,5 +1,6 @@ package com.root; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -7,13 +8,37 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +@WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { + @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String userName = request.getParameter("userName"); - String userPlanet = request.getParameter("userPlanet"); + String height = request.getParameter("height"); + String weight = request.getParameter("weight"); + + try { + Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); + + request.setAttribute("bmi", bmi); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); + dispatcher.forward(request, response); + } catch (Exception e) { + + response.sendRedirect("index.jsp"); + } + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + + private Double calculateBMI(Double weight, Double height) { + + return weight / (height * height); } } diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp index 4054b1acf0..5a2e018a41 100644 --- a/javax-servlets/web/index.jsp +++ b/javax-servlets/web/index.jsp @@ -1,29 +1,25 @@ -<%-- - Created by IntelliJ IDEA. - User: shubham - Date: 26/11/16 - Time: 8:52 PM - To change this template use File | Settings | File Templates. ---%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - Form + Calculate BMI -
+ - Name:

- Planet: - -

- - + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

From de8038fe4d2b9ed8e4cd51cbbb2589c9533605f6 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 11:03:13 +0530 Subject: [PATCH 03/22] Test made using Mockito and JUnit --- .../src/main/java/com/root/FormServlet.java | 17 +++---- .../test/java/com/root/FormServletTest.java | 45 +++++++++++++------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 5c11a586d3..be83cece8f 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -19,9 +20,12 @@ public class FormServlet extends HttpServlet { String weight = request.getParameter("weight"); try { - Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - + double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); request.setAttribute("bmi", bmi); + + PrintWriter out= response.getWriter(); + out.write(String.valueOf(bmi)); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } catch (Exception e) { @@ -30,15 +34,8 @@ public class FormServlet extends HttpServlet { } } - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // do something else here - } - private Double calculateBMI(Double weight, Double height) { return weight / (height * height); } -} +} \ No newline at end of file diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java index 12545317c6..2d6ce22db5 100644 --- a/javax-servlets/src/test/java/com/root/FormServletTest.java +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -1,34 +1,51 @@ package com.root; +import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.StringWriter; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -/** - * Created by shubham on 27/11/16. - */ -public class FormServletTest extends Mockito { +public class FormServletTest { + + @Mock + HttpServletRequest request; + + @Mock + HttpServletResponse response; + + @Mock + RequestDispatcher requestDispatcher; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } @Test public void testFormServlet() throws Exception { - HttpServletRequest request = mock(HttpServletRequest.class); - HttpServletResponse response = mock(HttpServletResponse.class); + when(request.getParameter("height")).thenReturn("2"); + when(request.getParameter("weight")).thenReturn("80"); - when(request.getParameter("userName")).thenReturn("baeldung"); - when(request.getParameter("userPlanet")).thenReturn("Mars"); - - PrintWriter writer = new PrintWriter(new StringWriter()); - when(response.getWriter()).thenReturn(writer); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + when(response.getWriter()).thenReturn(pw); new FormServlet().doPost(request, response); - assertTrue(request.getParameter("userName").contains("baeldung")); + verify(request).setAttribute("bmi", 20.0); + + String result = sw.getBuffer().toString().trim(); + assertEquals("20.0", result); } } From cfdaace30bcf6060ee203db9d31eb4b47ab945bf Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Sun, 27 Nov 2016 11:42:32 +0530 Subject: [PATCH 04/22] Added BAEL-425 Intro to Servets module named javax-servlets --- javax-servlets/pom.xml | 34 +++++++++++++++++++ .../src/main/java/com/root/FormServlet.java | 19 +++++++++++ .../test/java/com/root/FormServletTest.java | 34 +++++++++++++++++++ javax-servlets/web/WEB-INF/web.xml | 7 ++++ javax-servlets/web/index.jsp | 30 ++++++++++++++++ pom.xml | 1 + 6 files changed, 125 insertions(+) create mode 100644 javax-servlets/pom.xml create mode 100644 javax-servlets/src/main/java/com/root/FormServlet.java create mode 100644 javax-servlets/src/test/java/com/root/FormServletTest.java create mode 100644 javax-servlets/web/WEB-INF/web.xml create mode 100644 javax-servlets/web/index.jsp diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml new file mode 100644 index 0000000000..2d2e3a4b8a --- /dev/null +++ b/javax-servlets/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.root + ServletmavenExample + 1.0-SNAPSHOT + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + + + + \ No newline at end of file diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java new file mode 100644 index 0000000000..c8e8212f30 --- /dev/null +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -0,0 +1,19 @@ +package com.root; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +public class FormServlet extends HttpServlet { + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String userName = request.getParameter("userName"); + String userPlanet = request.getParameter("userPlanet"); + } +} diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java new file mode 100644 index 0000000000..12545317c6 --- /dev/null +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -0,0 +1,34 @@ +package com.root; + +import org.junit.Test; +import org.mockito.Mockito; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import java.io.StringWriter; + +import static org.junit.Assert.*; + +/** + * Created by shubham on 27/11/16. + */ +public class FormServletTest extends Mockito { + + @Test + public void testFormServlet() throws Exception { + + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + + when(request.getParameter("userName")).thenReturn("baeldung"); + when(request.getParameter("userPlanet")).thenReturn("Mars"); + + PrintWriter writer = new PrintWriter(new StringWriter()); + when(response.getWriter()).thenReturn(writer); + + new FormServlet().doPost(request, response); + + assertTrue(request.getParameter("userName").contains("baeldung")); + } +} diff --git a/javax-servlets/web/WEB-INF/web.xml b/javax-servlets/web/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/web/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp new file mode 100644 index 0000000000..4054b1acf0 --- /dev/null +++ b/javax-servlets/web/index.jsp @@ -0,0 +1,30 @@ +<%-- + Created by IntelliJ IDEA. + User: shubham + Date: 26/11/16 + Time: 8:52 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Form + + + +
+ + Name:

+ Planet: + +

+ + +
+ + + diff --git a/pom.xml b/pom.xml index 77cf615a98..eacedf1e6a 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,7 @@ jackson java-cassandra + javax-servlets javaxval jee7 jjwt From fff5f24633a4e7e57053b7833c2731c4997a7b1f Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 09:36:42 +0530 Subject: [PATCH 05/22] RequestDispatcher added to servlet --- .../META-INF/MANIFEST.MF | 5 +++ .../WEB-INF/web.xml | 7 ++++ .../index.jsp | 26 ++++++++++++++ .../src/main/java/com/root/FormServlet.java | 31 +++++++++++++++-- javax-servlets/web/index.jsp | 34 ++++++++----------- 5 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e8d1783f02 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: shubham +Created-By: IntelliJ IDEA +Build-Jdk: 1.8.0_91 + diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp new file mode 100644 index 0000000000..5a2e018a41 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp @@ -0,0 +1,26 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Calculate BMI + + + +
+ + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

+
+ + + diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index c8e8212f30..5c11a586d3 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -1,5 +1,6 @@ package com.root; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -7,13 +8,37 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +@WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { + @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String userName = request.getParameter("userName"); - String userPlanet = request.getParameter("userPlanet"); + String height = request.getParameter("height"); + String weight = request.getParameter("weight"); + + try { + Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); + + request.setAttribute("bmi", bmi); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); + dispatcher.forward(request, response); + } catch (Exception e) { + + response.sendRedirect("index.jsp"); + } + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + + private Double calculateBMI(Double weight, Double height) { + + return weight / (height * height); } } diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp index 4054b1acf0..5a2e018a41 100644 --- a/javax-servlets/web/index.jsp +++ b/javax-servlets/web/index.jsp @@ -1,29 +1,25 @@ -<%-- - Created by IntelliJ IDEA. - User: shubham - Date: 26/11/16 - Time: 8:52 PM - To change this template use File | Settings | File Templates. ---%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - Form + Calculate BMI -
+ - Name:

- Planet: - -

- - + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

From 5e2a6a97fafbc4c4d9a9975020edb64cc4e10439 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 11:03:13 +0530 Subject: [PATCH 06/22] Test made using Mockito and JUnit --- .../src/main/java/com/root/FormServlet.java | 17 +++---- .../test/java/com/root/FormServletTest.java | 45 +++++++++++++------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 5c11a586d3..be83cece8f 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -19,9 +20,12 @@ public class FormServlet extends HttpServlet { String weight = request.getParameter("weight"); try { - Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - + double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); request.setAttribute("bmi", bmi); + + PrintWriter out= response.getWriter(); + out.write(String.valueOf(bmi)); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } catch (Exception e) { @@ -30,15 +34,8 @@ public class FormServlet extends HttpServlet { } } - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // do something else here - } - private Double calculateBMI(Double weight, Double height) { return weight / (height * height); } -} +} \ No newline at end of file diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java index 12545317c6..2d6ce22db5 100644 --- a/javax-servlets/src/test/java/com/root/FormServletTest.java +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -1,34 +1,51 @@ package com.root; +import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.StringWriter; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -/** - * Created by shubham on 27/11/16. - */ -public class FormServletTest extends Mockito { +public class FormServletTest { + + @Mock + HttpServletRequest request; + + @Mock + HttpServletResponse response; + + @Mock + RequestDispatcher requestDispatcher; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } @Test public void testFormServlet() throws Exception { - HttpServletRequest request = mock(HttpServletRequest.class); - HttpServletResponse response = mock(HttpServletResponse.class); + when(request.getParameter("height")).thenReturn("2"); + when(request.getParameter("weight")).thenReturn("80"); - when(request.getParameter("userName")).thenReturn("baeldung"); - when(request.getParameter("userPlanet")).thenReturn("Mars"); - - PrintWriter writer = new PrintWriter(new StringWriter()); - when(response.getWriter()).thenReturn(writer); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + when(response.getWriter()).thenReturn(pw); new FormServlet().doPost(request, response); - assertTrue(request.getParameter("userName").contains("baeldung")); + verify(request).setAttribute("bmi", 20.0); + + String result = sw.getBuffer().toString().trim(); + assertEquals("20.0", result); } } From 78e9357e5ed077fc0909692670bbd8b2c00b030a Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:25:32 +0530 Subject: [PATCH 07/22] Updated Test --- javax-servlets/pom.xml | 6 +-- .../src/main/java/com/root/FormServlet.java | 5 +- .../test/java/com/root/FormServletTest.java | 53 +++++++------------ 3 files changed, 23 insertions(+), 41 deletions(-) diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml index 2d2e3a4b8a..76434a8589 100644 --- a/javax-servlets/pom.xml +++ b/javax-servlets/pom.xml @@ -22,9 +22,9 @@ test - org.mockito - mockito-all - 1.10.19 + org.apache.httpcomponents + httpclient + 4.5 test diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index be83cece8f..10187f38f6 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,7 +7,6 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -23,8 +22,8 @@ public class FormServlet extends HttpServlet { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); request.setAttribute("bmi", bmi); - PrintWriter out= response.getWriter(); - out.write(String.valueOf(bmi)); + response.setHeader("Test", "Success"); + response.setHeader("BMI", String.valueOf(bmi)); RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java index 2d6ce22db5..437741e12d 100644 --- a/javax-servlets/src/test/java/com/root/FormServletTest.java +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -1,51 +1,34 @@ package com.root; -import org.junit.Before; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import javax.servlet.RequestDispatcher; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.PrintWriter; -import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; public class FormServletTest { - @Mock - HttpServletRequest request; - - @Mock - HttpServletResponse response; - - @Mock - RequestDispatcher requestDispatcher; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - @Test - public void testFormServlet() throws Exception { + public void whenPostRequestUsingHttpClient_thenCorrect() throws Exception { - when(request.getParameter("height")).thenReturn("2"); - when(request.getParameter("weight")).thenReturn("80"); + HttpClient client = new DefaultHttpClient(); + HttpPost method = new HttpPost("http://localhost:8080/calculateServlet"); - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - when(response.getWriter()).thenReturn(pw); + List nvps = new ArrayList(); + nvps.add(new BasicNameValuePair("height", String.valueOf(2))); + nvps.add(new BasicNameValuePair("weight", String.valueOf(80))); - new FormServlet().doPost(request, response); + method.setEntity(new UrlEncodedFormEntity(nvps)); + HttpResponse httpResponse = client.execute(method); - verify(request).setAttribute("bmi", 20.0); - - String result = sw.getBuffer().toString().trim(); - assertEquals("20.0", result); + assertEquals("Success", httpResponse.getHeaders("Test")[0].getValue()); + assertEquals("20.0", httpResponse.getHeaders("BMI")[0].getValue()); } } From f898f69d0bc4bd96a2d5a09a49fb1e3367629088 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:31:15 +0530 Subject: [PATCH 08/22] Formatting --- javax-servlets/src/main/java/com/root/FormServlet.java | 1 + 1 file changed, 1 insertion(+) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 10187f38f6..94d0056e21 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -20,6 +20,7 @@ public class FormServlet extends HttpServlet { try { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); + request.setAttribute("bmi", bmi); response.setHeader("Test", "Success"); From b94c33b2bb4510e678a5a9794d5c4ff34f305ba3 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:33:23 +0530 Subject: [PATCH 09/22] conflicts removed --- javax-servlets/src/main/java/com/root/FormServlet.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 94d0056e21..76961b7780 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -34,6 +34,13 @@ public class FormServlet extends HttpServlet { } } + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + private Double calculateBMI(Double weight, Double height) { return weight / (height * height); From 2fc22b5f9d34ebd7803cd4e41049c003026e62c2 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:36:16 +0530 Subject: [PATCH 10/22] Format --- javax-servlets/src/main/java/com/root/FormServlet.java | 1 - 1 file changed, 1 deletion(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 76961b7780..fb7a02f4bc 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -22,7 +22,6 @@ public class FormServlet extends HttpServlet { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); request.setAttribute("bmi", bmi); - response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi)); From 72116e7a495dcbe410484cc3212c66f2ed688489 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Thu, 1 Dec 2016 15:22:13 +0530 Subject: [PATCH 11/22] Removed compiled files, updated POM to move verison of dependencies under properties, removed IntelliJ based files. --- javax-servlets/.gitignore | 5 ++++ .../META-INF/MANIFEST.MF | 5 ---- .../WEB-INF/web.xml | 7 ----- .../index.jsp | 26 ------------------- javax-servlets/pom.xml | 11 +++++--- 5 files changed, 13 insertions(+), 41 deletions(-) create mode 100644 javax-servlets/.gitignore delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp diff --git a/javax-servlets/.gitignore b/javax-servlets/.gitignore new file mode 100644 index 0000000000..a51a433798 --- /dev/null +++ b/javax-servlets/.gitignore @@ -0,0 +1,5 @@ +# Created by .ignore support plugin (hsz.mobi) +.idea +classes +target +*.iml \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF deleted file mode 100644 index e8d1783f02..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: shubham -Created-By: IntelliJ IDEA -Build-Jdk: 1.8.0_91 - diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml deleted file mode 100644 index 66934d8fd3..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp deleted file mode 100644 index 5a2e018a41..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp +++ /dev/null @@ -1,26 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - Calculate BMI - - - -
- - - - - - - - - - - - -
Your Weight (kg) :
Your Height (m) :
-

${bmi}

-
- - - diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml index 76434a8589..4fe4575e48 100644 --- a/javax-servlets/pom.xml +++ b/javax-servlets/pom.xml @@ -13,22 +13,27 @@ javax.servlet javax.servlet-api - 3.1.0 + ${javax.servlet.version} junit junit - 4.12 + ${junit.version} test org.apache.httpcomponents httpclient - 4.5 + ${org.apache.httpcomponents.version} test + + 3.1.0 + 4.12 + 4.5 + \ No newline at end of file From 0a9a0e819a1eaf0cafd03a853d80f88bf96779a0 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Sun, 27 Nov 2016 11:42:32 +0530 Subject: [PATCH 12/22] Added BAEL-425 Intro to Servets module named javax-servlets --- javax-servlets/pom.xml | 34 +++++++++++++++++++ .../src/main/java/com/root/FormServlet.java | 19 +++++++++++ .../test/java/com/root/FormServletTest.java | 34 +++++++++++++++++++ javax-servlets/web/WEB-INF/web.xml | 7 ++++ javax-servlets/web/index.jsp | 30 ++++++++++++++++ pom.xml | 1 + 6 files changed, 125 insertions(+) create mode 100644 javax-servlets/pom.xml create mode 100644 javax-servlets/src/main/java/com/root/FormServlet.java create mode 100644 javax-servlets/src/test/java/com/root/FormServletTest.java create mode 100644 javax-servlets/web/WEB-INF/web.xml create mode 100644 javax-servlets/web/index.jsp diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml new file mode 100644 index 0000000000..2d2e3a4b8a --- /dev/null +++ b/javax-servlets/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.root + ServletmavenExample + 1.0-SNAPSHOT + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.10.19 + test + + + + + + \ No newline at end of file diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java new file mode 100644 index 0000000000..c8e8212f30 --- /dev/null +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -0,0 +1,19 @@ +package com.root; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +public class FormServlet extends HttpServlet { + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String userName = request.getParameter("userName"); + String userPlanet = request.getParameter("userPlanet"); + } +} diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java new file mode 100644 index 0000000000..12545317c6 --- /dev/null +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -0,0 +1,34 @@ +package com.root; + +import org.junit.Test; +import org.mockito.Mockito; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import java.io.StringWriter; + +import static org.junit.Assert.*; + +/** + * Created by shubham on 27/11/16. + */ +public class FormServletTest extends Mockito { + + @Test + public void testFormServlet() throws Exception { + + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + + when(request.getParameter("userName")).thenReturn("baeldung"); + when(request.getParameter("userPlanet")).thenReturn("Mars"); + + PrintWriter writer = new PrintWriter(new StringWriter()); + when(response.getWriter()).thenReturn(writer); + + new FormServlet().doPost(request, response); + + assertTrue(request.getParameter("userName").contains("baeldung")); + } +} diff --git a/javax-servlets/web/WEB-INF/web.xml b/javax-servlets/web/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/web/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp new file mode 100644 index 0000000000..4054b1acf0 --- /dev/null +++ b/javax-servlets/web/index.jsp @@ -0,0 +1,30 @@ +<%-- + Created by IntelliJ IDEA. + User: shubham + Date: 26/11/16 + Time: 8:52 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Form + + + +
+ + Name:

+ Planet: + +

+ + +
+ + + diff --git a/pom.xml b/pom.xml index 77cf615a98..eacedf1e6a 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,7 @@ jackson java-cassandra + javax-servlets javaxval jee7 jjwt From aa2285f3b4c7141d5465b491bde4f1e40e17d977 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 09:36:42 +0530 Subject: [PATCH 13/22] RequestDispatcher added to servlet --- .../META-INF/MANIFEST.MF | 5 +++ .../WEB-INF/web.xml | 7 ++++ .../index.jsp | 26 ++++++++++++++ .../src/main/java/com/root/FormServlet.java | 31 +++++++++++++++-- javax-servlets/web/index.jsp | 34 ++++++++----------- 5 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml create mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e8d1783f02 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: shubham +Created-By: IntelliJ IDEA +Build-Jdk: 1.8.0_91 + diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml new file mode 100644 index 0000000000..66934d8fd3 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp new file mode 100644 index 0000000000..5a2e018a41 --- /dev/null +++ b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp @@ -0,0 +1,26 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Calculate BMI + + + +
+ + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

+
+ + + diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index c8e8212f30..5c11a586d3 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -1,5 +1,6 @@ package com.root; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -7,13 +8,37 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -@WebServlet(name = "FormServlet", urlPatterns = "/informationServlet") +@WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { + @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String userName = request.getParameter("userName"); - String userPlanet = request.getParameter("userPlanet"); + String height = request.getParameter("height"); + String weight = request.getParameter("weight"); + + try { + Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); + + request.setAttribute("bmi", bmi); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); + dispatcher.forward(request, response); + } catch (Exception e) { + + response.sendRedirect("index.jsp"); + } + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + + private Double calculateBMI(Double weight, Double height) { + + return weight / (height * height); } } diff --git a/javax-servlets/web/index.jsp b/javax-servlets/web/index.jsp index 4054b1acf0..5a2e018a41 100644 --- a/javax-servlets/web/index.jsp +++ b/javax-servlets/web/index.jsp @@ -1,29 +1,25 @@ -<%-- - Created by IntelliJ IDEA. - User: shubham - Date: 26/11/16 - Time: 8:52 PM - To change this template use File | Settings | File Templates. ---%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> - Form + Calculate BMI -
+ - Name:

- Planet: - -

- - + + + + + + + + + + + +
Your Weight (kg) :
Your Height (m) :
+

${bmi}

From 0be0117470fba74174bccb82f38667c295862ff2 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 11:03:13 +0530 Subject: [PATCH 14/22] Test made using Mockito and JUnit --- .../src/main/java/com/root/FormServlet.java | 17 +++---- .../test/java/com/root/FormServletTest.java | 45 +++++++++++++------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 5c11a586d3..be83cece8f 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -19,9 +20,12 @@ public class FormServlet extends HttpServlet { String weight = request.getParameter("weight"); try { - Double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - + double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); request.setAttribute("bmi", bmi); + + PrintWriter out= response.getWriter(); + out.write(String.valueOf(bmi)); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } catch (Exception e) { @@ -30,15 +34,8 @@ public class FormServlet extends HttpServlet { } } - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // do something else here - } - private Double calculateBMI(Double weight, Double height) { return weight / (height * height); } -} +} \ No newline at end of file diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java index 12545317c6..2d6ce22db5 100644 --- a/javax-servlets/src/test/java/com/root/FormServletTest.java +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -1,34 +1,51 @@ package com.root; +import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.StringWriter; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -/** - * Created by shubham on 27/11/16. - */ -public class FormServletTest extends Mockito { +public class FormServletTest { + + @Mock + HttpServletRequest request; + + @Mock + HttpServletResponse response; + + @Mock + RequestDispatcher requestDispatcher; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } @Test public void testFormServlet() throws Exception { - HttpServletRequest request = mock(HttpServletRequest.class); - HttpServletResponse response = mock(HttpServletResponse.class); + when(request.getParameter("height")).thenReturn("2"); + when(request.getParameter("weight")).thenReturn("80"); - when(request.getParameter("userName")).thenReturn("baeldung"); - when(request.getParameter("userPlanet")).thenReturn("Mars"); - - PrintWriter writer = new PrintWriter(new StringWriter()); - when(response.getWriter()).thenReturn(writer); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + when(response.getWriter()).thenReturn(pw); new FormServlet().doPost(request, response); - assertTrue(request.getParameter("userName").contains("baeldung")); + verify(request).setAttribute("bmi", 20.0); + + String result = sw.getBuffer().toString().trim(); + assertEquals("20.0", result); } } From 782e169f462f9eb1d3a2a8919f59a11aa11c516d Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 09:36:42 +0530 Subject: [PATCH 15/22] RequestDispatcher added to servlet --- .../src/main/java/com/root/FormServlet.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index be83cece8f..4f55a02745 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,7 +7,6 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -21,10 +20,10 @@ public class FormServlet extends HttpServlet { try { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - request.setAttribute("bmi", bmi); - PrintWriter out= response.getWriter(); - out.write(String.valueOf(bmi)); + request.setAttribute("bmi", bmi); + response.setHeader("Test", "Success"); + response.setHeader("BMI", String.valueOf(bmi)); RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); @@ -34,6 +33,13 @@ public class FormServlet extends HttpServlet { } } + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + private Double calculateBMI(Double weight, Double height) { return weight / (height * height); From 3c0d504fe54b2004b7dd21f8e63f7bb17e75645c Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Mon, 28 Nov 2016 11:03:13 +0530 Subject: [PATCH 16/22] Test made using Mockito and JUnit --- .../src/main/java/com/root/FormServlet.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 4f55a02745..7c345215e1 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -25,6 +26,9 @@ public class FormServlet extends HttpServlet { response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi)); + PrintWriter out= response.getWriter(); + out.write(String.valueOf(bmi)); + RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } catch (Exception e) { @@ -33,13 +37,6 @@ public class FormServlet extends HttpServlet { } } - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - // do something else here - } - private Double calculateBMI(Double weight, Double height) { return weight / (height * height); From b61f35e956431336f371dd149eb563b6e778f67b Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:25:32 +0530 Subject: [PATCH 17/22] Updated Test --- javax-servlets/pom.xml | 6 +-- .../src/main/java/com/root/FormServlet.java | 5 +- .../test/java/com/root/FormServletTest.java | 53 +++++++------------ 3 files changed, 23 insertions(+), 41 deletions(-) diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml index 2d2e3a4b8a..76434a8589 100644 --- a/javax-servlets/pom.xml +++ b/javax-servlets/pom.xml @@ -22,9 +22,9 @@ test - org.mockito - mockito-all - 1.10.19 + org.apache.httpcomponents + httpclient + 4.5 test diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 7c345215e1..9c50698710 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -7,7 +7,6 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.PrintWriter; @WebServlet(name = "FormServlet", urlPatterns = "/calculateServlet") public class FormServlet extends HttpServlet { @@ -26,8 +25,8 @@ public class FormServlet extends HttpServlet { response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi)); - PrintWriter out= response.getWriter(); - out.write(String.valueOf(bmi)); + response.setHeader("Test", "Success"); + response.setHeader("BMI", String.valueOf(bmi)); RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); diff --git a/javax-servlets/src/test/java/com/root/FormServletTest.java b/javax-servlets/src/test/java/com/root/FormServletTest.java index 2d6ce22db5..437741e12d 100644 --- a/javax-servlets/src/test/java/com/root/FormServletTest.java +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -1,51 +1,34 @@ package com.root; -import org.junit.Before; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import javax.servlet.RequestDispatcher; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.PrintWriter; -import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; public class FormServletTest { - @Mock - HttpServletRequest request; - - @Mock - HttpServletResponse response; - - @Mock - RequestDispatcher requestDispatcher; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - @Test - public void testFormServlet() throws Exception { + public void whenPostRequestUsingHttpClient_thenCorrect() throws Exception { - when(request.getParameter("height")).thenReturn("2"); - when(request.getParameter("weight")).thenReturn("80"); + HttpClient client = new DefaultHttpClient(); + HttpPost method = new HttpPost("http://localhost:8080/calculateServlet"); - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - when(response.getWriter()).thenReturn(pw); + List nvps = new ArrayList(); + nvps.add(new BasicNameValuePair("height", String.valueOf(2))); + nvps.add(new BasicNameValuePair("weight", String.valueOf(80))); - new FormServlet().doPost(request, response); + method.setEntity(new UrlEncodedFormEntity(nvps)); + HttpResponse httpResponse = client.execute(method); - verify(request).setAttribute("bmi", 20.0); - - String result = sw.getBuffer().toString().trim(); - assertEquals("20.0", result); + assertEquals("Success", httpResponse.getHeaders("Test")[0].getValue()); + assertEquals("20.0", httpResponse.getHeaders("BMI")[0].getValue()); } } From 460104c86f8d3ed7652b7356a25b51e58c8fa6a9 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:31:15 +0530 Subject: [PATCH 18/22] Formatting --- javax-servlets/src/main/java/com/root/FormServlet.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 9c50698710..a3afcbba56 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -25,9 +25,6 @@ public class FormServlet extends HttpServlet { response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi)); - response.setHeader("Test", "Success"); - response.setHeader("BMI", String.valueOf(bmi)); - RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } catch (Exception e) { From badcd110585ea8fe00afb194783bba40a968ca4c Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:33:23 +0530 Subject: [PATCH 19/22] conflicts removed --- javax-servlets/src/main/java/com/root/FormServlet.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index a3afcbba56..4f55a02745 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -33,6 +33,13 @@ public class FormServlet extends HttpServlet { } } + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + // do something else here + } + private Double calculateBMI(Double weight, Double height) { return weight / (height * height); From b592a3e3481a8f35f5c715fc0456a578ae326274 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Tue, 29 Nov 2016 14:36:16 +0530 Subject: [PATCH 20/22] Format --- javax-servlets/src/main/java/com/root/FormServlet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index 4f55a02745..fb7a02f4bc 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -20,7 +20,7 @@ public class FormServlet extends HttpServlet { try { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - + request.setAttribute("bmi", bmi); response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi)); From a44fb64f686a7ca9a0dbee9807859d4c2ed7bfb3 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Thu, 1 Dec 2016 15:22:13 +0530 Subject: [PATCH 21/22] Removed compiled files, updated POM to move verison of dependencies under properties, removed IntelliJ based files. --- javax-servlets/.gitignore | 5 ++++ .../META-INF/MANIFEST.MF | 5 ---- .../WEB-INF/web.xml | 7 ----- .../index.jsp | 26 ------------------- javax-servlets/pom.xml | 11 +++++--- 5 files changed, 13 insertions(+), 41 deletions(-) create mode 100644 javax-servlets/.gitignore delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml delete mode 100644 javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp diff --git a/javax-servlets/.gitignore b/javax-servlets/.gitignore new file mode 100644 index 0000000000..a51a433798 --- /dev/null +++ b/javax-servlets/.gitignore @@ -0,0 +1,5 @@ +# Created by .ignore support plugin (hsz.mobi) +.idea +classes +target +*.iml \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF deleted file mode 100644 index e8d1783f02..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: shubham -Created-By: IntelliJ IDEA -Build-Jdk: 1.8.0_91 - diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml deleted file mode 100644 index 66934d8fd3..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp b/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp deleted file mode 100644 index 5a2e018a41..0000000000 --- a/javax-servlets/classes/artifacts/ServletmavenExample_war_exploded/index.jsp +++ /dev/null @@ -1,26 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - Calculate BMI - - - -
- - - - - - - - - - - - -
Your Weight (kg) :
Your Height (m) :
-

${bmi}

-
- - - diff --git a/javax-servlets/pom.xml b/javax-servlets/pom.xml index 76434a8589..4fe4575e48 100644 --- a/javax-servlets/pom.xml +++ b/javax-servlets/pom.xml @@ -13,22 +13,27 @@ javax.servlet javax.servlet-api - 3.1.0 + ${javax.servlet.version} junit junit - 4.12 + ${junit.version} test org.apache.httpcomponents httpclient - 4.5 + ${org.apache.httpcomponents.version} test + + 3.1.0 + 4.12 + 4.5 + \ No newline at end of file From 75138d288ff291829e789d6a09fa4b6b5225c687 Mon Sep 17 00:00:00 2001 From: Shubham Aggarwal Date: Thu, 1 Dec 2016 15:39:34 +0530 Subject: [PATCH 22/22] Updated servlet --- javax-servlets/src/main/java/com/root/FormServlet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javax-servlets/src/main/java/com/root/FormServlet.java b/javax-servlets/src/main/java/com/root/FormServlet.java index fb7a02f4bc..4f55a02745 100644 --- a/javax-servlets/src/main/java/com/root/FormServlet.java +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -20,7 +20,7 @@ public class FormServlet extends HttpServlet { try { double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); - + request.setAttribute("bmi", bmi); response.setHeader("Test", "Success"); response.setHeader("BMI", String.valueOf(bmi));