tomcat如何监听请求到达
没有SpringMVC,tomcat 如何处理请求
Tomcat 线程池的作用是什么
如何配置tomcat 线程池
tomcat 线程池的主要任务是处理连接请求
tomcat线程池是怎么实现的
到这里可以看出来,tomcat线程池的实现方式也是通过ThreadPoolExecutor 实现
如何根据请求url 找到对应的servlet
通过在xml 文件中配置servlet 与 url 的映射关系 找到对应的servlet 处理请求。找到servlet之后需要交给servlet中的service方法,service中会根据get 方法,还是post 方法调用doget/dopost 方法,当然也可以自己指定方法(doget,或者dopost 方法)调用。
配置方式示例:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World</h1>");
out.println("</body>");
out.println("</html>");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>HelloServletExample</display-name>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
到这里差不多tomcat 处理请求的相关问题已经理清楚了,其中还有过滤器监听器等组件没有使用,应该差不多,先不问了😀。那么接下来看一下Spring MVC 来了应该又是什么的流程。
SpringMVC 处理请求的详细流程
从这里可以看出,主要就是通过DispatcherServlet处理请求。那么又和tomcat 是怎么配合的呢?
SpringMVC 是怎样和tomcat 配合的
到这里我们可以完整的理解到请求到大服务器是怎样一步步处理并返回的,其中还有很多细节问题可以提问,可以评论区讨论?