web服务器有哪些(web服务器程序主要有哪些)

生活常识 2023-01-31 19:47生活常识www.wozhengxing.cn

  Java Web是指用Java语言来解决相关Web领域的技术总和,一个Web应用程序包括Web客户端和Web服务器两个部分,即基于B/S(浏览器/服务器)架构的应用程序。

  Web客户端通常是指用户机上的浏览器,如微软的IE浏览器或火狐浏览器等。客户端不需要开发任何用户界面,而统一采用浏览器即可。

  Web服务器是一台或多台可运行Web应用程序的计算机,通常我们在浏览器中输入的网站地址,即Web服务器的地址。当用户在浏览器的地址栏中输入网站地址并按回车键后,请求即被发送到 Web服务器。服务器接收到请求后,会返回给用户带有请求资源的响应消息。Java在服务器端的应用非常丰富,如Servlet、JSP和第三方框架等。

  早期的Web应用主要是静态页面的浏览,即静态网站。 这些网站使用HTML语言来编写,放在Web服务器上。 用户使用浏览器通过HTTP协议请求服务器上的Web页面,Web服务器处理接收到的用户请求后发送给客户端浏览器显示给用户。工作原理如图:

  用户所访问的资源已不局限于服务器中保存的静态网页。更多的内容需要根据用户的请求动态生成页面信息,即站。 这些网站通常使用HTML语言和动态脚本语言(如JSP、ASP或PHP等)编写,并将编写后的程序部署到Web服务器中。 由Web服务器处理动态脚本代码并将其转换为浏览器可以解析的HTML代码,最后返回客户端浏览器显示给用户,其工作流程如图:

  在B/S结构中客户端不需要开发任何用户界面,而统一采用IE或火狐等浏览器。通过Web浏览器向Web服务器发送请求,由Web服务器处理并将处理结果逐级传回客户端,如图所示。

  在JSP网页开发的初级阶段并没有框架与逻辑分层概念,需要将Java代码嵌入到网页中处理JSP页面中的一些业务逻辑,如字符串处理和数据库操作等,其开发流程如图所示。

  如果使HTML与Java代码相分离,将Java代码单独封装成为一个处理某种业务逻辑的类。然后在JSP页面中调用此类,则可以降低HTML与Java代码之间的耦合度,并且简化JSP页面,提高Java程序代码的重用性及灵活性。这种与HTML代码相分离,而使用Java代码封装的类就是一个JavaBean组件。 在Java Web开发可以使用该组件来完成业务逻辑的处理,应用JavaBean与JSP组合的开发模式如图所示。

  JavaBean是用Java语言所写成的可重用组件,其应用十分广泛,可以应用于系统的很多层中,如PO、VO、DTO和POJO等。

  用户通过单击某个链接或者直接在浏览器的地址栏中输入URL来访问Servlet,Web服务器接收到请求后,并不是将请求直接交给Servlet容器。Servlet容器实例化Servlet,调用Servlet的一个特定方法(service()),并产生一个响应。这个响应由Servlet容器返回给Web服务器,Web服务器包装这个响应,以HTTP响应的形式发送给Web浏览器。整个过程如图:

  Cookie的作用:通俗地说就是当一个用户通过HTTP协议访问一个服务器的时候,这个服务器会将一些Key/Value键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下次访问这个服务器的时候,数据又被完整地带回给服务器。 这个作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时,超市会识别你的购物卡,下次直接购物就好了。当初W3C在设计Cookie时实际上考虑的是为了记录用户在一段时间内访问Web应用的行为路径。由于HTTP协议是一种无状态协议,当用户的一次访问请求结束后,后端服务器就无法知道下一次来访问的还是不是上次访问的用户,在设计应用程序时,我们很容易想到两次访问是同一人访问与不同的两个人访问对程序设计和性能来说有很大的不同。例如,在一个很短的时间内,如果与用户相关的数据被频繁访问,可以针对这个数据做缓存,这样可以大大提高数据的访问性能。Cookie的作用正是在此,由于是同一个客户端发出的请求,每次发出的请求都会带有第一次访问时服务端设置的信息,这样服务端就可以根据Cookie值来划分访问的用户了。

  为什么需要Session?前面已经介绍了Cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,这无形地增加了客户端与服务端的数据传输量,而Session的出现正是为了解决这个问题。 同一个客户端每次和服务端交互时,不需要每次都传回所有的Cookie值,而是只要传回一个ID,这个ID是客户端第一次访问服务器的时候生成的,而且每个客户端是唯一的。这样每个客户端就有了一个唯一的ID,客户端只要传回这个ID就行了,这个ID通常是NANE为JSESIONID的一个Cookie。

  一个浏览器去服务器租房子,服务器记录一下浏览器的行为和数据,然后给了浏览器一把房间的钥匙 然后,每次浏览器可以使用自己的钥匙去打开自己的房间,使用房间的所有东西。(当然,你不能去开别人的房间,何况也打不开)

  浏览器想锻炼身体,愉悦心情。服务器心想我不能给你们每一个人的房间增加一套体育设备吧,那我的经济压力多大。服务器想了想,决定建设一个公开场所,体育馆,所有浏览器都可以使用这些共享资源。

  运行在Java虚拟机中的每一个Web应用程序都有一个与之相关的Servlet上下文。Java Servlet API提供了一个ServletContext接口用来表示上下文。在这个接口中定义了一组方法,Servlet可以使用这些方法与它的Servlet容器进行通信,例如,得到文件的MIME类型,转发请求,或者向日志文件中写入日志消息。 ServletContext对象是Web服务器中的一个已知路径的根。 比如,Servlet上下文被定位于。以/ch02请求路径(称为上下文路径)开始的所有请求被发送到与此ServletContext关联的Web应用程序。再比如,我们平常使用的。以/请求路径(称为上下文路径)开始的所有请求被发送到与此ServletContext关联的Web应用程序。

  ServletContext: 这个是来自于servlet规范里的概念,它是servlet用来与容器间进行交互的接口的组合,也就是说,这个接口定义了一系列的方法,servlet通过这些方法可以很方便地与自己所在的容器进行一些交互。在一个应用中(一个JVM),servlet容器可以有多个,而所有的servlet容器共享一个ServletContext。

  代表应用程序的数据以及用于访问控制和修改这些数据的业务规则。当模型发生改变时,它会通知视图,并为视图提供查询模型相关状态的能力。同时,它也为提供访问封装在模型内部的应用程序功能的能力。

  用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维护数据表现的一致性。视图同时将用户的请求通知。

  定义了应用程序的行为。它负责对来自视图的用户请求进行解释,并把这些请求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户的请求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户请求和模型行为的结果,选择一个视图作为对用户请求的响应。如图所示:

Copyright@2015-2025 www.wozhengxing.cn 我整形网版板所有All right reserved -