diff --git a/servlet-core/src/main/java/tech/smartboot/servlet/ServletContextRuntime.java b/servlet-core/src/main/java/tech/smartboot/servlet/ServletContextRuntime.java index 6fc2cdf..7cc059b 100644 --- a/servlet-core/src/main/java/tech/smartboot/servlet/ServletContextRuntime.java +++ b/servlet-core/src/main/java/tech/smartboot/servlet/ServletContextRuntime.java @@ -182,9 +182,8 @@ private void newServletsInstance(DeploymentInfo deploymentInfo) throws Instantia } if (servletInfo.getJspFile() != null) { LOGGER.error("unSupport jsp"); - servletInfo.setServlet(new DefaultServlet(deploymentInfo)); + servletInfo.setServletClass("org.apache.jasper.servlet.JspServlet"); servletInfo.addInitParam("jspFile", servletInfo.getJspFile()); - continue; } Servlet servlet = (Servlet) deploymentInfo.getClassLoader().loadClass(servletInfo.getServletClass()).newInstance(); servletInfo.setServlet(servlet); diff --git a/servlet-core/src/main/java/tech/smartboot/servlet/handler/FilterMatchHandler.java b/servlet-core/src/main/java/tech/smartboot/servlet/handler/FilterMatchHandler.java index eda0e94..9bf2d7a 100644 --- a/servlet-core/src/main/java/tech/smartboot/servlet/handler/FilterMatchHandler.java +++ b/servlet-core/src/main/java/tech/smartboot/servlet/handler/FilterMatchHandler.java @@ -10,7 +10,9 @@ package tech.smartboot.servlet.handler; +import jakarta.servlet.DispatcherType; import jakarta.servlet.FilterChain; +import jakarta.servlet.RequestDispatcher; import jakarta.servlet.Servlet; import jakarta.servlet.ServletException; import jakarta.servlet.ServletRequest; @@ -78,7 +80,11 @@ private List matchFilters(HandlerContext handlerContext) { allFilters.forEach(filter -> { filter.getMappings().stream().filter(filterMappingInfo -> filterMappingInfo.getDispatcher().contains(request.getDispatcherType())).forEach(mappingInfo -> { if (mappingInfo.getMappingType() == FilterMappingType.URL) { - if (PathMatcherUtil.matches(request.getRequestURI(), contextPath.length(), mappingInfo.getServletUrlMapping()) > -1) { + String requestURI = request.getRequestURI(); + if (request.getDispatcherType() == DispatcherType.INCLUDE) { + requestURI = (String) request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI); + } + if (PathMatcherUtil.matches(requestURI, contextPath.length(), mappingInfo.getServletUrlMapping()) > -1) { filters.add(filter); } } else if (mappingInfo.getMappingType() == FilterMappingType.SERVLET) {