#19 servlet - embedded tomcat
This commit is contained in:
@@ -10,6 +10,10 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// embedded tomcat
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:8.5.82'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:8.5.82'
|
||||
|
||||
implementation 'ch.qos.logback:logback-classic:1.2.3'
|
||||
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.example;
|
||||
|
||||
import org.example.calculator.domain.Calculator;
|
||||
import org.example.calculator.domain.PositiveNumber;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
//@WebServlet("/calculate")
|
||||
public class CalculatorServlet extends HttpServlet {
|
||||
private static final Logger log = LoggerFactory.getLogger(CalculatorServlet.class);
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
log.info("service");
|
||||
int operand1 = Integer.parseInt(request.getParameter("operand1"));
|
||||
String operator = request.getParameter("operator");
|
||||
int operand2 = Integer.parseInt(request.getParameter("operand2"));
|
||||
|
||||
int result = Calculator.calculate(new PositiveNumber(operand1), operator, new PositiveNumber(operand2));
|
||||
|
||||
PrintWriter writer = response.getWriter();
|
||||
writer.println(result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.example;
|
||||
|
||||
import org.apache.catalina.Context;
|
||||
import org.apache.catalina.LifecycleException;
|
||||
import org.apache.catalina.startup.Tomcat;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import java.io.File;
|
||||
|
||||
public class WebApplicationServerLauncher {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(WebApplicationServerLauncher.class);
|
||||
|
||||
public static void main(String[] args) throws LifecycleException {
|
||||
|
||||
// 내장 톰캣
|
||||
// String appBase = "webapp/";
|
||||
//
|
||||
// Tomcat tomcat = new Tomcat();
|
||||
// tomcat.setPort(8080);
|
||||
//
|
||||
// tomcat.addWebapp("/", new File(appBase).getAbsolutePath());
|
||||
// logger.info("configuring app with basedir: {}", new File("./" + appBase).getAbsolutePath());
|
||||
//
|
||||
// tomcat.start();
|
||||
// tomcat.getServer().await();
|
||||
|
||||
String appBase = "webapp/";
|
||||
|
||||
Tomcat tomcat = new Tomcat();
|
||||
tomcat.setPort(8080);
|
||||
|
||||
Context context = tomcat.addContext("", new File(appBase).getAbsolutePath());
|
||||
HttpServlet calculatorServlet = new CalculatorServlet();
|
||||
String servletName = "calculate";
|
||||
String urlPattern = "/calculate";
|
||||
|
||||
tomcat.addServlet("", servletName, calculatorServlet);
|
||||
context.addServletMappingDecoded(urlPattern, servletName);
|
||||
|
||||
logger.info("configuring app with basedir: {}", new File("./" + appBase).getAbsolutePath());
|
||||
|
||||
tomcat.start();
|
||||
tomcat.getServer().await();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import org.example.calculator.domain.Calculator;
|
||||
import org.example.calculator.domain.PositiveNumber;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
public class QueryString {
|
||||
private final String key;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example;
|
||||
package org.example.was;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example.counter;
|
||||
package org.example.was.counter;
|
||||
|
||||
public class Counter implements Runnable {
|
||||
private int count = 0;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.example.counter;
|
||||
package org.example.was.counter;
|
||||
|
||||
public class RaceConditionDemo {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.example;
|
||||
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.example.was.QueryString;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class QueryStringTest {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.example;
|
||||
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.example.was.QueryStrings;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class QueryStringsTest {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.example;
|
||||
|
||||
import org.example.was.RequestLine;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -1 +1 @@
|
||||
GET http://localhost:8080/calculate?operand1=10&operator=-&operand2=20
|
||||
GET http://localhost:8080/calculate?operand1=10&operator=%2b&operand2=20
|
||||
10
my-framework/was-practice/webapp/index.html
Normal file
10
my-framework/was-practice/webapp/index.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Hello World!</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello World!</h1>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user