#22 mvc: dispatcher servlet
This commit is contained in:
1
my-framework/mvc-practice/.gitignore
vendored
Normal file
1
my-framework/mvc-practice/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
tomcat.8080/**
|
||||
@@ -10,7 +10,12 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.58'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:9.0.58'
|
||||
|
||||
implementation 'javax.servlet:javax.servlet-api:4.0.1'
|
||||
implementation 'javax.servlet:jstl:1.2'
|
||||
|
||||
implementation 'org.reflections:reflections:0.10.2'
|
||||
implementation 'ch.qos.logback:logback-classic:1.2.11'
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package org.example;
|
||||
|
||||
import org.apache.catalina.Context;
|
||||
import org.apache.catalina.LifecycleException;
|
||||
import org.apache.catalina.WebResourceRoot;
|
||||
import org.apache.catalina.startup.Tomcat;
|
||||
import org.apache.catalina.webresources.DirResourceSet;
|
||||
import org.apache.catalina.webresources.StandardRoot;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class WebApplicationServer {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(WebApplicationServer.class);
|
||||
public static void main(String[] args) throws LifecycleException {
|
||||
String webappDirLocation = "webapp/";
|
||||
Tomcat tomcat = new Tomcat();
|
||||
tomcat.setPort(8080);
|
||||
tomcat.getConnector();
|
||||
|
||||
Context ctx = tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
|
||||
log.info("configuring app with basedir: {}", new File("./" + webappDirLocation).getAbsolutePath());
|
||||
|
||||
File additionWebInfClasses = new File("build/classes");
|
||||
WebResourceRoot resources = new StandardRoot(ctx);
|
||||
resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes",
|
||||
additionWebInfClasses.getAbsolutePath(), "/"));
|
||||
|
||||
ctx.setResources(resources);
|
||||
|
||||
tomcat.start();
|
||||
tomcat.getServer().await();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package org.example.mvc;
|
||||
|
||||
import org.example.mvc.controller.Controller;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
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("/")
|
||||
public class DispatcherServlet extends HttpServlet {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(DispatcherServlet.class);
|
||||
|
||||
private RequestMappingHandlerMapping requestMappingHandlerMapping;
|
||||
|
||||
@Override
|
||||
public void init() throws ServletException {
|
||||
requestMappingHandlerMapping = new RequestMappingHandlerMapping();
|
||||
requestMappingHandlerMapping.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
log.info("[DispatcherServlet] service started.");
|
||||
}
|
||||
}
|
||||
15
my-framework/mvc-practice/src/main/resources/logback.xml
Normal file
15
my-framework/mvc-practice/src/main/resources/logback.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration>
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||
<Pattern>%d{HH:mm:ss.SSS} [%-5level] [%thread] [%logger{36}] - %m%n</Pattern>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<logger name="org.example" level="DEBUG"/>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user