Web应用程序简介

简介: 一、HTTP  HTTP是浏览器和web服务器之间使用的沟通方式。它有两个很重要的特性:    基于请求(Request)/响应(Response)模型:客户端对服务器发出一个取得资源的请求,服务器将要求的资源响应给客户端,每次的联机只做一次请求/响应,没有请求就没有响应。

一、HTTP

  HTTP是浏览器和web服务器之间使用的沟通方式。它有两个很重要的特性:

    基于请求(Request)/响应(Response)模型:客户端对服务器发出一个取得资源的请求,服务器将要求的资源响应给客户端,每次的联机只做一次请求/响应,没有请求就没有响应。

    无状态Stateless通信协议:服务器响应客户端之后,就不会记得客户端的信息,更不会去维护和客户端有关的状态。

二、GET或POST

  如何决定选用GET或者POST?

    1、GET请求跟随在URL之后的请求长度是有限的,过长的请求参数,或者如上传等等要用POST请求。

    2、GET请求会出现在地址栏上,没有安全保证。

    3、GET请求应用于等幂操作,纯粹取得资源,不改变服务器上的数据后者状态。POST相反。

三、保留字符

  在URI的规范中,定义了一些保留字符,如":"、"/"、"?"、"&"、"="、"@"、"%"等。如果要在请求参数上表达URI中的保留字符,必须在%字符之后以16进制数值表示。如":"字符用"%3A"表示。如果请求的参数值是http://openhome.cc,则必须用以下的格式:

    http://openhome.cc/addBookmar.do?url=http%3A%2F%2Fopenhome.cc

  如果想要知道某个字符的URL编码是什么,可以调用:

    String text = URLEncoder.encode("http://openhome.cc","ISO-8859-1");

四、何为Web容器

  一个用java写的程序,运行与JVM之上,不同类型的容器会负责不同的工作。Web容器是Servlet/JSP唯一认得的HTTP服务器。

    

  如同JVM介于java程序和实体操作系统之间一样,Web容器是介于HTTP服务器与Servlet之间。

  下面是一个请求响应的例子:

  (1)、客户端(浏览器)对Web服务器发出HTTP请求

  (2)、HTTP服务器收到HTTP请求,将请求转由Web容器处理,Web容器会剖析HTTP请求内容,创建各种对象(HttpServletRequest,HttpServletResponse,HttpSession)。

  (3)、Web容器由请求的URL决定要使用哪个Servlet来处理请求(事先由开发人员定义).

  (4)、Servlet根据请求对象(HttpServletRequest)的信息来决定如何处理,通过响应对象来创建响应。

  (5)、Web容器与服务器沟通,Web容器将响应转换我HTTP响应并传回客户端。

  :1、如果有多次请求进来,就只是启动多个线程进行处理,不是重复启动多次JVM。Web容器可能会使用同一Servlet实例来服务多个请求,也就是说,多个线程共享存取一个对象,因此注意线程安全问题。

  2、Servlet和Jsp的关系:JSP会被web容器转译为'.java'源文件,编译为'.class'文件,然后加载到容器中,最后提供该服务的还是Servlet实例(Instance)

 五、关于MVC/Model2

  MVC是model、view、contorller的缩写,这里译为模型、视图、控制器,分别代表应用程序中的三种职责不同的对象。功能:

    1、视图部分由网页来实现。

    2、服务器上的数据访问或者业务逻辑由模型负责。

    3、控制器接送浏览器的请求,决定调用哪些模型来处理。

  Web应用程序是基于HTTP,必须基于请求/响应模型,没有请求就没有响应,也就是HTTP服务器不会主动对浏览器发出响应,在HTTP中是做不到的,因此,对MVC的行为作了变化,形成了Model2架构。

    

  在Model2的架构上,扔将程序分为模型、视图、控制器,职责如下:

    1、控制器:取得请求参数,验证请求参数,转发请求给模型、转发请求给画面,这些都使用代码实现。

    2、模型:接受控制器的请求调用,负责业务逻辑、负责数据存取逻辑等,这部分还可依应用程序功能,产生各多种不同职责的模型对象,使用代码实现

    3、视图:接受控制器的请求调用,会从模型提取运算后的结果,根据需求呈现所需的画面,在职责分配良好的情况下,基本可做到不出现程序代码。

 

当神已无能为力,那便是魔渡众生
liurio
+关注
目录
打赏
0
0
0
0
3
分享
相关文章
|
3天前
|
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
23 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
维护的Web应用程序
【10月更文挑战第4天】维护的Web应用程序
66 4
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
161 62
|
6月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
60 6
使用Dash构建交互式Web应用程序
【10月更文挑战第16天】本文介绍了使用Python的Dash框架构建交互式Web应用程序的方法。Dash结合了Flask、React和Plotly等技术,让开发者能够快速创建功能丰富的数据可视化应用。文章从安装Dash开始,逐步介绍了创建简单应用程序、添加交互元素、部署应用程序以及集成更多功能的步骤,并提供了代码示例。通过本文,读者可以掌握使用Dash构建交互式Web应用程序的基本技巧和高级功能。
134 3
如何使用Vue.js构建响应式Web应用程序
【10月更文挑战第9天】如何使用Vue.js构建响应式Web应用程序
构建响应式Web应用程序:React实战指南
【10月更文挑战第9天】构建响应式Web应用程序:React实战指南
如何使用React和Redux构建现代化Web应用程序
【10月更文挑战第4天】如何使用React和Redux构建现代化Web应用程序
开发复杂Web应用程序
【10月更文挑战第3天】开发复杂Web应用程序
60 2

热门文章

最新文章

  • 1
    打造高效的Web Scraper:Python与Selenium的完美结合
    14
  • 2
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    31
  • 3
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    23
  • 4
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    57
  • 5
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    375
  • 6
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    27
  • 7
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    41
  • 8
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    29
  • 9
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    22
  • 10
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    57
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等