1. 首先前端浏览器与后端交互是基于Http协议进行的。
2. servlet的.java文件没有主方法(main方法)也能执行的原因是servlet可以借助其他服务器来执行比如tomcat服务器(tomcat服务器本身也是java编写的)。
3. tomcat和浏览器都是通过socket进行数据传输的,浏览器的Ajax其本质也是由socket组成的,tomcat中接收数据与响应数据分别是request和response,通过socket解析协议之后把剩余的http的数据部分通过这两个指令传递给servlet文件。
(在前后端交互的时候,通过浏览器的socket把数据发送到对应端口,再由tomcat的socket接收数据,再发送到后端servlet上。)
4. 计算机系统自下到上的七层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。其中http传输数据的时候处理物理层协议之外其他层的协议都是在上一层的数据部分加了一个协议(即,下一层的协议都是基于上一层的数据的,eg.网络层在传输层的基础上加了一个协议,数据链路层在网络层的基础上加了一层协议,所以说网络层的Http协议是基于传输层Tcp协议的),最后物理层的数据是根据换行符来区分不同语句的。
a) 左图就是上面的部分是各层的协议(传输层包括自身及以下有协议通过socket解析,传输层往上的就是靠我们自己解析)
b) 右图的就是假设一个100000字节的数据其中上面红、黄、绿、蓝部分分别对应的就是协议字段,最后剩下的就是数据字段。
5. java与数据库是两种完全不同的语言一般使用3306端口进行交互,其中java使用jdbc(也是由socket组成的),数据库就是使用socket进行解析。
6. 因为java和数据库都是文件执行,所以在执行的时候都是在磁盘里面生成对应的目录,其中数据库的目录还要存储当前数据库包含的的表。
7. 由于通过3306端口jdbc传输给数据库的sql语句都是字符串,所以需要数据库对字符串进行分解关键字,最终确定是对那个表进行什么操作。
8. 如果没有.html的文件也可以使用servlet向浏览器响应一个html语法的字符串,当tomcat进行解析之后最终由浏览器显示出html页面的样式。
例如:
该例子中经过tomcat的解析最终在浏览器应该显示出来一个text文本框和一个div块。
效果如下: