Servlet:
在说jsp之前需要先说明一下servlet
浏览器--服务器--数据库:
这个图说明的是简单的登录过程,在从浏览器到后端服务器的过程中,Servlet在其中做的事情。
简单理解Servlet: 实现了Http协议,作为一种控制器,做转向和基础的处理业务信息。

数据库--服务器--浏览器:
不仅仅是从浏览器到服务器的过程,还有从数据库查询到数据,返回到服务器后,在传到浏览器之前,对返回的数据进行渲染,这个工作也是servlet做的.但因为servlet是用java语言编程的,所以在渲染的时候,需要用拼接字符串的形式,把需要的样式标签拼接成字符串返回到浏览器,浏览器会识别标签,进行样式的渲染。
所以有了JSP的出现
JSP:
为了方便编程渲染页面样式,更简单实现servlet的部分功能,不需要我们再去自己拼写html标签或者样式,jsp去做了这个事情。
JSP继承了Servlet,把后台返回的数据进行渲染。jsp在执行的时候编译生成了对应的class和java文件。
在web项目中会使用tomcat来管理servlet和对jsp进行编译
tomcat:
可以理解为是servlet的容器,可以管理servlet的生命周期,以及对需要的类进行反射处理也就是实例化。
servlet的生命周期的特点: 实例化一次有多个线程,线程不安全:
手写servlet中涉及到的继承HttpServlet,重写doGet或doPost,或者通过Servlet获取tomcat中的SessionId返回到前端

tomcat--servlet之间:
在tomcat运行的时候,创建了HttpServletRequest类,包含了用户从html提交的各种信息以及IP,请求方式get.post等。 也创建了HttpServletResponse类,他可以接受后端返回的html的数据返回到前段
通过tomcat的web.xml配置文件找到对应的继承了HttpServlet类的servlet类,并且通过反射做了对这个编译后的类进行实例化。
下图以根据日期查询学生信息为例,描述tomcat在这个过程中做的事情;

tomcat--servlet--jsp:
下图描述通过url访问jsp页面的过程:

ps:和tomcat相关:
1、cookie和Session :一个是客户端一个是服务端用来保存一些信息 符合了HTTP中的无状态通信中的特点,可以在tomcat配置的Session信息有效时间内
2、tomcat的启动,代码,所以也需要java的基础运行环境,配置相应的文件路径,java_home下配置相应的tomcat的相关路径;也可以在startup文件下set对应的路径;或者在根目录下临时写set tomcat路径,只能临时有效。