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/pom.xml b/javax-servlets/pom.xml new file mode 100644 index 0000000000..4fe4575e48 --- /dev/null +++ b/javax-servlets/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + com.root + ServletmavenExample + 1.0-SNAPSHOT + + + + + javax.servlet + javax.servlet-api + ${javax.servlet.version} + + + junit + junit + ${junit.version} + test + + + org.apache.httpcomponents + httpclient + ${org.apache.httpcomponents.version} + test + + + + + + 3.1.0 + 4.12 + 4.5 + + + \ 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..4f55a02745 --- /dev/null +++ b/javax-servlets/src/main/java/com/root/FormServlet.java @@ -0,0 +1,47 @@ +package com.root; + +import javax.servlet.RequestDispatcher; +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 = "/calculateServlet") +public class FormServlet extends HttpServlet { + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + String height = request.getParameter("height"); + String weight = request.getParameter("weight"); + + try { + double bmi = calculateBMI(Double.parseDouble(weight), Double.parseDouble(height)); + + request.setAttribute("bmi", bmi); + response.setHeader("Test", "Success"); + response.setHeader("BMI", String.valueOf(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); + } +} \ 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 new file mode 100644 index 0000000000..437741e12d --- /dev/null +++ b/javax-servlets/src/test/java/com/root/FormServletTest.java @@ -0,0 +1,34 @@ +package com.root; + +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 java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class FormServletTest { + + @Test + public void whenPostRequestUsingHttpClient_thenCorrect() throws Exception { + + HttpClient client = new DefaultHttpClient(); + HttpPost method = new HttpPost("http://localhost:8080/calculateServlet"); + + List nvps = new ArrayList(); + nvps.add(new BasicNameValuePair("height", String.valueOf(2))); + nvps.add(new BasicNameValuePair("weight", String.valueOf(80))); + + method.setEntity(new UrlEncodedFormEntity(nvps)); + HttpResponse httpResponse = client.execute(method); + + assertEquals("Success", httpResponse.getHeaders("Test")[0].getValue()); + assertEquals("20.0", httpResponse.getHeaders("BMI")[0].getValue()); + } +} 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..5a2e018a41 --- /dev/null +++ b/javax-servlets/web/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/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