Commit 3031b2d1 by Patryk Czarnik

kalkulator POST - refaktoryzacja

parent 6c552be9
...@@ -14,10 +14,7 @@ public class KalkulatorPost extends HttpServlet { ...@@ -14,10 +14,7 @@ public class KalkulatorPost extends HttpServlet {
@Override @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String parametr1 = request.getParameter("liczba1"); // w tej wersji GET służy tylko do wyświetlenia pustego formularza
String parametr2 = request.getParameter("liczba2");
String operacja = request.getParameter("operacja");
response.setContentType("text/html"); response.setContentType("text/html");
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter(); PrintWriter out = response.getWriter();
...@@ -27,37 +24,65 @@ public class KalkulatorPost extends HttpServlet { ...@@ -27,37 +24,65 @@ public class KalkulatorPost extends HttpServlet {
out.println("<title>Kalkulator</title>"); out.println("<title>Kalkulator</title>");
out.println("</head>"); out.println("</head>");
out.println("<body>"); out.println("<body>");
out.println("<form method='post'>"); wydrukujFormularz(out);
out.println("<input type='number' name='liczba1'>");
out.println("<select name='operacja'>");
out.println("<option value='+'>+</option>");
out.println("<option value='-'>-</option>");
out.println("<option value='*'>*</option>");
out.println("<option value='/'>/</option>");
out.println("</select>");
out.println("<input type='number' name='liczba2'>");
out.println("<button>Oblicz</button>");
out.println("</form>");
if(parametr1 != null && !parametr1.isBlank() koniecStrony(out);
&& parametr2 != null && !parametr2.isBlank() }
&& operacja != null && !operacja.isBlank()) {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// doPost obsługuje przysłane dane z formularza
PrintWriter out = poczatekStrony(response);
wydrukujFormularz(out);
try {
String parametr1 = request.getParameter("liczba1");
String parametr2 = request.getParameter("liczba2");
String operacja = request.getParameter("operacja");
int liczba1 = Integer.parseInt(parametr1); int liczba1 = Integer.parseInt(parametr1);
int liczba2 = Integer.parseInt(parametr2); int liczba2 = Integer.parseInt(parametr2);
int wynik = oblicz(liczba1, liczba2, operacja); int wynik = oblicz(liczba1, liczba2, operacja);
out.println("<div>Działanie: " + liczba1 + " " + operacja + " " + liczba2 + "</div>"); out.println("<div>Działanie: " + liczba1 + " " + operacja + " " + liczba2 + "</div>");
out.println("<div>Wynik: " + wynik + "</div>"); out.println("<div>Wynik: " + wynik + "</div>");
} catch (Exception e) {
out.println("<div>Błąd: " + e + "</div>");
} }
koniecStrony(out);
}
private void koniecStrony(PrintWriter out) {
out.println("</body>"); out.println("</body>");
out.println("</html>"); out.println("</html>");
} }
@Override private PrintWriter poczatekStrony(HttpServletResponse response) throws IOException {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");
doGet(request, response); response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head>");
out.println("<title>Kalkulator</title>");
out.println("</head>");
out.println("<body>");
return out;
}
private void wydrukujFormularz(PrintWriter out) {
out.println("<form method='post'>");
out.println("<input type='number' name='liczba1'>");
out.println("<select name='operacja'>");
out.println("<option value='+'>+</option>");
out.println("<option value='-'>-</option>");
out.println("<option value='*'>*</option>");
out.println("<option value='/'>/</option>");
out.println("</select>");
out.println("<input type='number' name='liczba2'>");
out.println("<button>Oblicz</button>");
out.println("</form>");
} }
private int oblicz(int liczba1, int liczba2, String operacja) { private int oblicz(int liczba1, int liczba2, String operacja) {
return switch (operacja) { return switch (operacja) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment