分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

HTTP 什么是Servlet

发布时间:2023-09-06 01:35责任编辑:蔡小小关键词:暂无标签

  HTML是静态页面,只能保存静态内容。动态页面指根据不同时间、不同用户而显示不同内容的页面。

  生成动态页面的两种方法:

  1. 使用CGI。CGI全称是公共网关接口,使用Perl脚本编写。

  2. 使用Servlet。Servlet是使用Java语言编写的服务端程序,运行在Web服务器中的Servlet容器中,实现请求/响应的Web服务模式。

  两者区别如下:

  1. 可移植性强

  因为Java语言具有跨平台和可移植性强的特点,使得Servlet也有较好的可移植性,即无需修改代码就可以部署到多种不同类型的Web服务器上,所以Servlet比CGI可移植性更好。

  2. 执行效率高

  CGI处理一个请求时会创建一个进程,而Servlet处于服务器进程之中,处理一个请求时会创建一个线程,因为线程的创建与上下文切换开销比进程更小,所以Servlet执行效率更高。

  3. 功能强大

  Servlet可以与Web服务器直接交互,而CGI无法与Web服务器直接交互。

  4. 使用方便

  Servlet提供了许多接口来读取或设置HTTP头消息,可以处理Cookie和跟踪会话状态,而CGI没有。

  5. 可扩展性强

  因为Java语言是健壮的、面向对象的编程语言,很容易扩展,所以Servlet可扩展性强于CGI。

  Servlet处理HTTP请求流程如下:

  

  1. 客户端向服务端发送HTTP请求。

  2. Web服务器接收到该请求后,会把该请求交给容器处理,容器会创建两个对象:HttpServletResponse和HttpServletRequest。

  3. 容器根据URL找到对应的Servlet,创建一个新的线程,把第2步创建的两个对象传递给该线程。

  4. 容器调用Servlet的service()方法来响应用户请求,而service()方法会调用doPost()方法或doGet()方法完成具体的响应任务,把生成的动态页面返回给容器。

  5. 容器把响应消息封装成HTTP格式,返回给客户端。此时,这个线程运行结束,删除第2步创建的两个对象。

  参考资料

  《Java程序员面试笔试宝典》 P166-168

HTTP 什么是Servlet

原文地址:https://www.cnblogs.com/WJQ2017/p/8257783.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved