java web编程中servlet还挺常见的,但一直都不太明白servlet到底是什么东西,查了资料感觉都get不到我的疑惑点,我自己根据查看的资料整理下:
从单词本身来看,servlet可以拆分为“server缩写+英语后缀-let”,server当然指的是服务器,英语后缀-let表示“小”,整个单词就是“小服务”;
当然人家servlet的全称是java server applet,那个applet是“application缩写+英语后缀-let”,表示“小应用”,整个全称就是“java服务器端小应用”;
----------------------------------------------------------------------------------------------------------------------------------------------------
servlet的本质是运行在服务器端的java程序,相对的运行在客户端的java程序就叫applet;
至于为什么servlet的全称中会有个applet的单词,我个人感觉这是因为先有客户端applet的概念,后来在客户端applet的基础上衍生封装打包啥的产生了服务器端servlet的概念;
----------------------------------------------------------------------------------------------------------------------------------------------------
servlet的由来:
即servlet是为了解决什么问题而产生的,经查资料,这个最开始的据今n年前,我们写的前端.html文件为:html标记+大量的业务处理逻辑,这种html叫动态网页;
html标记是指:<body><head>等,
大量的业务处理逻辑是指:大量的跟数据库交互的sql语句、业务逻辑运算等现在看来应该写在java后台代码里的逻辑,现在可能偶尔也能见到一些在html写的逻辑,但普遍都很小。
servlet的产生是为了把“html标记”和“大量的业务处理逻辑”给分开,继续留在html页面的“html标记”就形成了静态网页,而“大量的业务处理逻辑”就放到服务器上形成了servlet;
----------------------------------------------------------------------------------------------------------------------------------------------------
Servlet 生命周期:
Servlet 加载--->实例化init()--->服务service()--->销毁destroy()。
Tomcat 与 Servlet 是如何工作的:
1. Web Client 向Servlet容器(Tomcat)发出Http请求
2. Servlet容器接收Web Client的请求
3. Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
4. Servlet容器创建一个HttpResponse对象
5. Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
6. HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
7. HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
8. Servlet容器把HttpServlet的响应结果传给Web Client。